码迷,mamicode.com
首页 > 编程语言 > 详细

Java面试题

时间:2019-08-23 22:07:10      阅读:98      评论:0      收藏:0      [点我收藏+]

标签:col   包装   抽象   使用   bool   基本数据   字符串   消息   子类   

一、面向对象的特征?

  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"这个字面量放在方法区中

 

Java面试题

标签:col   包装   抽象   使用   bool   基本数据   字符串   消息   子类   

原文地址:https://www.cnblogs.com/in-the-game-of-thrones/p/11375211.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!