入门
JDK=JRE(核心类库+JVM)+开发工具(java、javac)
javac hello.java,java hello
project-module-package(com.cx)-class
格式化ctrl+alt+L,注释ctrl+/,多行加shift
p11导包删工程操作
基础
字符是单引号且不为空
变量范围在}
二进制0b、八进制0、十六进制0x
float加f,long加l
k=2,k++ + ++k=2+4
+=自带强转
java.lang不用导包,sout,String
switch(a){//不支持double,float,long
case:break;
default:hh;
}
数组静态int[] arr=(new int[]){1,2},引用类型即名字存地址
动态int[] arr=new int[3]
方法调用在栈内存
基本类型传值,引用类型传地址
重载:同名不同形参列表(个数、类型、顺序)
没有被引用的对象会被垃圾回收
定义有参构造器后无参没了
成员变量才有默认值
对象在堆内存
String字符串是不可变的只是指向了新的对象
双引号创建的是同一份,new的不一样
下面String图是创建2个和0个对象
基本类型没有equals方法,只有==比较,比较的是值
所有对象的==比较都是内存地址的比较
对象的equals比较方式取决于equals方法,如果没重写,比较的就是引用,如果进行了重写,那么比较规则取决于equals体
ArrayList不支持基本数据类型
static成员变量或者方法被共享,用类名调用
静态方法只能访问静态成员,不能有this
成员变量、方法、代码块、构造器、内部类
静态代码块static{}用于初始化静态数据优于main执行
构造代码块{}在构造函数前执行
继承extends,不继承构造器,private可以暴力继承,子类能直接用父类的static。访问时先局部后子类后父类。重写时加上@Override,私有不能重写,重写时修饰符要大,默认<protected<public,静态不能重写。
子类构造器先调父类无参,默认super()
不同包的类要imort 包名.类名
final修饰变量只能赋值一次(引用不变对象内容可变),类不能继承,方法不能重写
常量:public,static,final
有抽象方法必须声明为抽象类,修饰符后加abstract方法不用{}
抽象类不一定有抽象方法,不能创建对象
类多实现接口,接口多继承接口,接口同函数的返回值要一样
成员内部类访问外部变量用外部类名.this.
编码的意思是把字符变成二进制,解码反之P118StringBuilder、119MathSystemBigDecimal
P121、122日期时间
P125Arrays工具类操作数组、129collection、130红黑树
P131list系列、132泛型、134set系列
P135collections集合操作工具类和可变参数、1378map系列
P141stream流
P142、143、144异常
P147logback日志、154File类
P158、159、160IO流
P162-167缓冲流打印流序列化转换流
P168-178线程
P180-185IP通信
P187-193测试代理反射注解
P194-199xml设计模式