一、 关键字:

就是在java语法编程的时候,在关键的地方使用的单词,体现关键的地方的含义,都是事先定好的。

1、关键字的定义和特点:

  定义:被Java语言赋予了特殊含义,用做专门的字符串(单词)。

  特点:关键字中所有的单词都为小写。

(1):用于定义数据类型的关键字:

class 类  short 短整型  int 整形 long 长整型  double 双精度浮型  float 单精度浮点型  char 字符型  byte 字节型  interface 接口  enum 枚举  void 无法返回型 Boolean 布尔型

(2):用于定义数据类型值的关键字:

ture 是  flase 非  null 空

(3):用于定义访问权限修饰符的关键字:

Private 私有的  protected 受保护的  public 公共的

(4):用于定义类、函数、变量饰符的关键字符:

Abstract 声明抽象  final 最终值  static 静态 synchronized 线程同步

(5):用于定义类与类之间的关键字:

extends扩充、继承  implements 实现(接口)

(6):用于定义建立实例及引用对象、判断实例的关键字:

New 新建  this 本类  super 父类、超类  instanceof 实例

(7):用于异常处理的关键字:

Try 捕获异常 catch 捕捉异常  finally 没有异常都执行  throw 抛出一个异常对象  throws 声明一个异常可能被抛出

(8):用于包的关键字:

Package 包  import 引入

(9):其他修饰关键字:

Native 本地(非java)  strictfp 严格  transient 短暂  volatile 易失  assert 断言表达式是否为真

二、文本编辑器、标识符

1、windows:

 notepad++  uitraedit   editplus

2、标识符:

Java对各种变量、方法和类要素命名时,使用的字符序列为标识符。

凡是可以自己起名字的地方都叫标识符。

3、定义合法标识符规则:

(1)由26个英文字母大小写、0~9、_或$组成。

(2)数字不可以开头

(3)不可以单独使用关键字和保留字,包括关键字和保留字。

(4)java中严格区分大小写,长度无限制。

(5)标识符不能包括空格。

(注意:在起名时,为了提高阅读性,要尽量有意义,“见名知意”。)

4、java中的名称命名规范

(1)包名:多单词组成时所有字母都小写:xxyyzz。

(2)类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz。

(3)变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始首字母       大写:xxxYyyZzz。

(4)常量名:所有字母都大写,多单词时每个单词用下划线连接:XXX_YYY_ZZZ。

三、变量

1、变量的概念:

(1)内存的一个储存区域。

(2)该区域由自己的名称(变量名)和类型(数据类型)。

(3)java中的变量必须先声明后使用。

(4)改区域的数据可以在同一类型范围内不断变化。

2、使用变量注意:

(1)变量的作用域:一堆{}之间内有效。

(2)初始化值(第一次变量赋值)。

3、定义变量的格式:

数据类型  变量名 = 初始化值(int i = 1)

(变量是通过使用变量名来访问这块区域的)

四、变量分类(按数据分类)

对于每一种数据都定义了明确的具体数据类型,在内存中分配了不同大小的内存空间。

1、数据类型:

(1)基本数据类型:int 、long、short、byte、double、float、char、boolean

(2)引用类型:类:class、接口:interface、数组:[]

(数据类型分为基本类型和数据类型和引用类型,其中基本数据类型有8种,除了这8种之外的其他所有数据类型都是引用数据类型。)

2、整数类型:byte、short、int、long

Java各整数类型由固定的标数范围和字段长度,不受具体OS的影响,以保证java程序的可移植性。

Java的整数常量默认为int型,声明long型常量必须在后面加”l“或者”L“。

类型

占用存储空间

表数范围

Byte

1字节 = 8bit

-128~127

Short

2字节

-2的15次方~2的15次方减1

Int

4字节

-2的31次方~2的31次方减1

Long

8字节

-2的63次方~2的63次方减1

3、浮点型:float、double

与整数类型相似,Java浮点类型也有固定的标数范围和字段长度,不受具体OS的影响

Java的浮点型常量默认为double型,声明float型常量,需后加”f“或“F“。

浮点型常量有两种表示方式:

十进制形式:如:5.12、512.0f、.512(必须有小数点)。

科学计数法形式:如:5.12e2、512E2、100E-2

类型

占用空间

表数范围

精度

单精度float

4字节

-2的128次方~2的128次方

7位有效数字

双精度double

8字节

-2的1024次方~2的1024次方

16位有效数字

4、字符类型:char(用英文的’  ’括起来的单个字母、数字、符号)

Char类型数据用来表示通常意义上的“字符”(两个字节)。

(1)、字符型常量的表现形式:

字符型常量用单引号(‘ ’)括起来的单个字符,涵盖世界上所有的书面语的字符。

例如:

char c1 = ‘a’、char c2 = ‘中’、char c3 = ‘9’

Java中还允许受用转义字符‘/’来将其后的字符转为特殊字符型常量。

例如:

char c3 = ‘/n’  (//‘/n’表示换行符)。

Char类型是可以计算的,因为它有对应的Unicode码。

字符

说明

/b

退格符

/n

换行符

/r

回车符

/t

制表符

/”

双引导

/’

单引导

//

反斜线

5、布尔类型:boolean(用来判断条件,比如需要知道结果是否为正数,就可以使用布尔类型。)

Boolean类型适用于逻辑运算,一般用于程序流程控制。

If条件控制语句

While循环控制语句

Do-while循环控制语句

For循环语句

Boolean类型数据只允许取值true和fale,无null。

不可以用0或非0的整数替代false或者ture,这点和c语言不同。

如:

boolean b1 = ture ; Boolean b2 = flase

Public class Test{

  Public static void main (String[] arge){

System.out.print(“sss/n”);

System.out.println(“sss”)     //两种都可,常用下面这个

}

}

6、引用类型:String类

1、值null可以赋值给任何引用类型(类、接口、数组)的变量,用以表示这个引用类型变量中保存的地址为空。

2、String类 属于引用变量,可用于null赋值。

3、String类是一个典型的不可变类,String对象创建出来就不可改变。创建出的字符串将存放在数据区,保证每一个字符串常量只有一个,不会产生多个副本。

字符串:就是由0到多个字母数字符号共同组成的一个串,这个串要用英文的双引号括起来。

如:

String S0 = “hello world”;

System.out.println(str);

五、集成开发环境

里面包含了文本编辑工作,自动编译、简化运行,随时进行代码的调试。

Eclipse、IDEA、NetBeans

六、数据类型补充:

1、基本数据类型转换

(1)自动类型转换:容量小的自动转换为容量大的数据类型。数据类型按容量大小排序:doule-float-long-int-char、short、byte(char、short、byte不能相互转换。)

(2)有多种类型的数据混合运算时,系统首先将所有的数据转换成容量大的那种数据类型,然后再计算。

(3)byte、short、char之间不会相互转换,他们在计算时首先会转换成int类型。

(4)当把任何基本类型的值和字符串的值进行连接运算时,基本类型都将自动转换成字符串类型。例:String str0 = “1”+1+2+3;

System.out.println(strin);

输出结果:1123

(5)ASCII码:上个世纪60年代,美国制定了一套字符编码,对英语字符与二进制之间的关系做了统一的规定,这个被称为ASCII码,ASCII码一共规定了128个字符的编码,比如空格“space”时32,大写字母A是65.。

2、强制类型转换

自动类型转换的逆过程,将容量大的数据类型转换成小的数据类型。使用是要加强制转换浮(()),但可能造成精度降低或溢出,格外要注意。

(1)通常,字符串不能直接转换成基本类型,但通过基本类型对应的包装类可以实现把字符串转换成基本类型。

如:String a = “43”;

Int I = Integer.parselnt(a);

Boolean类型不可以转换为其他的数据类型。

(2)数据类型的运算规则:

  • 有多种类型的数据混合运算时,系统首先自动将所有数据转换成容量最大的那种数据类型,然后在进行计算。数字类型从小到大分别是:byte short int long float double
  • 数字类型运算中,多个相同的类型变量参与的计算,变量要先转换为相对应的数据类型的默认类型(比如两个byte类型的变量相加,会先把两个byte类型的变量转换成默认的int类型之后再计算,得到的结果是int类型。)

七、运算符

1、运算符是一种特殊的符号,用以表达数据的运算,赋值和比较等。

(1)算数运算符

(2)赋值运算符

(3)比较运算符(关系运算符)

(4)逻辑运算符

(5)位运算符

(6)三元运算符

2、算数运算符

运算符

运算

范例

结果

+

正号

+3

3

-

负号

B=4;-B

-4

+


5+5

10

-


6-4

2

*


3*4

12

/


5/5

1

%

取模(取余数)

7%5

2

++

自增前;先运算后取值

a=2;b=++a

a=3;b=3

++

自增后;先取值后运算

a=2,b=a++

a=3;b=2

--

自增前;先运算后取值

a=2;b=--a

a=1;b=1

--

自增后;先取值后运算

a=2;b=a--

a=1;b=2

+

字符串连接

"He" + "llo"

"Hello"

算数运算的注意问题:

(1)如果对负数取模,可以把模数负号忽略不计,如:5%-2=1。但被取模数是负数则不可以忽略、此外,取模运算的结果不一定为整数。

(2)对于除号“/”,它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分。例如:int x = 3510;x = x/1000*1000;x的结果是?3000

(3)“+”除字符串相加功能外,还能把非字符串转化成字符串。如:Systrm.out.println(“5+5=”+5+5);的打印结果是?5+5=55

(4)以下二者的区别:

System.out.println(‘*’ + ’/t’ + ’*’);  // ’ ’括起来是char类型,char类型的数据是可以进行数学运算的,在计算过程时字符转换成了ASCII码计算。

System.out.println(“*” + ‘/t’ + ‘*’);  // ” ”时字符串,字符串与其他数据类型相加时,实际上是把其他的数据转换成字符串,做字符串拼接。

八、赋值运算符

符号:=

1、当“=”两侧数据类型不一致时,可以使用自动类型转换或使用强制类型转换换原则进行处理。

支持连续赋值。

(1)支持连续赋值。

(2)扩展赋值运算符:+=;-+;*=;/=;%=

(3)在使用扩展赋值运算时,变量在参与运算时会把结果强制转换为当前变量的类型。

(4)“+=”:把左操作数和右操作数相加赋值给左操作数。例如c += a等价于 c = c + a

九、比较运算符(关系运算符)

运算符

运算

范例

结果

==

相等

4==3

false

!=

不相等

4!=3

false

<

小于

4<3

false

>

大于

4>3

true

<=

小于等于

4<=3

false

>=

大于等于

4>=3

true

比较运算符的结果都是boolean型,要么是false,要么是true。

比较运算符“==”不能误写成“=”

十、逻辑运算符

&:逻辑与      |:逻辑或    !:逻辑非  

&&:短路与   ||:短路或   ^:逻辑异或

A

b

a&b

a|b

!a

a^b

a&&b

a||b

true

true

true

true

false

false

true

true

true

false

false

true

false

true

false

true

false

true

false

true

true

true

false

true

false

false

false

false

true

false

false

false

1、逻辑运算符注意点:

(1)逻辑运算符用于连接布尔型表达式,在java中不可以写成3<X<6,应该写成x>3&x<6。

(2)”&”和”&&”的区别:

单&时:无论真假,右边都进行计算。

双&&时:如果左边时真的,右边参与计算,如果时假的,右边不参与计算。

|和||同理。

(3)异或(^)与或(|)的不同之处:当左右都为ture时,异或的结果为false。可以理解为异或追求的是异。

十一、位运算符(用到的少)

运算符

运算

范例

<<

左移

3<<2=12等同于3*2*2=12,m<<n等同于m*2的n次方

>>

右移

3>>1=1等同于3/2=1,等同于m>>n等同于m*2的-n次方

>>>

无符号右移

3>>>1=1等同于3/2=1

&

与运算

6&3=2

|

或运算

6|3=7

^

异或运算

6^3=5

~

反码

~6=-7

注意:无<<<

位运算符:直接对二进制进行计算。

有符号的右移是看右移之后的首位时0还是1,是0空位补0,是1空位补1。

无符号的右移在移动之后不管首位是0还是1都直接补0.

总结

<<

空位补0,被移除的高位丢弃,空缺位补0

>>

被移除的二进制最高位是0,右移后空位补0,最高位是1,空位补1

>>>

无符号,被移位的二进制最高位不管是0还是1,都补0

&

与运算,同位上,||得1,其他都得0

|

或运算,同位上,只要有|就得1,只有0 0才得0

^

异或运算,同位上,相同数得0,不相同得1(如11,00都得0。0,1;1,0得1)

~

反码,就是把二进制同位反转,0,1互换

十二、三元运算符(三目运算符)

格式:

(条件表达式)?表达式1:表达式2:

为ture,运算后的结果是表达式1;

为false,运算后的结果是表达式2;

如:

int I = 1;

Int k = I > 0 ? 1 : 0;

  System.out.println(k);

十三、运算符的优先级

运算符有不同的优先级,所谓优先级就是表达式运算中的运算顺序。

只有单目运算符、三元运算符、赋值运算符是从右向左运算的。

优先级

运算符

综合性

1

()[]

从左到右

2

!  +(正)  -( 负)~  ++  --

从右往左

3

*/%

从左到右

4

+(加)-(减)

从左到右

5

<< >> >>>

从左到右

6

<  <=  >  >=

从左到右

7

==  !=

从左到右

8

& 按位与

从左到右

9

^ 异或

从左到右

10

| 或

从左到右

11

&&短路与

从左到右

12

||短路或

从左到右

13

? :

从右往左

14

=  +=  -=  *=  /=  %=  &=  ^=  ~=  <<= >>=  >>>=

从右往左