java面试题

简介: 1 final finally finalize 的区别? final:是关键字,修饰属性,属性不可被改变;修饰方法,方法不可被重载;修饰类,该类不可以被继承。 finally:是异常处理的一部分,总是会执行的,一般用来关闭资源的。

 

1 final finally finalize 的区别?
final:是关键字,修饰属性,属性不可被改变;修饰方法,方法不可被重载;修饰类,该类不可以被继承。
finally:是异常处理的一部分,总是会执行的,一般用来关闭资源的。
finalize():是Object类的一个方法,finalize() 方法是在垃圾收集器删除对象之前对这个对象调用的。

2 java支持的数据类型, 及包装的数据类型有哪些?
八种基本数据类型:char byte int float double boolean short long
对应的包装数据类型 Char Byte Integer Float Double Boolean Short Long

3 接口与抽象类的区别?
1 抽象类里可以有构造方法,而接口内不能有构造方法。
2 抽象类中可以有普通成员变量,而接口中不能有普通成员变量。
3 抽象类中可以包含非抽象的普通方法,而接口中所有的方法必须是抽象的,不能有非抽象的普通方法。
4 抽象类中的抽象方法的访问类型可以是public ,protected和默认类型,但接口中的抽象方法只能是public类型的,并且默认即为public abstract类型。
5 抽象类中可以包含静态方法,接口内不能包含静态方法。
6 抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可以任意,但接口中定义的变量只能是public static类型,并且默认为public static类型。
7一个类可以实现多个接口,但只能继承一个抽象类。


4 java集合类的基本接口有哪些?
List(数据重复 有序) Set Map(key唯一,) Collection

5 hashMap与 hashTable的区别?
都实现接口:Map。
键值:HashTable的键值都不允许为空,HashMap的键值只允许其中一个为空。
线程安全:HashTable线程安全,HashMap线程不安全。

6 ArrayList 和LinkedList的区别?
1 ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。
2 在对数据进行删除插入添加数据时,LinkedList较快。


7 线程中sleep()与wait()方法的区别?
sleep()方法导致了程序暂停执行指定的时间,让出其他线程,但是他的监控状态依然保持者,当指定的时间到了又会自动恢复运行状态。
在调用sleep()方法的过程中,线程不会释放对象锁。
而当调用wait()方法的时候,线程会放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象调用notify()方法(或者notifyAll()方法)后本线程才进入对象锁定池准备
获取对象锁进入运行状态。

8 数组有length属性,string有length()方法。

9 set集合元素怎样做到不重复的?
主要使用equals和hashcode方法。

10 error与exception的区别?
error:与自己写的程序无关,表示由 JVM 所侦测到的无法预期的错误,这是不可捕捉到的,无法采取任何恢复的操作,只能显示错误信息。
exception:与自己写的程序有关,表示有自己写的程序出错,这是可以捕捉,可是恢复的。

11 构造器可不可以被继承?String类是被final修饰的。
不可以,可以被重载。


12 执行线程调用方法,线程状态?
调用start()方法。
线程状态::新建状态(New)、就绪状态(Runnable)、运行状态(Running)、阻塞状态(Blocked)、死亡状态(Dead)。

13 在java中重载和重写的区别?
重载:方法名相同;参数列表不同(参数个数,类型);返回值类型可以相同也可以不同。
重写:子类对父类方法的重写,方法名相同,参数列表相同,相同的返回类型。子类的访问修饰权限不能小于父类的。

14 启动线程的方法有哪些?

   1 继承Thread类,重写run()方法。

   2 实现Runnable接口,实现run()方法。

 

13 java中String,StringBuffer,StringBuilder的区别?

   String是不可变的字符序列;StringBuffer线程安全的可变字符序列;StringBuilder线程不安全的可变字符序列。

  一般来说效率:效率比较String<StringBuffer<StringBuilder。

 不考虑线程安全的话,StringBuilder会比StringBuffer效率高些。   

13 MVC架构?
12 多个线程使用同一个对象该怎么办?

继续 杂问题 牛客网--java问答题

 





 

相关文章
|
2月前
|
缓存 Java 关系型数据库
【Java面试题汇总】ElasticSearch篇(2023版)
倒排索引、MySQL和ES一致性、ES近实时、ES集群的节点、分片、搭建、脑裂、调优。
【Java面试题汇总】ElasticSearch篇(2023版)
|
4天前
|
存储 缓存 Oracle
Java I/O流面试之道
NIO的出现在于提高IO的速度,它相比传统的输入/输出流速度更快。NIO通过管道Channel和缓冲器Buffer来处理数据,可以把管道当成一个矿藏,缓冲器就是矿藏里的卡车。程序通过管道里的缓冲器进行数据交互,而不直接处理数据。程序要么从缓冲器获取数据,要么输入数据到缓冲器。
Java I/O流面试之道
|
1天前
|
存储 Java 程序员
Java基础的灵魂——Object类方法详解(社招面试不踩坑)
本文介绍了Java中`Object`类的几个重要方法,包括`toString`、`equals`、`hashCode`、`finalize`、`clone`、`getClass`、`notify`和`wait`。这些方法是面试中的常考点,掌握它们有助于理解Java对象的行为和实现多线程编程。作者通过具体示例和应用场景,详细解析了每个方法的作用和重写技巧,帮助读者更好地应对面试和技术开发。
19 4
|
25天前
|
存储 安全 算法
Java面试题之Java集合面试题 50道(带答案)
这篇文章提供了50道Java集合框架的面试题及其答案,涵盖了集合的基础知识、底层数据结构、不同集合类的特点和用法,以及一些高级主题如并发集合的使用。
72 1
Java面试题之Java集合面试题 50道(带答案)
|
14天前
|
存储 Java 程序员
Java面试加分点!一文读懂HashMap底层实现与扩容机制
本文详细解析了Java中经典的HashMap数据结构,包括其底层实现、扩容机制、put和查找过程、哈希函数以及JDK 1.7与1.8的差异。通过数组、链表和红黑树的组合,HashMap实现了高效的键值对存储与检索。文章还介绍了HashMap在不同版本中的优化,帮助读者更好地理解和应用这一重要工具。
33 5
|
13天前
|
存储 Java
[Java]面试官:你对异常处理了解多少,例如,finally中可以有return吗?
本文介绍了Java中`try...catch...finally`语句的使用细节及返回值问题,并探讨了JDK1.7引入的`try...with...resources`新特性,强调了异常处理机制及资源自动关闭的优势。
16 1
|
22天前
|
Java 程序员
Java 面试高频考点:static 和 final 深度剖析
本文介绍了 Java 中的 `static` 和 `final` 关键字。`static` 修饰的属性和方法属于类而非对象,所有实例共享;`final` 用于变量、方法和类,确保其不可修改或继承。两者结合可用于定义常量。文章通过具体示例详细解析了它们的用法和应用场景。
22 3
|
2月前
|
设计模式 Java 关系型数据库
【Java笔记+踩坑汇总】Java基础+JavaWeb+SSM+SpringBoot+SpringCloud+瑞吉外卖/谷粒商城/学成在线+设计模式+面试题汇总+性能调优/架构设计+源码解析
本文是“Java学习路线”专栏的导航文章,目标是为Java初学者和初中高级工程师提供一套完整的Java学习路线。
367 37
|
25天前
|
Java
Java面试题之cpu占用率100%,进行定位和解决
这篇文章介绍了如何定位和解决Java服务中CPU占用率过高的问题,包括使用top命令找到高CPU占用的进程和线程,以及使用jstack工具获取堆栈信息来确定问题代码位置的步骤。
68 0
Java面试题之cpu占用率100%,进行定位和解决
|
29天前
|
存储 安全 Java
java基础面试题
java基础面试题
27 2