zoukankan      html  css  js  c++  java
  • java知识回顾

    一、构造方法能不能被继承

      当然不能,1.构造方法是类的唯一入口

           2.构造方法与类名相同

           3.子类构造方法中隐式的调用了父类的构造方法

    二、值传递和引用传递、不变类和可变类、直接赋值和浅拷贝和深拷贝

        1.直接赋值:在java中,对象的传递、方法参数的传递(将实参赋值给行参)多数是通过=来直接赋值的
            值传递是值的copy
            引用传递是引用的copy,即内存地址的copy
            引用传递又分两种 1.如果是不变类 对引用的操作不会改变原引用地址,但会改变现引用地址的值,他们指向不同的对象(new对象除外)
                                 2.如果是可变类 对引用的操作不会改变原引用地址,但会改变对象的值,他们指向的是同一个对象(new对象除外)

               3.不管是可变不可变,只要使用new来重新赋值,则是一个新的引用与对象,不会修改原来的引用与对象
            2.浅拷贝:对象实现cloneable接口,重写clone类,可以拷贝对象内的基本数据类型以及不变类型,引用类型不会被拷贝

        3.深拷贝:对象中的引用类型也实现cloneable接口。。。

             修改引用时new新的对象,如get、set时

            序列化(腌酸菜、冷藏)

       可变类:提供修改自身的方法,不可变类:要修改对象时必须new一个对象,如String、基本类型的包装类、BigInteger、BigDecimal等。(不可变类是线程安全的)

    三、String、StringBuffer与StringBuilder之间区别

      String:字符串常量,不可变类

      StringBuilder:字符串变量,线程非安全类

      StringBuffer:字符串变量,线程安全

      延伸:String str = “This is only a” + “ simple” + “ test”;jvm只生成了一个String对象

         String str2 = “This is only a”;   String str3 = “ simple”;   String str4 = “ test”;   String str1 = str2 +str3 + str4;  jvm生成了好多String对象

    四、i=i++问题

      

    1 int i = 0;
    2 for(j=0;j<5;j++){
    3      i=i++;
    4 }

      最后输出的是0,在jvm内,i=i++实际执行可以理解成这样

    int temp = i;
    i++;
    i = temp;

      步骤1 JVM把count值(其值是0)拷贝到临时变量区。 步骤2 count值加1,这时候count的值是1。 步骤3 返回临时变量区的值,注意这个值是0,没修改过。 步骤4 返回值赋值给count,此时count值被重置成0。

    五、equals,hashcode和==的区别

      java中有两种数据类型:

      1.基本数据类型,也称原始数据类型

      byte,short,char,int,long,float,double,boolean   他们之间的比较,应用双等号(==),比较的是他们的。 

      2.引用类型(类、接口、数组)   

      当他们用(==)进行比较的时候,比较的是他们在内存中的存放地址,所以,除非是同一个new出来的对象,他们的比较后的结果为true,否则比较后结果为false。

      ==:比较基本数据类型的值,比较引用类型内存地址

      equals:比较内存地址中的对象是否为相同对象,equals比较八大包装对象(如int,float等)和String类(因为该类已重写了equals和hashcode方法)对象时,默认比较的是值,在比较其它自定义对象时都是比较的引用地址

      hashcode:hashcode是用于散列数据的快速存取,如利用HashSet/HashMap/Hashtable类来存储数据时,都是根据存储对象的hashcode值来进行判断是否相同的。

      注:java规定,equals后两个对象一致,hashcode必须一致;equals不一致时,hashcode可能一致;

          但是程序员应该知道,给不相等的对象产生截然不同的整数结果,有可能提高散列表的性能。减少hash碰撞

    六、java常量池及包装类型常量池

      

  • 相关阅读:
    WCF 第十三章 可编程站点 为站点创建操作
    WCF 第十三章 可编程站点 所有都与URI相关
    WCF 第十二章 对等网 使用自定义绑定实现消息定向
    WCF 第十三章 可编程站点 使用WebOperationContext
    Using App.Config for user defined runtime parameters
    WCF 第十三章 可编程站点
    WCF 第十三章 可编程站点 使用AJAX和JSON进行网页编程
    WCF 第十二章 总结
    WCF 第十三章 可编程站点 使用WebGet和WebInvoke
    WCF 第十三章 可编程站点 URI和UriTemplates
  • 原文地址:https://www.cnblogs.com/bigmonkeys/p/7846894.html
Copyright © 2011-2022 走看看