Java面试题基础(一)

Java 面试题基础(一)

  • 前言
  • 1、面向对象的特征有哪些方面?
  • 2、访问修饰符的作用范围?
  • 3、Java有哪些数据类型?
  • 4、float f = 3.4; 是否正确?
  • 5、short s1 = 1; s1 = s1 + 1;对吗? short s1 = 1; s1 += 1; 对吗?
  • 6、int 和 Integer 有什么区别?
  • 7、& 和 && 的区别?
  • 8、static关键字有什么作用?
  • 9、Math.round(11.5) 等于多少?Math.round(-11.5)等于多少?
  • 10、switch支持的数据类型?
  • 11、数组有没有 length() 方法?
  • 12、构造器(constructor)是否可被重写?
  • 13、两个对象值相同(x.equals(y) == true),hash code也相同吗?
  • 14、String 类是否可以继承?
  • 15、值传递和引用传递的区别?
  • 16、String 和 StringBuilder、StringBuffer 的区别?
  • 17、重载和重写的区别,重载的方法和返回类型有关吗?
  • 18、char 型变量中能不能存贮一个中文汉字,为什么?
  • 19、抽象类(abstract class)和接口(interface)有什么异同?
  • 20、Java 中会存在内存泄漏吗,请简单描述?
  • 总结


前言

最新的 Java 面试题,技术栈涉及 Java 基础、集合、多线程、Mysql、分布式、Spring全家桶、MyBatis、Dubbo、缓存、消息队列、Linux…等等,会持续更新。

如果对老铁有帮助,帮忙免费点个赞,谢谢你的发财手!

1、面向对象的特征有哪些方面?

  • 封装:通常认为封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义好的接口;
  • 继承:继承是从已有类得到继承信息创建新类的过程。提供继承信息的类被称为父类(超类、基类);得到继承信息的类被称为子类(派生类);
  • 多态:特点是有继承/实现的关系;方法重写(子类重写父类的方法);有父类引用指向子类对象
  • 抽象:特点是抽象类不能实例化,只能通过子类实例化;子类必须重写父类的所有抽象方法;不能与private、final、static共存。

2、访问修饰符的作用范围?

修饰符当前类同一个包同一个包的子类其他包
public
protectedx
defaultxx
privatexxx

类的成员不写访问修饰时默认为 default。
抽象接口成员方法默认是public abstract 修饰的
抽象成员属性默认是public static final 修饰的

3、Java有哪些数据类型?

基本数据类型只有8 个:byte、short、int、long、float、double、char、boolean ;
除了基本类型,剩下的都是引用类型,类、接口、数组、集合(String和枚举也是类)。

4、float f = 3.4; 是否正确?

不正确,3.4是双精度数,将双精度型(double)赋值给浮点型(float)属于向下转型会造成精度损失。
需要强制类型转换 float f = (float)3.4; 或者写成 float f = 3.4F。

5、short s1 = 1; s1 = s1 + 1;对吗? short s1 = 1; s1 += 1; 对吗?

第一个不对,1是int类型,因此 s1+1 运算结果也是int型,需要强制转换类型才能赋值给 short 型。
第二个正确,因为 s1+= 1;相当于 s1 = (short)(s1 + 1);其中有隐含的强制类型转换。

6、int 和 Integer 有什么区别?

Java 为每一个基本数据类型都引入了对应的包装类型(wrapper class),从Java 5开始引入了自动装箱/拆箱机制,使得二者可以相互转换。

基本类型byteshortintlongfloatdoublecharboolean
包装类型ByteShortIntegerLongFloatDoubleCharacterBoolean

7、& 和 && 的区别?

逻辑与&运算符 和 短路与&&运算符:二者都要求运算符左右两端的布尔值都是true,整个表达式的值才是 true。
而短路与&&运算符,如果&&左边的表达式的值是 false,右边的表达式就不会运算了,直接返回false。

8、static关键字有什么作用?

static修饰的变量或方法,可以通过类名直接访问,而不必创建对象。
静态变量或方法在内存中只有一个副本,而不是每次创建新的对象时都会创建一个新的副本。

9、Math.round(11.5) 等于多少?Math.round(-11.5)等于多少?

Math.round(11.5)的返回值是 12,Math.round(-11.5)的返回值是 -11,
四舍五入的原理是在参数上加 0.5 然后进行下取整。
Math.random()方法是产生随机数字。

10、switch支持的数据类型?

switch支持的数据类型 byte、short、int、char、enum枚举,从 Jdk 1.7 开始,也支持字符串(String),
但是长整型(long)在目前所有的版本中都是不支持的。

11、数组有没有 length() 方法?

Java中数组没有 length()方法,只有 length 的属性。
String 有 length()方法。
JavaScript 中,获得字符串的长度是通过 length 属性得到的,这一点容易和 Java 混淆。

12、构造器(constructor)是否可被重写?

构造器不能被继承,因此不能被重写,但可以被重载。

13、两个对象值相同(x.equals(y) == true),hash code也相同吗?

相同,但反过来不一定,因此重写equals方法,必须也重写hashCode方法。

14、String 类是否可以继承?

String 类是 final 修饰的类,不可以被继承。

public final class Stringimplements java.io.Serializable, Comparable<String>, CharSequence {

15、值传递和引用传递的区别?

1、值传递改变形参的值不会影响实参的值,比如基本数据类型和String;
2、引用传递改变形参的值会影响实参的值,比如引用数据类型(类/接口/数组/集合)。

public static void main(String[] args) {UserDTO userDTO = new UserDTO("张三");int[] arr = {10};String a = "a1";this.test(userDTO, arr, a);System.out.println(userDTO.getName()); //输出:李四System.out.println(arr[0]); //输出:20System.out.println(a); //输出:a1
}
public static void test(UserDTO userDTO, int[] arr, String a){userDTO.setName("李四");arr[0] = 20;a = "a2";}

16、String 和 StringBuilder、StringBuffer 的区别?

  • 1.基本区别
    String的对象不可变,StringBuffer和StringBuilder的对象是可变的;
    (String为字符串常量,而StringBuilder和StringBuffer均为字符串变量)
  • 2.性能区别
    三者中StringBuilder执行速度最快,StringBuffer次之,String最慢;
  • 3.安全区别
    String、StringBuffer是线程安全的,StringBuilder是线程不安全的
    (如果程序是单线程使用StringBuilder效率高,如果是多线程使用StringBuffer或者String)。
  • 共同点:
    1.三者在java中都是用来处理字符串的;
    2.三个类都被final修饰,因此都是不可继承的;
    3.StringBuilder与StringBuffer有公共父类AbstractStringBuilder(抽象类)。

17、重载和重写的区别,重载的方法和返回类型有关吗?

方法的重载(Overload)和重写(Override)都是实现多态的方式。
  • 重载:发生在一个类中,同名的方法如果有不同的参数列表(参数类型不同、参数个数不同或者二者都不同)则视为重载,重载和返回类型没有关系;
  • 重写:发生在子类与父类之间,重写要求子类与父类有相同的返回类型,而且不能比父类声明更多的异常。

18、char 型变量中能不能存贮一个中文汉字,为什么?

char类型可以存储一个中文汉字,因为在Java中,char是用来存储Unicode编码的,一个 char 类型占 2 个字节(16 比特),所以放一个中文是没问题的。当然,如果某个汉字没有包含在Unicode字符集中,那么是不能被char型变量存储的。

19、抽象类(abstract class)和接口(interface)有什么异同?

相同:1. 抽象类和接口都不能够实例化,即不能通过new创建对象;
2. 子类都需要对其中的抽象方法(没有方法体)全部进行实现,否则该类仍然需要被声明为抽象类。
3.都可以定义抽象方法、普通方法(都可以重写)和普通变量;
4. 都可以定义静态方法或静态变量(必须通过类或接口直接点方法名或变量名使用)
不同:1. 抽象类只能通过extends继承1个,接口通过implements可以实现多个;
2. 抽象类可以有构造函数,接口不可以;
3. 接口的静态变量或普通变量都必须是public final,抽象类随意。

20、Java 中会存在内存泄漏吗,请简单描述?

内存泄露是指系统中存在无法回收的内存,有时候会造成内存不足或系统崩溃。
理论上 Java 因为有垃圾回收机制(GC)不会存在内存泄露问题(这也是 Java 被广泛使用于服务器端编程的一个重要原因);然而在实际开发中,可能会存在无用但被引用的对象,这些对象不能被 GC 回收,因此也会导致内存泄露的发生。

总结

都已经看到这里啦,赶紧收藏起来,祝您工作顺心,生活愉快!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/704071.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《C++面向对象程序设计》✍学习笔记

C的学习重点 C 这块&#xff0c;重点需要学习的就是一些关键字、面向对象以及 STL 容器的知识&#xff0c;特别是 STL&#xff0c;还得研究下他们的一些源码&#xff0c;下面是一些比较重要的知识&#xff1a; 指针与引用的区别&#xff0c;C 与 C 的区别&#xff0c;struct 与…

Unity中的浮点数

本文由 简悦 SimpRead 转码&#xff0c; 原文地址 mp.weixin.qq.com Unity float f 0.1f 为什么 $“{f}” 输出的时候会是 0.100000001 C# 中的 $"{}" 是一个字符串插补&#xff08;String Interpolation&#xff09;的语法糖&#xff0c;用于方便地创建和修改字符串…

网络技术ensp 一个简单的交换机配置案例

由于工作调岗&#xff0c;转战网络运维了&#xff0c;第一次网络笔记 1.&#xff0c;目的&#xff1a;2台主机相互可以ping通&#xff0c;并且可以ping通网关地址&#xff0c;设备&#xff1a;2台主机&#xff0c;2台交换机 2网络拓扑图如下 3.主机pc1的配置信息 ip&#xff…

Xcode与Swift开发小记

文章目录 引子Xcode工程结构核心概念Swift语法速记(TODO)小技巧单元测试中使用awaitSwiftUI中使用ListView中取数据 常见问题Xcode添加package时连接github超时Xcode无法修改快捷键&#xff0c;一闪而过 引子 鉴于React Native目前版本在iOS上开发遇到诸多问题&#xff0c;本以…

【SpringBoot3】SpEL表达式详细使用说明

一、介绍 SpEL&#xff08;Spring Expression Language&#xff09;是Spring框架提供的一种功能强大的表达式语言&#xff0c;用于在运行时查询和操作对象。 主要特点和用途包括&#xff1a; 简洁性&#xff1a;SpEL表达式使用简洁的语法&#xff0c;使得在Spring配置和代码…

前端取图片相同颜色作为遮罩或者背景

需求 遮罩层取图片相同/相似的颜色作为遮罩 效果 做法 npm库 grade.js 所提供图像中前 2 个主色生成的互补渐变https://github.com/benhowdle89/grade COLOR THIEF 只需使用Javascript即可从图像中获取调色板。 https://github.com/lokesh/color-thief https://lokeshd…

DNS的意义,DNS不可用该怎么办

DNS是域名系统&#xff0c;它负责将我们输入的网址(如www.baidu.com)转换成计算机可以理解的IP地址(如127.0.0.1)。DNS设置的好坏&#xff0c;直接影响到我们的上网速度和体验。 一、DNS的重要性 在访问一个网站时&#xff0c;首先需要通过DNS将域名解析为对应的IP地址。如果DN…

5.24 BCC工具之funccount.py解读

一,工具简介 funccount工具可以追踪与指定模式匹配的函数、追踪点或USDT探针,并会在追踪过程中打印它们的计数摘要。 二,代码示例 #!/usr/bin/env pythonfrom __future__ import print_function from bcc import ArgString, BPF, USDT from time import sleep, strftime …

【深度学习笔记】4_2-3 模型参数的访问、初始化和共享

注&#xff1a;本文为《动手学深度学习》开源内容&#xff0c;部分标注了个人理解&#xff0c;仅为个人学习记录&#xff0c;无抄袭搬运意图 4.2 模型参数的访问、初始化和共享 在3.3节&#xff08;线性回归的简洁实现&#xff09;中&#xff0c;我们通过init模块来初始化模型…

AIGC专栏9——Scalable Diffusion Models with Transformers (DiT)结构解析

AIGC专栏9——Scalable Diffusion Models with Transformers &#xff08;DiT&#xff09;结构解析 学习前言源码下载地址网络构建一、什么是Diffusion Transformer (DiT)二、DiT的组成三、生成流程1、采样流程a、生成初始噪声b、对噪声进行N次采样c、单次采样解析I、预测噪声I…

kitti数据显示

画出track_id publish_utils.py中 def publish_3dbox(box3d_pub, corners_3d_velos, types, track_ids):marker_array MarkerArray()for i, corners_3d_velo in enumerate(corners_3d_velos):marker Marker()marker.header.frame_id FRAME_IDmarker.header.stamp rospy.T…

Pytorch训练RCAN QAT超分模型

Pytorch训练RCAN QAT超分模型 版本信息测试步骤准备数据集创建容器生成文件列表创建文件列表的代码执行脚本,生成文件列表训练RCAN模型准备工作修改开源代码编写训练代码执行训练脚本可视化本文以RCAN超分模型为例,演示了QAT的训练过程,步骤如下: 先训练FP32模型再加载FP32训练…

量子计算学习经验

推荐B站冉仕举老师视频&#xff08;老师讲的详细又耐心&#xff0c;张量网络做量子计算&#xff0c;不过有些基础概念都是通用的&#xff09; StringCNU的个人空间-StringCNU个人主页-哔哩哔哩视频 2《量子计算与量子信息》是经典的教材书的&#xff0c;但是大部分同学第一次看…

【随笔】固态硬盘数据删除无法恢复(开启TRIM),注意数据备份

文章目录 一、序二、机械硬盘和固态硬盘的物理结构与工作原理2.1 机械硬盘2.11 基本结构2.12 工作原理 2.2 固态硬盘2.21 基本结构2.22 工作原理 三、机械硬盘和固态硬盘的垃圾回收机制3.1 机械硬盘GC3.2 固态硬盘GC3.3 TRIM指令开启和关闭 四、做好数据备份 一、序 周末电脑突…

数据库设计过程中的各种模式

在数据库设计过程中&#xff0c;有几种常见的模式&#xff0c;它们有助于组织和管理数据。以下是这几种模式的简介&#xff1a; 主扩展模式&#xff08;也称为主从模式&#xff09;&#xff1a;这种模式适用于多个表具有相似结构的情况。这些表共享某些基本属性&#xff08;也…

备战蓝桥之二分

二分题目&#xff1a; B3880 [信息与未来 2015] 买木头 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.security.PublicKey; impor…

【Qt学习】QLineEdit 控件 属性与实例(登录界面,验证密码,正则表达式)

文章目录 1. 介绍2. 实例使用2.1 登录界面2.2 对比两次密码是否相同2.3 通过按钮显示当前输入的密码&#xff08;并对2.2进行优化&#xff09;2.4 结语 3. 正则表达式3.1 QRegExp3.2 验证输入内容 4. 资源代码 1. 介绍 关于 QLineEdit 的详细介绍&#xff0c;可以去查阅官方文…

[计算机网络]--IP协议

前言 作者&#xff1a;小蜗牛向前冲 名言&#xff1a;我可以接受失败&#xff0c;但我不能接受放弃 如果觉的博主的文章还不错的话&#xff0c;还请点赞&#xff0c;收藏&#xff0c;关注&#x1f440;支持博主。如果发现有问题的地方欢迎❀大家在评论区指正 目录 一、IP协议…

202432读书笔记|《泰戈尔的诗》——什么事让你大笑,我生命的小蓓蕾

202432读书笔记|《泰戈尔的诗》——什么事让你大笑&#xff0c;我生命的小蓓蕾 《泰戈尔写给孩子的诗&#xff08;中英双语版&#xff09;》作者拉宾德拉纳特泰戈尔文 张王哲图&#xff0c;图文并茂的一本书&#xff0c;文字与图画都很美&#xff0c;相得益彰&#xff01;很值得…