▼关键词和保留字
▼变量和类命名规范
▼pascal和驼峰法异同
▼数据类型
▼最大值2^7 - 1不是127原因
▼3种进制
▼数值型和浮点型隐式缺省值
▼float和double类型的精度
▼浮点类型范围大于整数类型原因
▼char类型可接收字符字面值和整数字面值
▼char类型与short类型比较
▼unicode统一码
▼字符串
▼回车符换行符
▼引号和转义
▼基本数据类型转换
▼常量命名规范
java的包package名是域名倒写,安卓app的包名都是这么来的吧
包名com.immoc对应域名的点生成文件路径时,变成src/com/immoc,bin目录存放class文件同样生成.
java的class文件放在bin目录,class文件是二进制的.
▼关键词和保留字
关键字,是对编译器有特殊意义的词.编译器根据关键字理解语义.
java中的关键字和保留字是区分大小写的,标识符不能与他们相同,例如不能用void但可用Void.一部分语言是不区分关键字大小写的.
保留字,预留的关键字,例goto,java现在不使用,保留,以后升级版本可能使用,用户不能定义与保留字相同的标识符.
▼变量和类命名规范
变量名命名规范,驼峰法
单个单词小写,多个单词首字母小写后续词首字母大写.变量名长度无限.
类的命名规范,pascal帕斯卡命名规范
一个单词,首字母大写,多个单词,每个词首皆大写.
▼pascal和驼峰法异同
驼峰法首词小写,后续各个词首大写.pascal规范所有词首都大写.
▼数据类型
数组属于引用数据类型,那传递时是引用.一部分语言中,数组是直接传值的.
数据类型里没有包含,list,set等结构.
详细[背]
▼最大值2^7 - 1不是127原因
最大整数:0 1 1 1 1 1 1 1,
对应: 2^7, 2^6,2^5,2^4, 2^3,2^2,2^1,2^0,
最大值=2^6+2^5+2^4+ 2^3+2^2+2^1+2^0 = 2^7 - 1 = 127
▼3种进制
八进制和十六进制 是以0开头,不是字母"O"开头;十六进制的"x"不区分大小写.
12 十进制;
012 八进制;
0x12 十六进制;
0X12L 十六进制长整型
▼数值型和浮点型隐式缺省值
数值型缺省为整型int,浮点型缺省为double双精度浮点型.例float f=1.23f;必须显示指定末尾f覆盖缺省d,因为d长度大于f无法存入,会报错;小存入大可以,大存入小存不下报错;
▼float和double类型的精度
float小数部分只能精确到后面 6位, 有效位数7位;[测试发现小数位7位,6位准确,第7位不准确]
double小数部分精确到小数点后15位,有效位数为16位;[测试发现小数位16位]
double类型范围大于int和long,例 double d=123;和double d=123L;小存入大不会报错;
科学计数法是 6 位;精度为7(精度是小数位的位数);
▼浮点类型范围大于整数类型原因
int和long长度 : 4和8;
float和double长度 : 4和8;
长度相同,但数据结构不同,浮点型数据存储使用二进制科学计数法,都包含三个部分:符号位,指数位和尾数部分。其中float的符号位,指数位,尾数部分分别为1, 8, 23. 双精度分别为1, 11, 52。
编程练习题
package com.xian;
public class BaseTypeDemo {
public static void main(String[] args) {
float f1 = 98.4f;
float f2 = f1;
int n = 55;
double d1 = 555.3;
d1 = n;
System.out.println("f1="+f1);
System.out.println("f2="+f2);
System.out.println("n="+n);
System.out.println("d1="+d1);
}
}
▼char类型可接收字符字面值和整数字面值
char类型读入值之后根据ascii码表将对应码值存入内存,这也就是char类型可以直接char c=65;输出A的原因;
char类型的数据表示一个字符,例如a 或者1,只能用单引号表示,不能用双引号.双引号表示的是字符串,用String类型[引用类型]存储.
▼char类型与short类型比较
对于char类型,占2个字节,共16位,这相当于short型的长度,但char型是无符号的整型,最大值65535;
char类型是存放字符,应用场景应该没有大小范围之分,若要研究数字大小,那应该是字符映射ascii码,ascii码是数值型(例如A的ascii码=65),那么char字符型应该也可存储数值,当作数值型来用,那其长度与short型等同.so,char ch = 65536;需要改成char ch = (char)65536;因为short型范围最大值2^16 - 1= 65536 - 1=65535,显而易见65536超出short型(在int型),为啥是2^16,不是2^15,因为对于short型共2字节16位,从0开始,最高位为15,借1位做符号位,最高位为14,前14位之和=15位对应值减1,但char型没有符号位借位.
字符类型编程练习题
package com.xian;
public class CharTest {
public static void main(String[] args) {
char c='A';
System.out.println("c="+c);
char c1=65;
System.out.println("c1="+c1);
char c2='S';
System.out.println("c2="+c2);
char c3=78;
System.out.println("c3="+c3);
}
}
▼unicode统一码
unicode统一字符编码,简称统一码,出现背景ASCII码不支持其他语言.
char类型值可以为unicode编码,unicode编码格式特点:\u + 4位十六进制 (4位,多了少了都不行).例char c = '\u005d'.
▼字符串
字符串是 双引号 引起来的0个或多个字符.只能是双引号.
▼回车符换行符
一般情况所说的回车,包含回车换行两个操作
\r是回车,回到行开始的地方
\n是换行
▼引号和转义
双引号可直接解析转义符,例如"\t",当用单引号时'\t',如果是字符串运算,则正常解析转义符,如果是数值运算,则'\t'根据char型特点自动转换成数值参与运算.
▼科学计数法
1.23 * 10^5 科学计数法表示 1.23 * E5 简化省略乘号 1.23E5或1.23e5
.2 代表 0.2
▼基本数据类型转换
int,long都能自动转成浮点型,浮点型都不能自动转数值型,都是单向的,唯独int转double是实线;
无论虚线实线,都可以自动转换(隐式),丢失精度;
基本数据类型转换练习题
package com.xian;
public class TypeConvert {
public static void main(String[] args) {
int priorInt = 67832;
char c = (char)priorInt;
System.out.println("c="+c);
int n = 65;
char c1 = (char)n;
System.out.println("c1="+c1);
long l = 987654321L;
int i = (int)l;
System.out.println("i="+i);
float f = l;
System.out.println("f="+f);
l = (long)f;
System.out.println("l="+l);
double d=987654321987654321l;
System.out.println("d="+d);
}
}
▼常量命名规范
命名规范:所有字符大写,多个单词组合使用下划线连接,不是pascal;