java基础类型、String类理解、版本对比、1.8新特性

2018-11-21  本文已影响0人  John13

1、java基本数据类型及长度

2、jvm的常量池:

JVM常量池浅析
Java常量池理解与总结

Java中的常量池,实际上分为两种形态:静态常量池运行时常量池。

3、java字符串不变性:

public final class String implements Serializable, Comparable<String>, CharSequence {

......

}

java基础解析系列(九)---String不可变性分析

        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 1.5, 1.6, 1.7, 1.8的区别

Java8函数式编程(一):Lambda表达式类型与常用函数接口
JDK 8 函数式编程入门

  • 函数式编程简介
    一切都是数学函数。函数式编程语言里也可以有对象,但通常这些对象都是恒定不变的 —— 要么是函数参数,要什么是函数返回值。函数式编程语言里没有 for/next 循环,因为这些逻辑意味着有状态的改变。相替代的是,这种循环逻辑在函数式编程语言里是通过递归、把函数当成参数传递的方式实现的。
  • 常用函数接口
  • 区别:

Consumer<T>
代表了接受一个输入参数并且无返回的操作

Function<T,R>
接受一个输入参数,返回一个结果。

Predicate<T>
接受一个输入参数,返回一个布尔值结果。

Supplier<T>
无参数,返回一个结果。

上一篇下一篇

猜你喜欢

热点阅读