1. 在一个Java文件里面,可以后多个类,但是最多只能有一个public类,否则.Java文件无法命名。
生成chm格式文档 javadoc -d person -author -version person.java
Java严格区分大小写,格式自由
2. 标识符:由数字,字母,下划线,美元符组成,不能由数字开头,不能包含关键字
3. 数据类型:
(1).整数:
十进制【0-9】
八进制 以0开头【0-7】
十六进制 以ox开头【0-9】【a-f】
二进制【0-1】
计算机内存最小的内存单元是位,只能存0,1
一个字节=8位
1T=1000G1G=1024M 1M=1024k 1K=1024位
byte 1个字节 -2^7-2^7-1
short 2个字节 -2^15-2^15-1
int 4个字节 -2^31-2^31-1(整数的默认类型)
long 8个字节 -2^63-2^63-1,如果数值能被int装下,自动降级为int,如需强制,则在值后面加L
(2).浮点数:
单精度4个字节 float 需在值后面加f,最大幂指次方127
float能存下所有整数
双精度8个字节 double(小数的默认类型),值后面的d一般不写,最大幂指次方1023
两个正无限大相等,两个负无限大相等,两个非数不相等
(3).布尔:
true false 1个字节
C/C++中非零就是真
(4).字符:
必须且只能放一个字符。
永远把字符当做一个整数来处理,Unicode编码,每个字符占两个字节,共16位,0-2^16-1全是数值位。
转义字符只有在字符串中才有意义。
注:
字符串+任何东西都变成字符串。
同一作用域内的变量不能同名,不同作用域的可以同名,访问变量时就近原则。
全局变量会自动初始化,局部变量使用前必须赋值。
4. 类型转化
小的转化成大的,自动类型提升
大的转化成小的,强制类型转化
表达式的数据类型自动提升
byte、short、char类型自动提升为int
如果有一个操作数是long型,计算结果是long型
如果有一个操作数是float型,计算结果是float型
如果有一个操作数是double型,计算结果是double型
5. 运算符:算数运算符
除法:如果两端都是整数,则取商运算
如果有一端为小数,则是正常的数学运算
取模:符号只跟%前面的数的正负有关
赋值运算符
比较运算符
逻辑运算符:&&为短路与||为短路或
位运算符:左移<< 左移相当于乘2
带符号右移>>右移相当于除2
无符号右移>>>
移位运算符适用的类型有byte short char int long
对于低于int的操作数将先自动转化成int再移位
移位不会改变变量本身的值
三目运算符表达式?值1:值2
6. 类的封装:不允许外界随意修改类的属性
隐藏类的实现细节
只能通过规则来修改属性
7. 构造函数:new的时候被调用
完成初始化工作
可以有return
8. static:变量共享,只有一份
提前生命周期,提前至类,可以通过类名调用
非静态的可以调用静态的,反之不可以
静态方法中不能使用this和super
静态代码块:static{}
当类第一次被加载的时候执行一次,new的时候加载
静态代码块可以调用静态方法
动态代码块:{}
执行顺序:静态代码块-》动态代码块-》构造函数
每次创建对象都会执行一遍动态代码块
this:构造函数,在方法内部使用this,谁调用这个方法谁就是this
调用构造函数
使用this作为对象传参
9. Java 重载和重写区别
(静态多态性)重载:方法名相同,参数类型,个数不同
(动态多态性)重写:子类与父类,方法名,参数相同(内容跟父类可以不一样,某个子类特有的特征),访问权限只能相等或者放大,不能更严格
10. 基本成员变量和成员方法可以继承