第二天
1.关键字与保留字
(1)关键字
(2)保留字:goto,const
2.标识符
定义:对各种变量、方法和类等要素命名时使用的字符序列
规则: (1).由26个因为字母大小写,0-9,_ 或者 $ 组成
(2) 数字不能开头
(3)不能使用关键字或者保留字,可以包含关键字或者保留字
(4)严格区分大小写,长度无限制
(5)标识符不能包含空格
3.变量
定义:内存中的一个存储区域,该数据的区域可以在同一类型范围内不断的变化,是程序中最基本的存储单元,包含变量类型,变量名和存储的值
作用:用于内存中保存数据
格式:数据类型 变量名 = 变量值;
规则:(1)Java中每个变量先声明,后使用
(2)使用变量名来访问这块区域数据
(3)变量的作用域,其定义所在的一对{}内,并且只在作用域内有效
(4)同一作用域,不能定义重名的变量
4.数据类型
(1)基本数据类型
整数类型:
byte、 1字节 = 8bit 能表示2的8次方种组合情况 所以范围-128到127
short、2字节=16bit 能表示2的16次种组合情况, 所以 -2的15次方到2的15次方-1
int、 4字节 = 32bit 表示2的32次方组合情况, 所以 -2的31次方到2的31次方-1
long 8字节 = 64字节 表示2的64次方组合情况, 所以 -2的63次方到2的63次方-1 必须以‘l’或者‘L’结尾
浮点型
float、单精度 4字节 -3.403E38 到 3.403E38 必须以‘f’或者‘F’结尾
double、双精度 8字节 -1.798E308 到1.798E308
字符型
char、 2字节, Java中所有字符都是Uncode编码,只能声明一个字符,或者转义字符 eg:char a = ‘A’; or char a = ‘\n’; 每个字符都对应着对应的Uncode值,所以可以运算
布尔型
boolean、 只能true,false
(2)引用数据类型
类(class) :字符串属于类,不属于基本数据类型
接口(interface)
数组(array)
5.强制类型转换
基本类型直接的运算规则:(boolean不加入转换)
(1)自动类型提升
当容量小的数据类型的变量与容量大的数据类型的容量做运算时,结果自动提升为容量大的数据类型(容量大小指的时数的范围大与小)
当char,byte,short做运算时,结果为int类型
byte—> short—>int —> long—> float—> doube
(char,byte,short)—>int —> long—> float—> doube
(2)强制类型转换
强制类型转换,自动类型提升运算的逆运算.
需要使用强转符()
可能会导致精度损失
6.字符串类型:String
不是基本数据类型,是引用数据类型
可以与基本数据类型做运算,结果仍然是String类型
7.ASCII码,Unicode码,UTF-8码
8.进制
(1)所有数字在计算机底层都是以二进制形式存储的
(2)对于整数,有四种表达方式
二进制:满2进1,以0b或0B开头,计算机中都以补码的形式保存所有整数
原码:直接将一个数值转换成二进制,最高位是符号位
反码:正数的反码和原码一样,负数的反码对原码取反,最高位(符号位)为1
补码:正数的补码和原码一样,负数的补码对其反码+1.
十进制:0-9,满10进1
十进制转二进制:除2取余的逆
八进制:0-7,满8进1,以数字0开头表示
十六进制:0-9及A-F,满16进1,以0x或者0X表示
符号位 | ||||||||
---|---|---|---|---|---|---|---|---|
原码 | 1 | 0 | 0 | 0 | 0 | 1 | 1 | 1 |
反码 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 |
补码 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 1 |
(3)在Java中有特定的方法去互相转换
System.out.println(Integer.toBinaryString(14)); //十进制转二进制
System.out.println(Integer.toHexString(14)); //十进制转十六进制
System.out.println(Integer.toOctalString(14)); //十进制转八进制
其实底层都是用
java.lang.Integer#toUnsignedString0方法实现的