---1.8关键字:
定义:被Java语言赋予了特殊含义,用作专门用途的字符串(单词);
特点:关键字中所有字母都为小写;
①用于定义数据类型的关键字:class、interface、enum、byte、short、int、long、float、double、char、boolean、void;
②用于定义数据类型值的关键字:true、false、null;
③用于定义流程控制的关键字:if、else、switch、case、default、while、do、for、break、continue、return;
④用于定义访问权限修饰符的关键字:private、protected、public;
⑤用于定义类、函数、变量修饰符的关键字:abstract、final、static、synchronized;
⑥用于定义类与类之间关系的关键字:extends、implements;
⑦用于定义建立实例及引用实例、判断实例的关键字:new、this、super、instanceof;
⑧用于处理异常的关键字:try、catch、finally、throw、throws;
⑨用于包的关键字:package、import;
⑩其他修饰符关键字:native、strictfp、transient、volatile、assert
Java保留字:现有Java版本尚未使用,但以后版本可能会作为关键字使用,自己命名标记符时要避免使用这些保留字:[byValue、cast、future、generic、inner、operator、outer、rest、var、goto、const]
----------------------
标识符:Java对各种变量、方法和类等要素命名时使用的字符序列;凡是自己可以起名字的地方都叫标识符。
定义合法标识符规则:
①由26个英文字母大小写、0-9,_或$组成;
②数字不可以开头;
③不可以使用关键字和保留字,但能包含关键字和保留字;
④Java中严格区分大小写,长度无限制;
⑤标识符不能包含空格。
---1.9Java中变量的声明和使用:
变量的分类
A(按数据类型):对于每种数据都定义了明确的具体数据类型,在内存中分配了不同大小的内存空间。
①基本数据类型:
数值型:整数类型(byte,short,int,long)
浮点类型(float,double);
字符型:char
布尔型:boolean
②引用数据类型:
类:class(字符串在这里)
接口:interface
数组:([])
B(按声明的位置):在方法体外,类体内声明的变量成为成员变量;在方法体内部声明的变量称为局部变量;[注意:二者在初始化值方面的异同:同(都有生命周期),异(局部变量除形参外,需显式初始化)];
①成员变量:实例变量(不以static修饰)、类变量(以static修饰)
②局部变量:形参(方法签名中定义的变量)、方法局部变量(在方法内定义)、代码块局部变量(在代码块内定义);
------------------------
定义long型变量,值的末尾加”L“或”l“(整型默认类型是int,数字小的时候不加L也不会报错,会自动类型转化),定义float型变量,值的末尾加”F“或”f“(浮点型默认类型是double,不加F会报错);
ASCII码:
·在计算机内部,所有数据都是用二进制表示,每一个二进制位(bit)有0和1两种状态,因为8个二进制位就可以组合出256种状态,这被称为一个字节(byte).一个字节一共可以用来表示256种不同的状态,每个状态对应一个符号,就是256个符号,从00000000到11111111.
·ASCII码:上个世纪60年代,美国制定了一套字符编码,对英语字符与二进制位之间的关系,做了一个统一规定,就是ASCII码,ASCII码一共规定了128个字符的编码,比如空格”SPACE“是32(二进制00100000),大写的字母A是65(二进制01000001).这128个符号(包括32个不能打印出来的控制符号),只占用了一个字节的后面7位,最前面的1位统一规定为0.
·缺点:①不能表示所有字符;②相同的编码表示的字符不一样:比如130在法语编码中代表了e,在希伯来语编码中却代表了字母Gimel。
--------------------
Unicode编码:
乱码:世界上存在着多种编码方式,同一个二进制数字可以被解释成不同的符号,因此,要想打开一个文本文件,就必须知道他的编码方式,否则用错误的编码方式解读,就会出现乱码。
Unicode:一种编码,将世界上所有的符号都纳入其中,每一个符号都给予一个独一无二的编码,使用Unicode没有乱码的问题。
Unicode的缺点:Unicode只是一个符号集,它只规定了富豪的二进制代码,却没有规定这个二进制代码应该如何存储,无法区别Unicode和ASCII,计算机无法区分三个字节表示一个符号还是分别表示三个符号。
------------------------
UTF-8:
UTF-8是在互联网上使用最广的一种Unicode的实现方式;
UTF-8是一种变长的编码方式,它可以使用1-6个字节表示一个符号,根据不同的符号而变化字节长度。
UTF-8的编码规则:①对于单字节的UTF-8编码,该字节的最高位为0,其余7位用来对字符进行编码(等同于ASCII码);②对于多字节的UTF-8编码,如果编码包含n个字节,那么第一个字节的前n位为1,第一个字节的第n+1位为0,该字节的剩余各位用来对字符进行编码,在第一个字节之后的所有字节,都是最高两位为”10“,其余6为用来对字符进行编码。
---1.9Java中变量的自动类型转换和强制类型转换:
自动类型转换:
当容量小的数据类型与容量大的数据类型做运算时,容量小的灰自动转换成容量大的数据类型,char,byte,short==>int==>long==>float==>double;·当char\byte\short之间或者自身之间(short+short)做运算,默认的结果为int类型,结果定义为int类型。
强制类型转换:容量大转换为容量小的数据类型。会导致精度的损失。
String:平时常用的字符串,也是一种数据类型,字符串与基本数据类型之间的运算,只能是连接运算+,结果仍然是一个字符串
---1.11不同进制间的转换:
对于整数,有四种表示方式:
①二进制:0,1,满2进1,以0b或0B开头;
②十进制:0-9,满10进1;
③八进制:0-7,满8进1,以数字0开头表示;
④十六进制:0-9a-f,满16进1,以0x或0X开头表示,此处的a-f不区分大小写。
---进制之间转化机制:原码、反码、补码:
·所有数字在计算机底层都以二进制的形式存在;
·计算机以补码的形式保存所有的整数(正数的原码、反码、补码都相同,负数的补码是其反码加1);
·原码:直接将一个数值换成二进制数;
·反码:是对原码按位取反,只是最高位(符号位)确定为1;
·Java整数常量默认是int类型,当用二进制定义整数时,其第32位是符号位,当是long类型时,二进制默认占64位,第64位是符号位。
---1.12算术运算符:+,-,+,-,*,/,%,++,--,
取模:%取余数,结果的符号和被模数一致。
13%5=3
13%(-5)=3
-13%5=-3
-13%(-5)=-3
------
++前:先自增1,后做运算
后++:先做运算,后自增1
int a=10;
int b=a++;
int c=10;
int d=++c;
System.out.println(a);//11
System.out.println(b);//10
System.out.println(c);//11
System.out.println(d);//11
定义:被Java语言赋予了特殊含义,用作专门用途的字符串(单词);
特点:关键字中所有字母都为小写;
①用于定义数据类型的关键字:class、interface、enum、byte、short、int、long、float、double、char、boolean、void;
②用于定义数据类型值的关键字:true、false、null;
③用于定义流程控制的关键字:if、else、switch、case、default、while、do、for、break、continue、return;
④用于定义访问权限修饰符的关键字:private、protected、public;
⑤用于定义类、函数、变量修饰符的关键字:abstract、final、static、synchronized;
⑥用于定义类与类之间关系的关键字:extends、implements;
⑦用于定义建立实例及引用实例、判断实例的关键字:new、this、super、instanceof;
⑧用于处理异常的关键字:try、catch、finally、throw、throws;
⑨用于包的关键字:package、import;
⑩其他修饰符关键字:native、strictfp、transient、volatile、assert
Java保留字:现有Java版本尚未使用,但以后版本可能会作为关键字使用,自己命名标记符时要避免使用这些保留字:[byValue、cast、future、generic、inner、operator、outer、rest、var、goto、const]
----------------------
标识符:Java对各种变量、方法和类等要素命名时使用的字符序列;凡是自己可以起名字的地方都叫标识符。
定义合法标识符规则:
①由26个英文字母大小写、0-9,_或$组成;
②数字不可以开头;
③不可以使用关键字和保留字,但能包含关键字和保留字;
④Java中严格区分大小写,长度无限制;
⑤标识符不能包含空格。
---1.9Java中变量的声明和使用:
变量的分类
A(按数据类型):对于每种数据都定义了明确的具体数据类型,在内存中分配了不同大小的内存空间。
①基本数据类型:
数值型:整数类型(byte,short,int,long)
浮点类型(float,double);
字符型:char
布尔型:boolean
②引用数据类型:
类:class(字符串在这里)
接口:interface
数组:([])
B(按声明的位置):在方法体外,类体内声明的变量成为成员变量;在方法体内部声明的变量称为局部变量;[注意:二者在初始化值方面的异同:同(都有生命周期),异(局部变量除形参外,需显式初始化)];
①成员变量:实例变量(不以static修饰)、类变量(以static修饰)
②局部变量:形参(方法签名中定义的变量)、方法局部变量(在方法内定义)、代码块局部变量(在代码块内定义);
------------------------
定义long型变量,值的末尾加”L“或”l“(整型默认类型是int,数字小的时候不加L也不会报错,会自动类型转化),定义float型变量,值的末尾加”F“或”f“(浮点型默认类型是double,不加F会报错);
boolean类型数据一般用于流程控制,只允许true和false,不允许null,不可以0或非0整数代替false和true,这点和C不一样。
ASCII码:
·在计算机内部,所有数据都是用二进制表示,每一个二进制位(bit)有0和1两种状态,因为8个二进制位就可以组合出256种状态,这被称为一个字节(byte).一个字节一共可以用来表示256种不同的状态,每个状态对应一个符号,就是256个符号,从00000000到11111111.
·ASCII码:上个世纪60年代,美国制定了一套字符编码,对英语字符与二进制位之间的关系,做了一个统一规定,就是ASCII码,ASCII码一共规定了128个字符的编码,比如空格”SPACE“是32(二进制00100000),大写的字母A是65(二进制01000001).这128个符号(包括32个不能打印出来的控制符号),只占用了一个字节的后面7位,最前面的1位统一规定为0.
·缺点:①不能表示所有字符;②相同的编码表示的字符不一样:比如130在法语编码中代表了e,在希伯来语编码中却代表了字母Gimel。
--------------------
Unicode编码:
乱码:世界上存在着多种编码方式,同一个二进制数字可以被解释成不同的符号,因此,要想打开一个文本文件,就必须知道他的编码方式,否则用错误的编码方式解读,就会出现乱码。
Unicode:一种编码,将世界上所有的符号都纳入其中,每一个符号都给予一个独一无二的编码,使用Unicode没有乱码的问题。
Unicode的缺点:Unicode只是一个符号集,它只规定了富豪的二进制代码,却没有规定这个二进制代码应该如何存储,无法区别Unicode和ASCII,计算机无法区分三个字节表示一个符号还是分别表示三个符号。
------------------------
UTF-8:
UTF-8是在互联网上使用最广的一种Unicode的实现方式;
UTF-8是一种变长的编码方式,它可以使用1-6个字节表示一个符号,根据不同的符号而变化字节长度。
UTF-8的编码规则:①对于单字节的UTF-8编码,该字节的最高位为0,其余7位用来对字符进行编码(等同于ASCII码);②对于多字节的UTF-8编码,如果编码包含n个字节,那么第一个字节的前n位为1,第一个字节的第n+1位为0,该字节的剩余各位用来对字符进行编码,在第一个字节之后的所有字节,都是最高两位为”10“,其余6为用来对字符进行编码。
---1.9Java中变量的自动类型转换和强制类型转换:
自动类型转换:
当容量小的数据类型与容量大的数据类型做运算时,容量小的灰自动转换成容量大的数据类型,char,byte,short==>int==>long==>float==>double;·当char\byte\short之间或者自身之间(short+short)做运算,默认的结果为int类型,结果定义为int类型。
强制类型转换:容量大转换为容量小的数据类型。会导致精度的损失。
String:平时常用的字符串,也是一种数据类型,字符串与基本数据类型之间的运算,只能是连接运算+,结果仍然是一个字符串
---1.11不同进制间的转换:
对于整数,有四种表示方式:
①二进制:0,1,满2进1,以0b或0B开头;
②十进制:0-9,满10进1;
③八进制:0-7,满8进1,以数字0开头表示;
④十六进制:0-9a-f,满16进1,以0x或0X开头表示,此处的a-f不区分大小写。
---进制之间转化机制:原码、反码、补码:
·所有数字在计算机底层都以二进制的形式存在;
·计算机以补码的形式保存所有的整数(正数的原码、反码、补码都相同,负数的补码是其反码加1);
·原码:直接将一个数值换成二进制数;
·反码:是对原码按位取反,只是最高位(符号位)确定为1;
·Java整数常量默认是int类型,当用二进制定义整数时,其第32位是符号位,当是long类型时,二进制默认占64位,第64位是符号位。
---1.12算术运算符:+,-,+,-,*,/,%,++,--,
取模:%取余数,结果的符号和被模数一致。
13%5=3
13%(-5)=3
-13%5=-3
-13%(-5)=-3
------
++前:先自增1,后做运算
后++:先做运算,后自增1
int a=10;
int b=a++;
int c=10;
int d=++c;
System.out.println(a);//11
System.out.println(b);//10
System.out.println(c);//11
System.out.println(d);//11