基础总结
1.在加法运算中byte,short,char,int类型相加都返回返回int类型
byte a = 1;
byte b = 2;
a + b (int类型);
2.++i和(++i),i++和(i++)的结果一样,在自加计算中,()无效
3.浮点数不能和整数使用==号进行比较,会有精度损失,正数除以double类型的0等于无穷大
double a = 0.1;
for (int i = 0; i < 10; i++) {
a += 0.1;
System.out.println(a);
}
输出结果:
0.2
0.30000000000000004
0.4
0.5
0.6
0.7
0.7999999999999999
0.8999999999999999
0.9999999999999999
1.0999999999999999
所以0.1 + 0.1 不一定等于0.2
4.外部类不能用static修饰,内部类可以
5.static只能修饰类成员:类属性,类方法,静态代码块,内部类
6.静态方法不能使用非静态变量
public class Test {
String x="1";
int y;
public static void main(String args[]) {
int z=2;
System.out.println(x+y+z); // 静态方法不能使用非静态变量, 在变量前加static后输出102
}
}
6.Java标识符由数字,字母和下划线(_),美元符号($)或人民币符号(¥)组成。在Java中是区分大小写的,而且还要求首位不能是数字。最重要的是,Java关键字不能当作Java标识符。
7.父类属性和子类属性可以重名,互不影响,重名后在子类中如果未指定super.默认使用的是子类的变量或方法
8.要在子类中重写父类的属性,在子类的构造方法中使用super.属性名设置
9.static 修饰的方法不能被重写
10.四个访问修饰符 ,只能有两个用来修饰 外部类(类) public 默认
11.继承中的属性值初始化顺序
① 父类的静态属性显式赋值 或 父类的静态代码块执行
② 子类的静态属性显式赋值 或 子类的静态代码块执行
③ 父类的属性显式赋值 或 父类的成员代码块执行
④ 父类的构造方法执行
⑤ 子类的属性显式赋值 或 子类的成员代码块执行
⑥ 子类的构造方法执行
12.基本数据类型的四类八种类型
- 整型:byte\short\int\long
- 浮点型:float\double
- blooean
- char
13.变量作用域{}内声明的变量在{}外不可见
public static void main(String args[]){
int a = 0;
for (int i = 0; i < 10; i++) {
if (a == 1) {
int j = 10;
} else {
int j = 20;
}
int j = 0; //正确,这里声明的j和if{}内声明的j不冲突
}
if (a == 2) {
int b = 2;
} else {
int b = 3;
}
int i = b; // 错误,b声明在if{}内,在外面不可见
i = j; // 错误,j声明在for{}内,在外面不可见
}
14.字符串类型判断一个空白符时,不能使用"\s"标识符,但可以使用"\t","\r"
- 判断字符串是否相等,一定要用equals方法
- \s表示正则表达式,不能用做字符和字符串判断
- " ".equals("\s") // false
- " ".equals(" ") // true
- " ".equals("\t") //true
14."\s的作用"
s.replaceAll("\s+", "") //替换所有空白
s.split("\s+") // 根据空白分割字符串
15.判断字符是否为空可以用标识符'\r','\s','\t'等
- Character.isWhitespace(' ') // 可以判断所有空白的字符,包括空格\制表符\换行等
- ' ' == '\s' //false ,\s不能用做判断空格,\s是正则表达式空白符的表示方法
- ' '== '\t' //true
16.Integer.valueOf('1')的值为49, Integer.valueOf("1")的值为1