1、java基本数据类型及长度
2、jvm的常量池:
Java中的常量池,实际上分为两种形态:静态常量池和运行时常量池。
所谓静态常量池,即*.class文件中的常量池,class文件中的常量池不仅仅包含字符串(数字)字面量,还包含类、方法的信息,占用class文件绝大部分空间。
而运行时常量池,则是jvm虚拟机在完成类装载操作后,将class文件中的常量池载入到内存中,并保存在方法区中.常说的常量池,就是指方法区中的运行时常量池。运行时常量池中还会包括直接引用。
3、java字符串不变性:
public final class String implements Serializable, Comparable<String>, CharSequence {
......
}
- 关于创建字符串:
String s2=new String("jiajun");
String s6=new String("jiajun");
System.out.println(s2==s6);
结果为false,都存放在堆内存,但是两个地方。
String s6=new String("jiajun");
String s1="jiajun";
System.out.println(s1==s6);
结果为false,s6存放在堆当中,而s1存放在常量池当中
String s1="jiajun";
String s7="jiajun";
System.out.println(s1==s7);
结果为true,都是存放在常量池
String s4="jia";
String s5=s4+"jun";
String s1="jiajun";
System.out.println(s1==s5);
结果为false,变量的值在运行的时候才确定,所以此时s5实际上是new一个对象
String s3="jia"+"jun";
String s1="jiajun";
System.out.println(s1==s3);
结果为true,此时s1 s3都是指向常量池一个string
String s1="jiajun";
String s8=new String("jia")+"jun";
System.out.println(s1==s8);
4、java序列化
JAVA对象流序列化时的readObject,writeObject,readResolve是怎么被调用的
什么是writeObject 和readObject?可定制的序列化过程
5、java 主要版本变化区别
很好的系列文章:
Java 8新特性(一):Lambda表达式
Java 8新特性(二):Stream API
Java 8新特性(三):Optional类
Java 8新特性(四):新的时间和日期API函数式编程:
Java8函数式编程(一):Lambda表达式类型与常用函数接口
JDK 8 函数式编程入门
- 函数式编程简介
一切都是数学函数。函数式编程语言里也可以有对象,但通常这些对象都是恒定不变的 —— 要么是函数参数,要什么是函数返回值。函数式编程语言里没有 for/next 循环,因为这些逻辑意味着有状态的改变。相替代的是,这种循环逻辑在函数式编程语言里是通过递归、把函数当成参数传递的方式实现的。
- 常用函数接口
- 区别:
Consumer<T>
代表了接受一个输入参数并且无返回的操作Function<T,R>
接受一个输入参数,返回一个结果。Predicate<T>
接受一个输入参数,返回一个布尔值结果。Supplier<T>
无参数,返回一个结果。