Java基础面试题都有哪些?

1.java异常机制的原理与应用 答:每当程序出现异常之后,如果程序没有进行相应的处理,则程序会出现中断现象。实际上,产生了异常之后,JVM会抛出一个异常类的实例化对象,如果此时使用了try语句捕获的话,则可以进行异常的处理,否则,交给JVM进行处理。当try语句捕获异常之后,将与catch语句的异常类型进行...
Java基础面试题都有哪些?
1.java异常机制的原理与应用
答:每当程序出现异常之后,如果程序没有进行相应的处理,则程序会出现中断现象。
实际上,产生了异常之后,JVM会抛出一个异常类的实例化对象,如果此时使用了try语句捕获的话,则可以进行异常的处理,否则,交给JVM进行处理。当try语句捕获异常之后,将与catch语句的异常类型进行匹配,如果匹配成功则执行catch内的语句。简单的应用:在所以throws语句的地方加入try-catch。标准应用:try-catch-finally-throw-throws一起使用。

2. 垃圾回收机制的优点
答:释放无用的对象所占用的空间。方式:自动回收,手动回收。使用System.gc(),实际上调用Runtime.getRuntime().gc()

3. Error与Exception区别
答:Error是jvm进行处理,是jvm出错
exception是可以由程序处理的,可以用try-catch捕获的

4. final,finally,finallize
答:final定义的变量的值不能改变,定义的方法不能被覆盖,定义的类不能被继承
finally是异常的统一出口,finallize是垃圾回收前的收尾工作,是Object类定义的

5. Anonymous Inner Class是否可以extends,是否可以implements Interface
答:允许继承和实现,因为匿名内部类就是在抽象类和接口的基础上发展起来的

6. Static Nested Class 与Inner Class的区别
答:使用Static定义的Class就是外部类,可以通过外部类. 内部类直接访问
而Inner Class是不能被外部访问的,只能通过外部类的实例再找到内部类实例。

7. HashMap and HashTable?
答:HashMap:1) released in jdk 1.2,new Class 2)采用异步处理方式,性能较高,是非线程安全的 3)允许null
HashTable:
1)released in jdk 1.0 ,old Class
2)采用同步处理方式,性能低,是线程安全的
3)不允许null

8. assert代表什么?
答:asserts是jdk 1.4之后发布的新关键字,表示断言,即程序执行到某个地方肯定是预计的值,一般开发很少使用。要使用assert,必须加上 -ea参数

9. gc是什么?
答:gc是garbage collection,垃圾回收,使用gc可以进行垃圾空间的释放

10. String s = new String("xyz")产生了几个对象?
答:一个匿名对象xyz,在栈空间内。一个new实例化的对象,在堆空间内。

11. sleep() and wait()?
答:sleep()是Thread类定义方法,表示线程的休眠,可以自动唤醒
wait()方法是Object类定义的方法,需要手动notify()和notifyAll()//sleep()不释放资源,wait()释放资源

12. Overload与Override的区别
答:Overload:重载
|- 在一个类中定义的若干方法
|- 所有的方法名相同,但参数类型或个数不同
|- 只有参数有关,与返回类型无关
Override:覆写
|- 在继承的关系中
|- 子类定义了父类同名的方法,参数类型或个数最好完全一样。
|- 访问权限不能更严格

13. abstract class 和 interface有什么区别?
答:抽象类:
|-由抽象方法和常量、变量、全局常量、构造方法、普通方法组成
|-使用abstract声明
|-子类要通过extends继承抽象类,子类如果不是抽象类,则必须覆写抽象类的全部抽象方法
|-存在单继承的局限
|-抽象类可以实现若干个接口
接口:
|-由抽象方法和全局常量组成
|-使用interface关键字
|-子类要通过implements实现接口,子类如果不是抽象类,则必须覆写抽象类的全部抽象方法
|-一个子类可以实现多个接口
|-接口不能继承一个抽象类,但允许继承多个接口2018-02-18
mengvlog 阅读 127 次 更新于 2025-08-09 21:34:12 我来答关注问题0
  •  翡希信息咨询 JAVA面试题

    线程安全性:Vector是线程同步的,而ArrayList是线程不同步的。因此,在多线程环境下,Vector能够确保数据的一致性,但性能可能会受到影响;ArrayList则没有这种保证,但性能更高。扩容机制:当内存不足时,Vector默认扩展1倍容量,而ArrayList默认扩展1.5倍容量。遍历方式:Vector支持Enumeration遍历,而ArrayLis...

  •  翡希信息咨询 Java基础面试题【分布式】组件

    在Java基础面试中,关于分布式组件的常见问题答案如下:1. Java分布式组件中常被提及的有哪些? Spring Cloud:一个广泛的服务治理生态,包含了多个组件,旨在简化服务间通信。 Dubbo:专注于服务间调用的解决方案,是Spring Cloud中服务调用的核心解决方案之一。2. Spring Cloud和Dubbo的主要区别是什么? Sp...

  •  文暄生活科普 大厂常见的Java面试题和详细答案

    11. 解释Java中的Synchronized关键字和Lock接口的区别和用法。Synchronized是Java语言内置的锁机制,用于实现线程同步;Lock接口提供更灵活的锁定方式,包括手动获取和释放锁,支持高级功能。12. 什么是Java中的IO流(Input/Output Stream)?解释字节流和字符流的区别和用途。IO流用于处理输入和输出,字节流处...

  • static 变量在 Java 中是属于类的,它在所有的实例中的值是一样的。当类被 Java 虚拟机载入的时候,会对 static 变量进行初始化。如果你的代码尝试不用实例来访问非 static 的变量,编译器会报错,因为这些变量还没有被创建出来,还没有跟任何实例关联上。5.Java 支持的数据类型有哪些?什么是自动拆...

  •  阿暄生活 java应届生笔试题 java应届毕业生面试题

    Java应届毕业生面试题及答案概要 一、Java基础概念 Java垃圾回收机制 答案:Java的垃圾回收机制是一种自动内存管理机制,它负责自动回收不再使用的对象占用的内存空间,以减轻程序员的内存管理负担。static静态方法是否可以被子类重写 答案:不可以。static静态方法是属于类的,而不是属于对象的,因此不能被...

檬味博客在线解答立即免费咨询

Java相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部