美文网首页
java基础类型、String类理解、版本对比、1.8新特性

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

作者: John13 | 来源:发表于2018-11-21 16:20 被阅读0次

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

    2、jvm的常量池:

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

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

    • 所谓静态常量池,即*.class文件中的常量池,class文件中的常量池不仅仅包含字符串(数字)字面量,还包含类、方法的信息,占用class文件绝大部分空间。

    • 而运行时常量池,则是jvm虚拟机在完成类装载操作后,将class文件中的常量池载入到内存中,并保存在方法区中.常说的常量池,就是指方法区中的运行时常量池。运行时常量池中还会包括直接引用。

    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>
    无参数,返回一个结果。

    相关文章

      网友评论

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

          本文链接:https://www.haomeiwen.com/subject/xdhcqqtx.html