Bootstrap

Java入门笔记(努力中勿喷)

第1单元  Java入门

1.1  Java的诞生与发展历史

Java的出生地:SUN Microsystems Inc.

SUN:Stanford University Network

Java之父:James Gosling(詹姆斯·高斯林)

1995年发布Java第一版

Java发展历史中的几个重要版本:

l Java 1.2  从该版本开始,把Java分成Java SE、Java ME、Java EE三部分。

l Java 5  2004年9月30日18:00PM,J2SE 1.5发布,成为Java语言发展史上的又一里程碑。为了表示该版本的重要性,J2SE 1.5更名为Java SE 5.0

l Java 6  Java的各种版本更名,以取消其中的数字"2":J2EE更名为Java EE,J2SE更名为Java SE,J2ME更名为Java ME。

2009年04月20日,甲骨文74亿美元收购Sun。取得java的版权。

1.2Java技术体系

Java技术分为三个体系:

l Java SE(J2SE)(Platform Standard Edition,java平台标准版)开发桌面应用程序

l Java EE(J2EE)(Java 2 Platform,Enterprise Edition,java平台企业版)开发面向Internet的应用程序

l Java ME(J2ME)(Java 2 Platform Micro Edition,java平台微型版)开发运行于智能设备的程序。

1.3  Java语言的特点

面向对象(OOP)

跨平台

安全健壮

没有指针操作

垃圾自动回收机制

多线程

分布式

1.4  Java程序的运行机制

1.4.1  JVM与跨平台

Java程序不是直接在操作系统之上运行,而是运行于JVM(java虚拟机)之上。

针对不同的操作系统开发相应的JVM,Java程序运行于不同的JVM之上,因此Java程序可以在不同修改的情况下运行于不同的操作系统之上,从而实现了所谓的跨平台。

Java源代码(.java文件)经编译器编译成字节码(.class文件),JVM本质上就是一个负责解释执行Java字节码的程序。

JVM执行Java程序的过程:

l 加载.class文件

l 管理并分配内存

l 执行垃圾收集

1.4.2  JVM、JRE、JDK、

JVM:Java虚拟机

JRE:Java运行时环境(JVM+类库)  //后面编写代码时在强调类库

JDK:Java开发工具包(JRE+编译工具)

JDK的全称:Java  Development  kit

提示:

运行Java程序只需要安装JRE,开发Java程序则需要安装JDK。

1.5  java开发环境安装、配置

1.5.1  安装JDK

1.5.2  配置环境变量

1.5.2.1  PATH

目的:在任意路径下能够直接执行相关命令。

原理:在命令行中执行某个命令时,首先在当前路径下查找,如果找不到则到PATH配置的各个路径下查找。

配置细节:

JAVA_HOME

D:\Program Files\Java\jdk1.8.0_261  你的路径(安装路径)

//把javahome当做一个变量

PATH:%JAVA_HOME%\jre\bin

%JAVA_HOME%\bin

CLASSPATH

%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar  //bin = binary(二进制)

环境变量之间使用;分割

1.5.2.2  CLASSPATH

(1)目的:在任意路径下能够找到要运行的.class文件。

(2)CLASSPATH:

.;

C:\Program Files\Java\jdk1.6.0\lib\dt.jar;  //lib = library(库)

C:\Program Files\Java\jdk1.6.0\lib\tools.jar;

从其他目录下找class文件

(3)注意:Java1.4之后不需要配置上述CLASSPATH环境变量,默认从上述路径下查找.class文件。

1.6  java开发流程

1.6.1  结构化编程与面向对象编程

结构化编程:函数

面向对象编程:类

java类的基本结构:变量 + 方法

1.6.2  编写和运行Java程序的三个步骤

l 编写源代码,保存到源代码文件中,例如 HelloWorld.java

l 编译源代码,例如javac  HelloWorld.java

l 执行字节码,例如java  HelloWorld

案例1.1  HelloWorld

1.6.3  源文件与class文件

在Java中源文件的名称必须是文件中主类的名称,扩展名必须为.java。源文件中可以包含多个类,但是最多只能有一个类使用public修饰,使用public修饰的类就是主类。在Java中,源文件还被作为编译单元,即一个源文件就是一个编译单元。

编译器会为源代码中的每个类生成一个.class文件,.class文件的名称是类的名称,扩展名为.class。

1.6.4  main()方法

方法名:只能是main,不能是Main等形式。

修饰符:public  static  void 三个缺一不可,多一个不行

参数:

1、参数类型为字符串数组

2、参数名称只要符合Java中标识符命名要求即可

3、参数声明的两种方式:String[]  args, 或  String  args[]

方法案例

public class HelloWorld{ public static void main(String[] args){ System.out.println("Hello,world"); } }

Java的main方法应该是当前主流编程语言中最“长”的。

通过上述代码,我们可以看到一个完整的Java程序的结构,Java程序的结构由如下三个部分组成:

1.源文件(扩展名为*.java):源文件带有类的定义。类用来表示程序的一个组件,小程序或许只会有一个类。类的内容必须包含在花括号里面。

2.类:类中带有一个或多个方法。方法必须在类的内部声明。

3.方法:在方法的花括号中编写应该执行的语句。

总结一下:类存在于源文件里面;方法存在于类中;语句存在于方法中。

1.7  常用命令

1.7.1  Dos命令

命  令

功    能

盘符:

转换到指定分区

cd 目录

进入指定的目录

dir

查看当前路径下的目录和文件

Cd  ..

进入上一级目录,..表示上一级目录

cls

清屏

常用的 dos 命令

查看当前目录是有什么内容 dir filedir

切换到其他盘下:盘符号 cd : change directory

eg:切换到 c 盘 cd /D c:

切换到上一级:cd ..

切换到根目录:cd

查看指定的目录下所有的子级目录 tree

清屏 cls

退出 DOS exit

1.7.2  Java命令

javac   //后跟文件名称,需要包含扩展名.java

javac  -d  //指明存放类文件的位置

java       //后跟类名

javadoc    //生成注释文档

 注释

注释的三种形式:单行注释、多行注释、文档注释

文档注释(documentation comment)以“/**”开始,以“*/”结束。使用文档注释可以将关于程序的信息嵌入到程序自身中。

javadoc命令可以文档注释中的内容提取出来,将其放入到一个HTML文件中。文档注释方便了程序的文档化。

2.2  分隔符、代码块

每行功能代码以;作为结束符号

空格没有实际意义,可以利用空格无意义,将代码合理缩进,易读

{}包含的代码称之为代码块, 例如类if(){}、方法{}、类{}等等

2.3  标识符

2.3.1  标识符的概念

Java中类、方法和变量的名称,称之为标识符。

2.3.2  标识符的语法要求

(1)以字母、数字、_或$组成

(2)不能以数字开头

(3)不能使用java的关键字和保留字

注意:

1、标识符的长度没有限制

2、Java是大小写敏感的,所有标识符区分大小写

2.3.2  标识符的命名规范(驼峰)

Java中的标识符通常是由多个英文单词构造,每个单词除了首字母外其他字母小写。

2.3.2.1  大驼峰

第一个单词的首字母大写。以大写字母开头,用于类名、接口名

class  Accoun {…}  //类名

class  HelloWorld{…}  //类名

interface  AccountBase {…}  //接口名

2.3.2.2  小驼峰

第一个单词的首字母是小写,其他单词的首字母大写。以小写字母或单词开头,用于变量名、方法名

String  studentName;  //变量名

String  getStudentName() {…}  //方法名

2.3.2.3  常量命令规范

常量是使用final修饰的存储单元。(最终的)

全部为大写字母表示

final  public  int  DAYS_WEEK = 7;

final  public  double  PI = 3.1415926;

2.3.3  标识符案例

演示标识符的要求、规范、常量的定义

abc    a+b   my_city   $money    class     _78

myName    _come   my&bb    3name   public

name#1    age-     name3   class5    _$     $a

2.4  Java的关键字

2.4.1  Java中的全部关键字

目前定义了50个关键字

abstract

continue

for

new

switch

assert

default

goto

package

synchronized

boolean

do

if

private

this

break

double

implements

protected

throw

byte

else

import

public

throws

case

enum

instanceof

return

transient

catch

extends

int

short

try

char

final

interface

static

void

class

finally

long

strictfp

volatile

const

float

native

super

while

Java保留了const和goto关键字,但是没有使用。Java还保留了下面这些关键字:true、false和null。这些关键字是Java定义的数值。

2.4.2  目前已经接触到的关键字

public  static  void  class

 基本数据类型

java中提供了8种基本数据类型,分别是boolean,short,int,long,float,double.

基本数据类型                        所占空间大小                                默认值
char                                        2 Bytes                                        ‘\u0000’
boolean                                  2 Bytes                                         false
byte                                        1 Byte                                             0
short                                       2 Bytes                                           0
int                                           4 Bytes                                           0
long                                        8 Bytes                                           0
float                                        4 Bytes                                         0.0f
double                                    8 Bytes                                          0.0

每种数据类型都有的数据范围,一旦超出该范围,便会报错

2.5.1  数据类型的分类

注意:基本数据类型也可以分成两大类:数值型、布尔型

 

2.5.2  整型

2.5.2.1  类型、宽度、范围   

名 称

宽 度

范    围

long

64/8

-9 223 372 036 854 775 808至9 223 372 036 854 775 807

int

32/4

-2 147 483 648至2 147 483 647     大约21亿

short

16/2

-32 768至32 767

byte

8/1

-128至127

2.5.2.2  字面值 

(1)整数字面值默认是int类型

(2)将字面值赋给byte或short变量时,如果字面值位于目标类型的范围之内,就不产生错误。

(3)大写或小写的L明确地标识其类型为long

(3)在字面值可以包含下划线,例如1_000_000_000

(4)十进制、八进制(0)、十六进制(0X/0x)、二进制(0B/0b)

2.5.3  浮点型

浮点数,也称为实数(real number),当计算需要小数精度的表达式时使用。

2.5.3.1  类型、宽度、范围

名称

宽度(位)

大致范围

double(双精度)

64/8

4.9e-324~1.8e+308

float (单精度)

32/4

1.4e-045~3.4e+038

2.5.3.2  浮点数字面值

(1)默认为double类型,为了指定float字面值,需要使用后缀F或f

(2)科学计数法。例如6.022E23、314159E-5、2e+100

2.5.4  字符型

2.5.4.1  char类型与字符编码

(1)char是16位,Java在内部使用16位的整数表示字符(Unicode编码),char类型的范围0~65536。//全世界基本的语言符号基本都包含了

(2)char也可以用作整数类型,可以将整型字面值赋给char类型的变量,可以在char类型上执行算术运算。

(3)26个小写字母、26个大写字母、以及10个数字0-9,其编码是连续的。

2.5.4.2  char类型字面值

(1)字符型字面值使用单引号中的字符表示,例如’a’。

(2)转义字符

转义序列

描    述

\ddd

八进制字符(ddd)

\uxxxx

十六进制Unicode字符(xxxx)

\’

单引号

\”

双引号

\\

反斜杠

\r

回车符

\n

新行符(也称为换行符)

\f

换页符

\t

制表符

\b

回格符

字符串类型:

字符串类型是String,String是类,所以是引用类型。字符串字面值是使用双引号包围起来的内容。

2.5.5  布尔型

(1)boolean类型表示逻辑值,它只能是true或false。

(2)boolean类型的值与整数0和1没有任何关系

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;