Java面试题

一、面向对象的特征?

  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虚拟机中内存空间的分配图:

 

一个完整的栈帧包含:局部变量表操作数栈、动态连接信息、方法正常完成信息和方法异常完成信息  

 

  Java虚拟机栈的特征

    线程私有

    后进先出(LIFO)栈

    存储栈帧,支持Java方法的调用、执行和退出

    可能出现OutOfMemoryError异常和StackOverflowError异常

  Java本地方法栈的特征

    线程私有

    后进先出(LIFO)栈

    作用是支撑Native方法的调用、执行和退出

    可能出现OutOfMemoryError异常和StackOverflowError异常

    有一些虚拟机(如HotSpot)将Java虚拟机栈和本地方法栈合并实现

  局部变量表概念和特征

    由若干个Slot组成,长度由编译期决定

    单个Slot可以存储一个类型为boolean,byte,char,short,float,reference和returnAddress的数据,两个Slot可以存储一个类型为long或double的数据

    局部变量表用于方法间参数传递,以及方法执行过程中存储基础数据类型的值和对象的引用 

  操作数栈的概念和特征

    是一个后进先出栈,由若干个Entry组成,长度由编译期决定

    单个Entry即可以存储一个Java虚拟机中定义的任意数据类型的值,包括long和double类型,但是存储long和double类型的Entry深度为2,其他类型的深度为1

 

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

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

  String str = new String("hello");

  str 在栈空间中

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

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

 

转载于:https://www.cnblogs.com/in-the-game-of-thrones/p/11375211.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值