java面试题(中)

简介: java面试题(中)

一、JDK和JRE的区别是什么?

JDK:是java开发工具包,可以编写java程序,是面向开发者的工作环境,需要配置环境变量。

JRE:java运行时环境,包含了java虚拟机,java基础类库,java程序能够依赖运行的平台,不需要配置环境变量。

二、什么是构造函数,什么是构造函数重载?什么是复制构造函数?

构造函数是类函数,函数名与类名完全相同,无返回值,重载是指可以写多个构造函数,只是参数类型个数不同。

复制构造函数java中没有,它是指将本类的对象作为参数的构造函数。

三、创建线程有几种不同的方式?哪一种好?

1、继承Thread类

2、实现Runnable接口

3、实现Runnable接口比较好,因为不需要继承Thread类,java是单继承的,不支持多继承,在一个继承了其他类的类中,要想实现线程,只能实现接口来完成。

四、Array和ArrayList有什么区别?什么时候应该用Array而不是ArrayList?

1、Array大小固定,存储数据和对象。声明同时必须进行实例化,至少得初始化数组的大小。只能存储同构的对象(类型一致)。

2、ArrayList是动态增长的,只存对象类型。可以只声明。他可以存储异构的对象。

如果我们想要保存一些在整个程序运行期间都存在而且不变的数据,我们可以用Array。根据他们的区别判断具体什么时候用,不多赘述了。

五、谈谈对异常的理解

异常分为error和exception

1、error是系统异常,不可控。

2、exception是可控的异常。可以分为编译时异常和运行时异常,对于编译时异常可以通过try-catch捕获,或者throw抛出。

六、throw与throws区别

1、throw用来声明异常,后面跟的是一个具体的异常实例,写在方法体内。表示抛出异常,由方法的调用者来处理。

2、throws后面跟的是异常类,异常类可以出现多个,用逗号隔开。

七、作用域public,private、protected以及不写的区别

public:在同包下、不同包下都可以访问

private:私有,只在本类上调用。

protected:受保护的类,只能在同一包下可访问,子类也可以访问。

不写默认为friendly,类同包。

image.png

八、抽象方法是否可以同时是static,native,synchronized?

不能是static,抽象方法需要子类重写,静态方法是无法被重写的。

不能是native,本地方法是由本地代码实现的方法,抽象方法没有方法体,没有实现。

不能是synchronized,它跟实现细节有关,抽象方法不涉及实现细节,无方法体。

九、String s=new String(‘xyz’)创建了几个String对象?

可能是一个,也可能是两个。

1、当JVM读到‘xyz’时,首先检查常量池,要是有的话,不会为‘xyz’再次创建,读到new的时候,创建一个对象,把常量池中的‘xyz’的引用地址指向当前对象。所以这种情况一共创建了一个对象。

2、要是常量池中没有,先创建‘xyz’对象,在new的时候,再创建对象指向刚创建的对象。这时创建了两个对象。

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