一、Java标识符:就是需要自己取名的地方

1. 合法标识符规则:(法律)
1. 数字不能作为开头
2. 严格区分大小写,长度无限制
3. 不能包含空格
4. 不能使用关键字和关键字
2. 命名规范:(道德)
1. 包名:多单词组成,所有字母也都小写
2. 类名、接口名:所有单词首字母都大写
3. 变量名、方法名:多单词组成,第一个单词首字母小写,剩余单词首字母大写
4. 常量名:所有字母全都大写,多个单词之间用下划线_隔开

二、变量:

1. 概念即:内存中的一个存储区域(箱子);
2. 三个基本元素:变量的类型、变量名、存储的值;
3. Java中的每个变量必须先声明,后使用;两种方式:
	a. Int a, b;     a = b = 10;
	b. Int a = 10, b = 10;
4. 有限范围:{ } 之内;{} 内不能有重名
1. 变量的分类:按数据类型

浮点型默认为double类型,double不能转换成float;
整型默认为int,可以把小的给大的,比如int给long;
(但不能有这种情况:long num = 12345678999999;这个数太大了,int类型装不下,应该写为:long num = 12345678999999L;——自动类型提升;
大的变小的——强制类型转换;

1. 基本数据类型(8个!)
	a. 数值型
		i. 整型 (有符号数)
			1) byte 1byte 8bit
			2) short 2byte
			3) int 4byte
			4) long 8byte:long num = 123L;  //声明long类型常量必须在最后加“l”或“L”
		ii. 浮点型 
			1) Float 4 byte //声明float类型常量必须在最后加“f”或“F”,变量不加(比如b是一个浮点数,float a = b;)
			2)  double 8byte
	b. 字符型 char 2byte
		i. char c = 'c';   //只能有一个字符,不能写 'ab'
		ii. char c = '中';   //日文也可以
		iii. c = '\n';    //输出换行。System.out.println("aaa" + c + "bbb");  //+代表拼接;
		iv. c = '\u0056';  //代表Unicode值
		v. c = 65;    //输出 A;它将65转化成二进制,即对应的Unicode的码值代表的字符;
	c. 布尔型 boolean
		i. 只有两个值:true、false
2. 引用数据类型
	a. 类
	b. 接口
	c. 数组

三、不同种类的编码集:

1. ASCII码:上世纪六十年代美国制定,用 1 个byte,8 bit,制定了128个字符的编码,最前面一位统一为0;
2. 中国制定了GBK编码;
3. Unicode:将世界上所有的符号都纳入其中
	a. 每个符号(中文、日文、拉丁文)都给予一个独一无二的编码,使用Unicode没有乱码问题。
	b. 它有个缺点:没有规定这个二进制代码如何存储:
	如果每个字符都用三个或者四个字节表示,英文字母一个字节就可以表示,这就带来了存储空间的浪费;
四、基本数据类型转换和运算
1. 基本数据类型和string之间的运算:
a. string和基本数据类型只能做连接运算
	b. string和基本数据类型运算的结果还是string。连接符 +
2. 不同类型运算:小容量和大容量运算,小容量会自动提升成为大容量(容量指:数值范围大小,而非存储字节大小)
a. int类型和long类型运算,结果用什么类型来接收?—— long。
	b. long和float运算,结果是float类型
byte,short,char -> int -> long -> float -> double;
Byte, short, char 三者之间参与运算,先将自身提升为int类型
3. 强制类型转换:

自动类型提升的逆过程。这个过程可能会损失精度(就看强转后的容量能否装得下)