Java面试题

天大地大妈咪最大 提交于 2019-11-28 08:36:40

一、面向对象的特征?

  1. 抽象
    1. 抽象是指将同一类的对象的共同特征总结出来,构造新类的过程。抽象只关心对象的属性与行为,并不关心行为的具体实现细节。
  2. 继承
    1. 继承是指从已有类得到继承信息,创建新类的过程,提供继承信息的类为父类,得到继承信息的类为子类。
  3. 多态
    1. 多态是指不同子类的对象对同一消息,做出不同的响应,也就是父类引用变量指向子类对象,调用同样的方法,做出不同的事情。多态分为编译时的多态性与运行时的多态性,方法的重载就是编译时的多态性,方法的重写就是运行时的多态性。
  4. 封装
    1. 封装是指数据与操作数据的方法绑定起来,通过已定义的接口对数据进行访问。

二、访问修饰符的区别?

三、Java中的基本类型有哪些?

  Java中有八大基本类型:byte short int long float doble char boolean

  其余都是引用类型

四、short s1 = 1; s1 = s1 + 1;有错吗?short s1 = 1; s1 += 1;有错吗?

  short s1 = 1;  s1 = s1 + 1; 因为1时int类型,s1位short类型,在使用时,不能将int转换为int类型,所以不对。

  short s1 = 1;  s1 += 1; 因为1时int类型,s1位short类型,在使用时,s1发生了强制类型的转换,相当于 s1 = (short)(s1+1);

五、关于基本类型与它们的包装类型?

示例一:Integer a = new Integer(3);Integer b = 3;// 将3自动装箱成Integer类型int c = 3;System.out.println(a == b);     // false 两个引用没有引用同一对象System.out.println(a == c);     // true  a自动拆箱成int类型再和c比较System.out.println(b == c);     // true  b自动拆箱成int类型再和c比较示例二:  Integer f1 = 100;      Integer f2 = 100;      Integer f3 = 150;      Integer f4 = 150;      System.out.println(f1 == f2);      System.out.println(f3 == f4);//整型字面量的值在-128到127之间,如果超过,则会new新的Integer对象。

六、简单解释内存中的栈(stack)、堆(heap)和方法区(method area)的用法。

  Java虚拟机中内存空间的分配图:

 

  基本数据类型的变、一个对象的引用、方法调用的时候   都是保存在JVM中的栈空间。

  通过new关键字、构造器创建的对象则放在堆空间,堆是垃圾收集器管理的主要区域。

  String str = new String("hello");

  str 在栈空间中

  new创建出来的字符串独享放在堆空间中

  "hello"这个字面量放在方法区中

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!