您的位置:首页 > 编程语言 > Java开发

圣思园 ——JAVA SE Lesson 0

2011-12-30 11:17 134 查看
Java SE 第一讲:

Java SE:Java Standard Edition

Java ME: Java Misco Edition

Java EE:Java Enterprise Edition

Java是由Sun公司推出的(今年初被Oracle公司收购)。

收购价格:74亿美金

J2SE、J2ME、J2EE

JDK:Java Development Kit (Java开发必备)

JRE:Java Runtime Environment (Java执行环境)

JDK包含了JRE。

Jdk 1.4, jdk 1.5(5.0), jdk 1.6(6.0)

jdk 1.5(5.0):Tiger,老虎

jdk 1.6(6.0):Mustang,野马

下载JDK

安装JDK

设定环境变量(可以是用户变量,也可以是系统变量),指向JDK安装目录中的bin目录

通过运行,输入cmd打开命令行窗口,输入java –version,显示出Java版本信息

接下来就可以编写Java程序了。

可以直接使用windows记事本来编写Java程序,也可以使用Editplus,UltraEdit等高级文本编辑工具编写Java程序,还可以使用专业的IDE(Integrated Development Environment)编写。

所有的Java代码,其后缀都是以java结尾。

Java程序的执行过程分为两步:

编译

执行

Class文件是字节码文件,程序最终执行的就是这个字节码(bytecode)文件。

编译命令:java Test.java

执行命令:java Test(注意,Test后面没有.class)

Java是跨平台的语言,真正执行的不是二进制代码,而是字节码。

JVM(Java Virt l Machine,Java虚拟机)

Java是跨平台的,而JVM不是跨平台的(JVM是由C语言编写的)

Java之所以能够做到跨平台,本质原因在于JVM不是跨平台的。

Java SE 第二讲:

1. Windows: notepad, editplus, ultraedit, gvim

Linux: vi, vim, gedit

2. Java 中的数据类型分为两大类:

1 ) 原生数据类型 ( Primitive Data Type

2 ) 引用类型(对象类型) ( Reference Type

3. 变量与常量:所谓常量,就是值不会变化的量;所谓变量,就是值可以变化的量。

4. 如何定义变量?

变量类型 变量名 ;

int a;

5. 如何为变量赋值?

变量名 = 变量值 ;

a = 2;

= 表示赋值,将等号右边的值赋给了左边的变量。

Java 中使用 == 表示相等,等价于数学中的 =

6 .综合变量定义与赋值。

变量类型 变量名 ;

变量名 = 变量值 ;

int a;

a = 1;

可以将上面两个步骤合二为一:

变量类型 变量名 = 变量值 ;

int a = 1;

7. 变量名:在 Java 中,变量名以下划线、字母、 $ 符号开头,并且后跟下划线、
字母、 $ 符号 以及数字 。 总之,Java 中的变量名不能以数字开头。

Java 中的原生数据类型共有 8 种:

1 )整型:使用 int 表示。( 32 位)

2 )字节型:使用 byte 表示。(表示 -128 ~ 127 之间的 256 个整数)。

3)短整型:使用short表示。(16位)

4)长整型:使用long表示。(64位)

8. 关于计算机系统中的数据表示

位:bit(只有0,1两种状态),是计算机系统中的最小数据表示单位。

字节:byte, 1 byte = 8 bit。

1 KB = 1024 Byte (1Kg = 1000g,与计算机系统不同)

1 MB = 1024 KB

1 GB = 1024 MB

9.注释。注释是给人看的,不是给计算机看的。Java中共有3种类型的注释:

1)单行注释:以//开头,//后面的所有内容均被当作注释处理。

2)多行注释:以/*开头,以*/结束,中间的所有内容均被当作注释处理。多行注释来源于C/C++。关于多行注释,需要注意的是,多行注释不能嵌套。

3)另一种多行注释。用于产生Java Doc帮助文档。暂且不介绍。

Java SE 第三讲:

1. Java 中的原生数据类型共有 8 种:

1 ) 整型:使用 int 表示。( 32 位)

2 ) 字节型:使用 byte 表示。(表示 -128 ~ 127 之间的 256 个整数, 8 位)。

3 )短整型:使用 short 表示。( 16 位)

4 )长整型:使用 long 表示。( 64 位)

5 )单精度浮点型:使用 float 表示。 所谓浮点型,指的就是小数,也叫做实数,比如 1.2

6 )双精度浮点型:使用 do le 表示。 双精度浮点型表示的数据范围要比单精度浮点型大。

7 )字符型:使用 char 表示( char 是 character 的缩写)。所谓字符,就是单个的字符表示,比如字母 a ,或者中文张,外面用单引号包围上。比如 char a = ' B ' ; char b = ' 张 ' ;

8 )布尔类型,使用 boolean 表示。布尔类型只有两种可能值,分别是 tr 与 false 。

2. Java 中的所有浮点类型默认情况下都是 do
le
。不能将 do le 类型的值赋给 float 类型的变量,即便该 do
le
类型的值处于 float 类型的范围内也是不可以的。总之,能否成功赋值取决于等号右边的值类型与等号左边的变量类型是否一致。

3. 如何将 do le 类型的值赋给 float 类型的变量?答案就是 (1) 强制类型转换,将 do
le 类型的值强制转换为 float 类型。(2) 使用 java 预言的支持。

强制转换的语法: 类型 变量名 = ( 类型 )变量值 ;

4. 变量在使用前必须要赋值;变量必须要声明其类型方可使用;变量在使用前必须要定义,

并且只能定义一次。

5. 如下代码无法通过编译:

int a = 1;

short b = a;

a 是 int 类型, b 是 short 类型, int 类型表示的数据范围要比 short 类型大,不能将表示范围大的值赋给表示范围小的变量。

6. 如下代码可以通过编译:

short a = 1;

int b = a;

a 是 short 类型,b 是 int 类型,int 类型表示的数据范围要比 short 类型大,可以将表示范围小的值赋给表示范围大的变量。

7. 总结:可以将表示范围小的值赋给表示范围大的变量;但不能直接将表示范围大的值赋

给表示范围小的变量,只能通过强制类型转换实现。

Java SE 第四讲:

1. 当有若干个变量参与运算时,结果类型取决于这些变量中表示范围最大的那个变量类型。

比如,参与运算的变量中,有整型 int ,有双精度浮点型 do
le
,有短整型 short ,那么最后的结果类型就是 do
le


2. int a = 1;

int b = 2;

do le c = (do
le)a
/ b;

上面的代码中, ab 都是整型,但是通过 (do
le)a
这种转换将 a 转换为一个匿名的变量,该变量的类型是 do
le
,但是要注意: a 本身依旧是 int 类型,而不是 do
le
类型,这样, (do le)a / b 就是 do
le
类型除以 int 类型,结果自然是 do
le
类型。

3. 取模运算符:使用 % 表示。

int a = 5;

int b = 3;

int c = a % b;

上面代码的运行结果是 2 ,因为 5 除以 3 结果是 12

取模的规律:取模的结果符号永远与被除数的符号相同

int a = 5;

int b = -3;

int c = a % b;

被除数是 5 ,那么取模的结果是 2

int a = -5;

int b = 3;

int c = a % b;

被除数是 -5 ,那么取模的结果是 -2

Java SE 第五讲:

1. 关系运算符:大于( > )、小于( < )、等于( == )、不等于( != )、大于等于( >= )、小于等于( <= ),关系运算的结果是个 boolean 值。

2. 逻辑运算符:重点讲解两个,逻辑运算符本身也返回一个 boolean 值。

1 ) 逻辑与:使用 && 表示,逻辑与是个双目运算符(即有两个操作数的运算符), 只有当两个操作数都为真的时候,结果才为真 ;其余情况结果均为假。 逻辑与表示的并

且的意思 。

2 ) 逻辑或:使用 || 表示,逻辑或也是个双目运算符,只有当两个操作数都为假的时候,

结果才为假;其余情况结果均为真。 逻辑或表示或者的意思 。

3. 关于逻辑运算符的短路特性 。

1 ) 逻辑与: 如果第一个操作数为 false ,那么结果肯定就是 false ,所以在这种情况下,将不会执行逻辑与后面的运算了,即发生了短路。

2 ) 逻辑或: 如果第一个操作数为 tr ,那么结果肯定就是 tr ,所在在这种情况下,

将不会执行逻辑或后面的运算了,即发生了短路。

4. 关于变量的自增与自减运算。

1 ) 关于 int b = a++ ,作用是将 a 的值先赋给 b ,然后再让 a 自增 1.

2 ) 关于 int b = ++a ,作用是将 a 的值先自增 1 ,然后将自增后的结果赋给 b 。

Java SE 第六节

1. 条件运算符(三元表达式),其形式为:

type d = a ? b : c; 具体化形式为: int d = 2 < 1 ? 3 : 4;

2. 轻量级的文本编辑器: UltraEditEditplusvivimgvim

3. 流程控制语句 if 的用法为:

第一种形式:

if( 布尔表达式 )

{

// 待执行的代码

}

第二种形式:

if( 布尔表达式 )

{

// 待执行的代码

}

else

{

// 待执行的代码

}

第三种形式:

if( 布尔表达式 )

{

// 待执行的代码

}

else if( 布尔表达式 )

{

// 待执行的代码

}

else if( 布尔表达式 )

{

// 待执行的代码

}

else

{

// 待执行的代码

}

4. switch语句,使用形式为:

switch(变量) //此处的变量类型就目前所学内容来看,只能为4种类型:byte,
short, int, char。

{

case 常量1:

//待执行的代码

break;

case 常量2:

//待执行的代码

break;

case 常量3:

//待执行的代码

break;

default:

//待执行的代码

}

虽然case语句中的break是可选的,但在绝大多数情况下,如果没有break,程序的逻辑就会发生错误,因此,通常情况下都需要加上break。

Java SE 第 7 讲

1. Java 中的循环控制语句一共有 3 种,分别是 while , do … while 以及 for 循环。

2. while 循环,形式为:

while( 布尔表达式 )

{

// 待执行的代码

}

3. do … while 循环,新式为:

do

{

// 待执行的代码

}

while( 布尔表达式 );

4. whiledo while 之间的区别:如果布尔表达式的第一次判断就为 false ,那么 while 循环一次也不执行; do while 循环则会执行一次。如果布尔表达式第一次判断为 tr ,那么 while 循环与 do while 循环等价。

5. for 循环(使用最多的一种循环),形式为:

for( 变量初始化 ; 条件判断 ; 步进 )

{

// 待执行的代码

}

for 循环的执行过程:

1 ) 执行变量初始化。

2 ) 执行条件判断。如果条件判断结果为假,那么退出 for 循环,开始执行循环后面的代码;如果条件判断为真,执行 for循环里面的代码。

3 ) 执行步进。

4 ) 重复步骤 2

Java SE 第八讲

1. break 语句: 经常 用在循环语句中,用于跳出整个循环,执行循环后面的代码。

2. contin 语句: 经常 用在循环语句中,用于跳出当前的这个循环(或者是跳出本次循环),开始下一次循环的执行。

3. break 与 contin 可以搭配标签使用, 在实际开发中,根本没有人会将 breakcontin 搭配标签来使用 。

4. 面向对象程序设计( Object Oriented Programming , OOP ; Object Oriented Design, OOD )。

什么是面向对象?在面向对象程序设计中有两个重要的概念:类( class )与对象( object )。

5. 类:类是一种抽象的概念, 类中包含了数据(通常使用名词来表示)与对数据的操纵(通常使用动词来表示) 。比如说人就是一种抽象的概念,人具有姓名、年龄、身高等数据,

还有吃饭、跑步等操纵数据的动作。

6. 对象:对象是一种具体的概念,是类的一种具体表示方式。比如说人是一个类,而张三、

李四、王五等具体的人就是对象。

7. 类所包含的内容,类一共包含两部分内容:

a) 数据,数据在类中称作 属性 ( Property 或者 Attribute )或者叫 成员变量 ( Member

variable )

b) 对数据的操纵,这种操纵在类中称作 方法 ( method )。

Java SE 第九讲

1. 面向对象程序设计的三大基本特征: 继承( Inheritence )、封装( Encapsulation )、多态 ( Polymorphism

2. 封装: 类包含了数据与方法,将数据与方法放在一个类中就构成了封装。

3. 如何定义类?

修饰符 class 类的名字

{

// 类的内容(包含了属性与方法)

}

4. 方法。如何定义方法?

修饰符 返回类型 方法名称( [ 参数 1 , 参数 2 , 参数 3 ]

{

// 方法体

}

5. main 方法是整个 Java 程序的入口点,如果类的定义中没有 main 方法,则程序无法执行。

6. 方法定义不能嵌套,也就说不能在一个方法中定义另外一个方法。方法只能定义在类中。

7. 关于方法的执行:首先需要定义方法,接下来就可以使用方法( 调用方法 ),当方法调用完毕后,方法可以返回值。 方法到底是否返回值是由方法的定义决定的。

8. 如何生成对象?通过类来生成对象( 通常 使用 new 关键字来生成对象)。

p lic class Person

{

}

类名 变量名 = new 类名 ();

Person person = new Person();

Person person2 = new Person();

Person person3 = new Person();

9. 方法调用需要通过对象来完成,方法调用的形式是:

对象变量 . 方法名 ([ 参数值 1 , 参数值 2 , 参数值 3 .]);

10. 关于方法的注意事项:

1 ) 在方法定义中,方法的返回类型与 return 后面的变量或常量类型保持一致。

2 ) 在方法调用时,给方法传递的参数需要与方法定义时的参数保持一致(参数个数一致,参数类型一致)。

3 ) 方法定义时的返回类型与接收方法返回值的变量类型保持一致。

11. p lic int add(int a, int b)

{

return a + b;

}

方法定义时的参数叫做形式参数。

int a = test.add(8, 3);

方法调用时所赋予的具体值叫做实际参数。

12. 关键字 void 表示方法不返回值。

13. 如果方法不返回值,那么声明方法的时候使用 void 关键字,在方法定义中可以有两种

情况实现不返回值:

a) 不使用 return 语句。

b) 使用 return ,但 return 后面没有任何值或者变量, return 后面只有一个分号,表示退出方法,返回到方法的调用端。

使用方式:

return;

Java SE 第十讲

1. 类 中 的 属 性 又 叫 做 成 员 变 量 ( member variable ),
属 性 用 英 文 表 示 为 property 或者attribute 。

2. 对象( Object )又叫做实例( Instance )。生成一个对象的过程又叫做实例化。

3. 命名约定

a) 类:首字母大写,如果一个类名由多个单词构成,那么每个单词的首字母都大写,中间不使用任何的连接符。比如 Person类, MemberTest 类。

b) 方法:首字母小写。如果一个方法由多个单词构成,那么第一个单词的所有字母全都小写,从第二个单词开始,每个单词的首字母大写。比如 add , addThreeInt 。

c) 属性:命名约定与方法相同。比如 age , ageOfPerson 。

4. 属性需要定义在类中,又叫做 成员变量 ;而定义在方法中的变量叫做 局部变量 。

5. 如何定义属性?

p lic class Person

{

修饰符 类型 属性名称 ;

}

如何使用属性?与方法一样,使用 . 运算符。首先需要生成类的实例,然后使用实例 + " . "

的方式来使用属性。

比如:

Person person = new Person();

person.age

6. 局部变量使用前必须要声明并赋初值;成员变量使用前必须要声明,但可以不赋初值。

7. 成员变量与局部变量的联系与区别:

a) 无论是成员变量还是局部变量,使用前都需要声明(定义)。

b) 对 于 局 部 变 量 来 说 , 使 用前 必 须 要 初 始 化 ; 对 于 成员 变 量 来 说 , 使 用 前 可 以不 初始 化。 如 果 没 有 初 始 化 成员 变 量 就 开 始 使 用 , 那 么每 个 类 型 的 成 员 变 量 都 有一个默认的初始

i. byteshortintlong 类型的初始值为 0

ii. floatdo
le
类型的初始值为 0.0

iii. char 类型的初始值' \? '

iv. boolean 类型的初始值为 false

8. 引用类型( reference type ):引用类型是用在对象上的。一个对象可以被多个引用所指向,但同一时刻,每个引用只能指向唯一的一个对象。如果一个对象被多个引用所指向,

那么无论哪个引用对对象的属性进行了修改,都会反映到其他的引用当中。

Java SE 第十一讲

1. 如果一个类包含了属性与方法,那么该类的每一个对象都具有自己的属性,但无论一个

类有多少个对象,这些对象共享同一个方法 。

2. 关于方法参数传递的总结:对于 Java 中的方法参数传递,无论传递的是原生数据类型

还是引用类型, 统一是传值( pass by val ) 。

3. 什么类型的引用就能指向什么类型的对象,比如 People 类型的引用就能指向 People 类型的对象,但不能指向 St?nt 类型的对象。比如:

People people = new People(); // 正确

People people = new St?nt(); // 错误

4. 构造方法( Constr tor ): 构造方法用于完成对象属性的初始化工作 ,构造方法的特点:

a) 构造方法的名字必须与类名完全一致(包含大小写)

b) 构造方法没有返回值,连 void 也不能出现。

c) 如果在定义一个类的时候,没有为类声明构造方法,那么 Java 编译器会自动为类添加一个没有参数且方法体为空的构造方法(默认的构造方法)

d) 如果在定义一个类的时候,为类声明了构造方法,那么 Java 编译器就不会再为类添加构造方法了。

e) 不能显式调用类的构造方法,构造方法通常是通过 new 关键字隐式调用。

5. new 关键字在生成对象时完成了三件事情:

a) 为对象开辟内存空间。

b) 调用类的构造方法。

c) 将生成的对象的地址返回。

6. 默认的构造方法:构造方法没有参数且方法体为空。

7. 使用 new 来生成对象的时候,后面的小括号 () 表示构造方法的参数列表,如果构造方法不接收参数,那么小括号中的内容为空;如果构造方法接收参数,那么小括号中的实际参数就需要与构造方法定义中的形式参数保持一致(参数数量一致、参数类型一致、按照顺序逐一赋值)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: