2021-02-05

Java核心技术

1、java文件以.java结尾,字节码文件以.class结尾,javac命令:该程序是一个Java编译器,它将Java文件(带后缀 .java)编译成class文件,java命令:该程序会启动Java虚拟机并执行字节码文件(不带后缀)。

2、Java有8种基本类型:4种整型(byte:1字节、short:2字节、int:4字节、long:8字节),2种浮点型(float:4字节、double:8字节),1种字符型(char:2字节,Unicode编码),1种布尔类型(boolean)。

3、import static java.lang.Math.*; 静态导入。

4、>>>:用0填充高位,>>:用符号位填充高位。移位运算符的右操作数要完成模32的运算,1<<35 等同于 1<<3,如果左操作数是long类型则右操作数要完成模64的运算。

5、String.length()方法返回的是代码单元的数量,实际的长度(码点数量)要用 String.codePointCount(0,String.length())。String.charAt(n)返回的是位置n的代码单元,想得到第i个码点,要用String.codePointAt(String.offsetByCodePoints(0,i))

6、拼接字符串时使用StringBuilder类效率更高,涉及多线程用StringBuffer。

7.switch的case标签可以是 char、byte、short、int的常量表达式,枚举常量,从Java SE 7 开始,还可以是字符串字面量。

8、Math.random()返回一个0到1之间(包含0、不包含1的)随机浮点数。

9、日期类:Date、LocalDate。构造一个LocalDate对象不要使用new,使用LocalDate.now()、LocalDate.of(1999,12,31),获得年月日:LocalDate.getYear()、LocalDate.getMonthValue()、LocalDate.getDayOfMonth()。

10、实例域为final时,构建对象时必须初始化这样的域。

11、如果构造器没有显式给域赋初值,会被赋予默认初值,数值为0、布尔值为false、对象引用为null。可以调用方法对域赋值。局部变量不会被赋予默认初值,必须在使用前初始化局部变量。

12、static{}。静态初始化块只在类加载时执行,且只会执行一次,同时静态初始化块只能给静态变量赋值,不能初始化普通的成员变量。
{}。非静态初始化块的代码会在类构造函数之前执行。使用时应当养成把初始化块写在构造函数之前的习惯,便于调试。

13、Random类:Random.nextInt(n)返回0~n-1之间的随机数。

14、Object类:所有类的超类。equals(a)方法判断两个对象是否有相同的引用,子类一般需重写,常用写法:

 1. if(this==otherObject)return true; 
 2. if(otherObject==null)return false;
 3. if(getClass!=otherObject.getClass())return false;或者 if(!(otherObject instanceof Classname))return false;
 4. ClassName other = (ClassName)otherObject;
 5. 比较域:基本类型用==,对象用Objects.equals(o,other.o);  如果在子类重写equals(),则先调用super.equals(other);

hashCode()方法:默认方法返回值和地址有关。如果a.equals(b)返回true,那么a和b的hashCode()方法返回值必须相等。重写该方法可用Objects.hash(Object… objects)、Objects.hashCode(Object a)、基本类型包装类的hashCode(value)方法、Arrays.hashCode(int[] a)。
toString()方法:默认为 类名+[域值]。

15、Objects类:equals(a,b)方法如果a、b都为null,返回true,一个为null,返回false,都不为null,返回a.equals(b)。

16、Arrays类:hashCode方法可返回数组的散列码。

17、@Override覆盖超类的注解。@SuppressWarnings(“unchecked”):告诉编译器忽略指定的警告(忽略 unchecked 警告信息),不用在编译完成后出现警告信息。

18、重要接口:Comparable、Cloneable、Comparator

19、代理:处理器:InvocationHandler.invoke(Object proxy,Method m,Object[] args)、返回代理对象:Proxy.newProxyInstance(ClassLoader loader,Class<?>[] interfaces,InvocationHandler hander)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值