1.jdk11新特性,可直接运行单文件源码,不用先编译成字节码文件;
2.类名首字母大写,方法命名首字母小写的驼峰命名法;
3.变量分基本类型和引用类型:
基本数据类型是CPU可以直接进行运算的类型分为:
整数类型:byte,short,int,long
浮点型:float,double
字符型:char
布尔型:boolean
char用单引号’’
常量名用final修饰,全部大写
4.var关键字,类型名太长,可用var关键字
如:var sb = new StringBuilder();
5.整数的除法对于除数为0时运行报错,编译不报错,需注意范围溢出。整数运算结果永远是精确的
6.++n表示先加一再引用n,n++表示先引用n再加16
7.移位运算,最高位的符号位不变>>,>>>符号位会跟着动
8.位运算,按位进行与或非运算。异或运算:不同为1,相同为0。
9.类型自动提升与强制转换,小的强转成大的,但高位的字节会被直接扔掉
10.浮点数无法精确表示,不能进行位运算和移位运算,浮点数比较大小,是判断其差的绝对值是否在小于某很小的数。float强制转换成int会直接丢掉小数部分,若数值超过int最大范围会返回int最大值。需要四舍五入可+0.5再强转
11.‖和&&会进行短路运算
字符和字符串
12.\转义字符
13.java13开始"""…""“3个双引号,表示多行字符,
String s = “””
…SELECT * FROM
… users
…WHERE id > 100
…ORDER BY name DESC
…""";
会自动去掉前面的.标记的空格。
14.字符串不可变,变的是引用地址
数组
15.new int[5]大小是确定的
面向对象
1.方法重载overload,方法名相同,参数不同
2.重写override,
3.继承,子类拥有父类的所有方法和属性,但是无法访问private的属性和方法,protected的可以访问,protected可以把访问权限控制在继承树内部
4.子类的构造方法会自动调用父类的无参构造方法。
5.父类没有默认的构造方法,那么子类必须显式调用super()父类构造方法,子类不会继承父类的构造方法
6.多态指只有在具体运行时才能知道真正执行的是哪个方法
7.final修饰的方法属性不能被子类覆写,但是可以在构造方法中进行第一次初始化
8.不需要将rt.jar java核心库添加到classpath,jvm不是根据classpath去找核心库的
9.要特别注意,Integer有个getInteger(String)方法,它不是将字符串转换为int,而是把该字符串对应的系统变量转换为Integer:
10.始终牢记:Java的String和char在内存中总是以Unicode编码表示。
11.string会不断的创建新的对象,废掉临时字符串,浪费内存和gc,stringbuilder可以解决这个问题
12.比较bigdecimal使用compareto比较大小
13.math.random()生成[0,1)之间的随机数,每次都不重复
来源:CSDN
作者:qq_34525387
链接:https://blog.csdn.net/qq_34525387/article/details/103795263