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

  当然不能,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++问题

  

 int i = 0;
for(j=0;j<5;j++){
i=i++;
}

  最后输出的是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常量池及包装类型常量池

  

java知识回顾的更多相关文章

  1. Java知识回顾 (1) 编译环境与基本变量类型

    参考资料 runoob Java知识回顾序列的相关资料,主要来自 runoob,并对其中的知识进行概况或总结,去除对一个之前了解过Java的人员无关的知识点.以便能够使得一个新手,或之前有Java经验 ...

  2. Java知识回顾 (11) 异常处理

    距离最近的 Java知识回顾系列(10),2019.4.24日,到现在,已经近半年过去了. 感觉,做一件事情,如果有头无尾,实在不好,心里会一直悬着.所以,现在继续上面的内容. 再次声明,正如(1)中 ...

  3. Java知识回顾 (10) 线程

    再次声明,正如(1)中所描述的,本资料来自于runoob,略有修改. 一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务. Java 给多线程编程提供了内 ...

  4. Java知识回顾 (9) 同步、异步IO

    一.基本概念 同步和异步: 同步和异步是针对应用程序和内核的交互而言的. 同步指的是用户进程触发IO 操作并等待或者轮询的去查看IO 操作是否就绪: 而异步是指用户进程触发IO 操作以后便开始做自己的 ...

  5. Java知识回顾 (8) 集合

    早在 Java 2 中之前,Java 就提供了特设类.比如:Dictionary, Vector, Stack, 和 Properties 这些类用来存储和操作对象组. 虽然这些类都非常有用,但是它们 ...

  6. Java知识回顾 (7) 继承、多态与接口、封装

    一.继承 1.1 继承的特性 子类拥有父类非 private 的属性.方法. 子类可以拥有自己的属性和方法,即子类可以对父类进行扩展. 子类可以用自己的方式实现父类的方法. Java 的继承是单继承, ...

  7. Java知识回顾 (6)正则表达式、方法、文件与异常

    一.正则表达式 正则表达式定义了字符串的模式. 正则表达式可以用来搜索.编辑或处理文本. 正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别. Java 正则表达式和 Perl 的是最为相似 ...

  8. Java知识回顾 (5)数组、日期与时间, StringBuffer和StringBuilder

    一.数组 数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同. dataType[] arrayRefVar; // 首选的方法 或 dataType arra ...

  9. Java知识回顾 (4)Java包装类

    一. Java Number 一般地,当需要使用数字的时候,我们通常使用内置数据类型,如:byte.int.long.double 等. 然而,在实际开发过程中,我们经常会遇到需要使用对象,而不是内置 ...

  10. Java知识回顾 (3)运算符

    位运算符 Java定义了位运算符,应用于整数类型(int),长整型(long),短整型(short),字符型(char),和字节型(byte)等类型. 位运算符作用在所有的位上,并且按位运算.假设a ...

随机推荐

  1. 转载-struts中logic标签使用

    Struts中Logic逻辑标签的作用及用法 Struts中Logic逻辑标签的作用及用法 2006年10月18日 星期三 21:34 Terry原创,转载请说明作者及出处 Logic标签大部分的功能 ...

  2. Oracle基础结构认知—初识oracle【转】

    Oracle服务器(oracle server)由实例和数据库组成.其中,实例就是所谓的关系型数据库管理系统(Relational Database Management System,RDBMS), ...

  3. 二十、springboot之jpa开发@MappedSuperclass 注解说明

    @MappedSuperclass使用条件: 当我们进行开发项目时,我们经常会用到实体映射到数据库表的操作,此时我们经常会发现在我们需要映射的几个实体类中,有几个共同的属性,例如编号ID,创建者,创建 ...

  4. mybatis 控制台打印sql脚本

    在mybatis-config.xml文件中加一句 <setting name="logImpl" value="STDOUT_LOGGING" /> ...

  5. No.16 selenium学习之路之异常处理

    一.常见的几种异常: SyntaxError:语法错误 NameError:试图访问的变量名不存在 IndexError:索引错误,使用的索引不存在,超出序列范围 KeyError:使用了不存在的关键 ...

  6. github后端开发面试题大集合(一)

    作者:小海胆链接:https://www.nowcoder.com/discuss/3614?type=0&order=0&pos=5&page=0?from=wb来源:牛客网 ...

  7. vue-cli脚手架安装

    -1.安装淘宝镜像 $ alias cnpm="npm --registry=https://registry.npm.taobao.org \ --cache=$HOME/.npm/.ca ...

  8. 配置sql server 2000以允许远程访问

    配置sql server 2000以允许远程访问适合故障:1. 用sql企业管理器能访问sql server 2000(因为它是采用命名管道(named pipes)方式进行方式),但用ado.net ...

  9. Hex Dump In Many Programming Languages

    Hex Dump In Many Programming Languages See also: ArraySumInManyProgrammingLanguages, CounterInManyPr ...

  10. windows 依赖查看

    使用工具Download Process Explorer查看运行程序所依赖的动态库. 中文说明:适用于 Windows 的 Process Explorer 10.21 版