Java for You 程序人生 Java 面试题

Java 面试题

  1. Java 构造方法和普通方法的异同。
  2. 什么是 Java 反射,有什么功能,获取类有哪几种方式?
  3. 创建对象由哪几种方式?
  4. Java 和 C++ 有啥区别?
  5. switch 语法支持哪些数据类型?String 的原理是什么?
  6. volatile 关键词有什么作用?
  7. 对 null 的理解?如何防止 NPE?
  8. 基本数据类型与位数?
  9. 什么场景会使用 finally?finally 代码块一定会被执行么?
  10. 异常的有哪几类,举例说明。异常处理的方式;多个异常如何处理?
  11. helloworld 的执行过程

参考答案:

  1. 同:可重载,参数个数任意;
  1. 异:
  1. 方法名前者必须与类名相同,后者不作要求。
  2. 前者不能被继承,后者可以。
  3. 前者伴随着 new 一起调用,后者需要类或实例发起调用。
  4. 前者完成对象的初始化工作,后者执行具体的业务逻辑。
  5. 前者可通过 super 显示调用父类,后者不能使用 super 关键字。
  6. 前者未定义,编译器默认生成无参方法,后者无默认能力。
  1. 定义:允许程序在运行时进行自我检查,也允许对其内部成员进行操作
  • 功能
  • 得到一个对象所属的类
  • 获取一个类的所有成员和方法
  • 运行时创建对象
  • 在运行时调用对象的方法
  • 获取类的方式
  • class.forName("类路径")
  • 类名.class
  • 实例.getClass()
  1. new、反射机制、clone、反序列化
  1. 整型,枚举,字符串;原理是String的hashCode()返回的int类型值匹配
  2. 保证线程间的可见性;从内存间取数据,而不是缓存;不保证原子性。
  3. 不是合法的 Object 实例;无内存;表明该引用目前没有指向任何对象;
  1. 空判断;辅助工具类;
  1. 八大基本数据类型:
  1. int长度
  • byte(8 bit)
  • short(16 bit)
  • int(32 bit)
  • long(64 bit)
  • float长度
  • 单精度(32 bit float)
  • 双精度(64 bit double)
  • boolean 类型变量的取值
  • true
  • false
  • char数据类型:Unicode字符(16 bit)
  1. 必须要执行到的代码,比如请求日志。不一定:进入 try 之前抛一次或者调用 System.exit(0)
  2. 检查性异常
  • IO
  • SQL
  • 运行时异常
  • JVM处理
  • NullPointException
  • ClassCastException
  • ArrayIndexOutOfBoundsException
  • 出现异常后,一直往上层抛,直到遇到处理代码或最上层
  • 多态。若先捕获基类,再捕获子类。子类处理代码将永远不会得到执行
  1. javac 编译,ClassLoader 装载 class,解释执行&编译执行
  1. 编译:词法分析器–>语法分析器–>语义分析器–>代码生成器:字节码
  2. 类加载:装载–>链接(校验格式和引用类的存在性;准备;解析)–>初始化
  3. 类执行:
  1. 解释执行:
本文由 java4u.cn 发布,可自由转载、引用,但需署名作者且注明文章出处(作者:白色蜗牛,出处:java4u.cn)。如转载至微信公众号,请在文末添加作者公众号二维码。 https://java4u.cn/career_up/3768.html

作者: 蜗牛

搭好的网站,一个不小心库没了,心态崩了

程序员成长路线

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

联系我们

公众号:蜗牛互联网

在线咨询: QQ交谈

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部