10万字208道Java经典面试题总结(附答案)一

news/2024/4/28 16:16:42/文章来源:https://blog.csdn.net/2201_75604341/article/details/128238637

11、String 类的常用方法都有那些?
equals、length、contains、replace、split、hashcode、indexof、substring、trim、toUpperCase、toLowerCase、isEmpty等等。

12、普通类和抽象类有哪些区别?
抽象类不能被实例化;
抽象类可以有抽象方法,只需申明,无须实现;
有抽象方法的类一定是抽象类;
抽象类的子类必须实现抽象类中的所有抽象方法,否则子类仍然是抽象类;
抽象方法不能声明为静态、不能被static、final修饰。

13、接口和抽象类有什么区别?
(1)接口

接口使用interface修饰;
接口不能实例化;
类可以实现多个接口;

①java8之前,接口中的方法都是抽象方法,省略了public abstract。②java8之后;接口中可以定义静态方法,静态方法必须有方法体,普通方法没有方法体,需要被实现;

(2)抽象类

抽象类使用abstract修饰;
抽象类不能被实例化;
抽象类只能单继承;
抽象类中可以包含抽象方法和非抽象方法,非抽象方法需要有方法体;
如果一个类继承了抽象类,①如果实现了所有的抽象方法,子类可以不是抽象类;②如果没有实现所有的抽象方法,子类仍然是抽象类。

14、java 中 IO 流分为几种?
(1)按流划分,可以分为输入流和输出流;

(2)按单位划分,可以分为字节流和字符流;

字节流:inputStream、outputStream;

字符流:reader、writer;

15、BIO、NIO、AIO 有什么区别?
(1)同步阻塞BIO

一个连接一个线程。

JDK1.4之前,建立网络连接的时候采用BIO模式,先在启动服务端socket,然后启动客户端socket,对服务端通信,客户端发送请求后,先判断服务端是否有线程响应,如果没有则会一直等待或者遭到拒绝请求,如果有的话会等待请求结束后才继续执行。

(2)同步非阻塞NIO

NIO主要是想解决BIO的大并发问题,BIO是每一个请求分配一个线程,当请求过多时,每个线程占用一定的内存空间,服务器瘫痪了。

JDK1.4开始支持NIO,适用于连接数目多且连接比较短的架构,比如聊天服务器,并发局限于应用中。

一个请求一个线程。

(3)异步非阻塞AIO

一个有效请求一个线程。

JDK1.7开始支持AIO,适用于连接数目多且连接比较长的结构,比如相册服务器,充分调用OS参与并发操作。

16、Files的常用方法都有哪些?
exist
createFile
createDirectory
write
read
copy
size
delete
move

17、什么是反射?
所谓反射,是java在运行时进行自我观察的能力,通过class、constructor、field、method四个方法获取一个类的各个组成部分。

在Java运行时环境中,对任意一个类,可以知道类有哪些属性和方法。这种动态获取类的信息以及动态调用对象的方法的功能来自于反射机制。

18、什么是 java 序列化?什么情况下需要序列化?
序列化就是一种用来处理对象流的机制。将对象的内容流化,将流化后的对象传输于网络之间。

序列化是通过实现serializable接口,该接口没有需要实现的方法,implement Serializable只是为了标注该对象是可被序列化的,使用一个输出流(FileOutputStream)来构造一个ObjectOutputStream对象,接着使用ObjectOutputStream对象的writeObejct(Object object)方法就可以将参数的obj对象到磁盘,需要恢复的时候使用输入流。

序列化是将对象转换为容易传输的格式的过程。

例如,可以序列化一个对象,然后通过HTTP通过Internet在客户端和服务器之间传输该对象。在另一端,反序列化将从流中心构造成对象。

一般程序在运行时,产生对象,这些对象随着程序的停止而消失,但我们想将某些对象保存下来,这时,我们就可以通过序列化将对象保存在磁盘,需要使用的时候通过反序列化获取到。

对象序列化的最主要目的就是传递和保存对象,保存对象的完整性和可传递性。

譬如通过网络传输或者把一个对象保存成本地一个文件的时候,需要使用序列化。

19、为什么要使用克隆?如何实现对象克隆?深拷贝和浅拷贝区别是什么?
(1)什么要使用克隆?

想对一个对象进行复制,又想保留原有的对象进行接下来的操作,这个时候就需要克隆了。

(2)如何实现对象克隆?

实现Cloneable接口,重写clone方法;
实现Serializable接口,通过对象的序列化和反序列化实现克隆,可以实现真正的深克隆。
BeanUtils,apache和Spring都提供了bean工具,只是这都是浅克隆。

(3)深拷贝和浅拷贝区别是什么?

浅拷贝:仅仅克隆基本类型变量,不克隆引用类型变量;
深克隆:既克隆基本类型变量,又克隆引用类型变量;

(4)代码实例
image.png
image.png
20、throw 和 throws 的区别?
(1)throw

作用在方法内,表示抛出具体异常,由方法体内的语句处理;
一定抛出了异常;

(2)throws

作用在方法的声明上,表示抛出异常,由调用者来进行异常处理;
可能出现异常,不一定会发生异常;
【这里想说,因为自己也走了很多弯路过来的,所以才下定决心整理,收集过程虽不易,但想到能帮助到一部分自学java想提升Java架构师技术的,P5-P6-P7-P8 的人,心里也是甜的!有需要的伙伴请点㊦方】↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

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

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

相关文章

cubeIDE开发, stm32的USB从设备串口驱动设计

一、USB_OTG简介 USB_OTG(OTG,ON THE GO)是一款双角色设备(DRD) 控制器,同时支持从机(USB DEVICE)功能和主机(USB HOST)功能。在主机模式下,OTG 支持全速(OTG…

Springboot 替换/写入 word文档里面的文字、图片,1秒钟实现

前言 图片加水印:Springboot 图片需要添加水印,怎么办? 1秒就实现 那么word文档替换文字、插入图片,当然也是1秒钟了(jar包引入,工具类代码复制粘贴,调试,完事)。 事不…

[附源码]Python计算机毕业设计Djang基于vuejs的文创产品销售平台app

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

2022年国际工程行业研究报告

第一章 行业概况 国际工程是指一个工程项目从咨询、投资、招投标、承包(包括分包)、设备采购、培训到监理各个阶段的参与者来自不止一个国家,并且按照国际工程项目管理模式进行管理的工程。国际工程是一种综合性的国际经济合作方式,是国际技术贸易的一种…

2023年湖北监理工程师报考时间是什么时候?

2023年湖北监理工程师报考时间是什么时候? 监理工程师考试时间虽说是全国统一的,但是监理工程师报名时间不统一,每个省份自行安排报名时间,监理工程师报名时间基本都是在2.3月份开始报名,具体关注每个省人事考试院网站…

【爬虫5年保更新专栏】异步协程典型案例,一篇掌握~

最近收到 C 友反馈,说 《听说过 python 协程没?听说过 asyncio 库没?都在这一篇博客了》 这篇博客的目标图片站,已经不能使用了,橡皮擦查阅之后,发现是对方网站已经不运营了,所以更新一下案例。…

寻找适配网红很迷茫?最全秘笈来了

根据《2022年全球数字概览》报告显示,全球社交媒体用户超过46.2亿,相当于全球总人口的58.4%。全球用户每天在社交媒体上平均花费近2.5个小时,并且每天以2分钟的速度增长。 社交媒体成为全球网民生活中不可或缺的一部分,而对于跨境…

2022全年度冰箱十大热门品牌销量榜单

自2022年年初以来,各地纷纷部署支持包括冰箱在内的家电大宗消费政策措施,其中家电补贴政策是刺激家电消费的主旋律。宏观经济政策环境改善,利好冰箱行业的长期发展。 根据鲸参谋数据统计,今年京东平台冰箱的年度累计销量达到1400多…

有趣且重要的css知识合集(6)动态控制css伪元素【var()】

在vue里,js和css的属性可以随意控制,比如:class和:style,但是我们想要动态控制伪元素的属性该怎么做呢? 比如下图,右下角小圆圈就是通过伪元素定义上去的,那我们想要自由实现伪元素的显示和隐藏该怎么做呢…

研究一段WPF 3D 机械臂代码

网上下一段代码&#xff0c;运行如下&#xff1b;显示了一个3D机械臂&#xff1b; xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"&#xff0c;这是WPF命名空间&#xff0c;一般写在xaml头部&#xff0c;它的是这样的&#xff0c;<Viewport3D…

浅学Linux内核MMU

1 MMU基本知识 1.1 什么是MMU MMU是 MemoryManagementUnit 的缩写即&#xff0c;内存管理单元. 针对各种CPU, MMU是个可选的配件. MMU负责的是虚拟地址与物理地址的转换. 提供硬件机制的内存访问授权.&#xff08;现代 CPU 的应用中&#xff0c;基本上都选择了使用 MMU&#…

Kafka 为什么那么快?

有人说&#xff1a;他曾在一台配置较好的机子上对 Kafka 进行性能压测&#xff0c;压测结果是 Kafka 单个节点的极限处理能力接近每秒 2000万 条消息&#xff0c;吞吐量达到每秒 600MB。 那 Kafka 为什么这么快&#xff1f;如何做到这个高的性能&#xff1f; 本篇文章主要从这…

面试官:MySQL 中 varchar(n) 中 n 最大取值为多少?

前置知识 要回答这个问题&#xff0c;首先我们得先知道 MySQL 存储一条记录的格式长什么样子。 以 Compact 行格式作为例子&#xff0c;它长这样&#xff1a; 可以看到&#xff0c;一条完整的记录分为「记录的额外信息」和「记录的真实数据」两个部分。 这里重点讲讲记录的…

安卓APP源码和设计报告——健身系统

一、设计背景 1.需求分析 对于很多人来说拥有一副好身材能让自己增添不少魅力;对于爱吃而又担心自己发胖的人来说适当的运动健身是最好的选择。移动互联网时代&#xff0c;市场上“约跑”“约健身”健身APP软件成为新时代闺蜜朋友的互动模式&#xff0c;健身热潮的来临&#…

MySQL分区详解

目录 一、定义 1.1 概述 1.2 分区的优势 二、分区的类型 2.1 检查MySQL是否支持分区 2.2 类型 2.3 分区的其他操作 一、定义 1.1 概述 数据库分区是一种物理数据库设计技术。虽然分区技术可以实现很多效果&#xff0c;但其主要目的是为了在特定的SQL操作中减少数据读写…

第17章 事件和概率空间

第17章 事件和概率空间 17.1 做个交易吧 假设你有三扇门可供选择。其中一扇门背后是一辆汽车&#xff0c;另外两扇门背后是一只山羊。你选择了一扇门&#xff0c;比如1号门。然后知道门后面有什么的主持人&#xff0c;开启了另一扇后面有山羊的门&#xff0c;假设是3号门。现…

The reference to entity “useSSL“ must end with the ‘;‘ delimiter.

The reference to entity "useSSL" must end with the ; delimiter.& 替换为 &amp; < 替换为 < > 替换为 > " 替换为 &quot;替换为 &apos; jdbc:mysql://127.0.0.1:3306/dbname?characterEncodingutf8&amp;useSSLfalse&am…

Redis vs MongoDB

Redis vs MongoDB 通常情况下&#xff0c;应用系统的技术选型&#xff0c;对于如何选择非关系型数据库&#xff0c;是一个不小的挑战。这不仅考验架构师在技术上的广度和深度&#xff0c;同时也考究对业务细节了解和熟悉程度。只有将业务场景、业务特点、数据特征跟具体的技术…

Qt 多线程之QtConcurrent::map(处理序列容器)

QtConcurrent::map()、QtConcurrent::mapped() 和 QtConcurrent::mappedReduced() 函数对一个序列中&#xff08;例如&#xff1a;QList、QVector&#xff09;的项目并行地进行计算。 1、map函数 map函数的功能是在其他线程运行指定的函数&#xff0c;map函数有两个参数 第一…

玩好.NET高级调试,你也要会写点汇编

一&#xff1a;背景 1. 简介 .NET 高级调试要想玩的好&#xff0c;看懂汇编是基本功&#xff0c;但看懂汇编和能写点汇编又完全是两回事&#xff0c;所以有时候看的多&#xff0c;总手痒痒想写一点&#xff0c;在 Windows 平台上搭建汇编环境不是那么容易&#xff0c;大多还是…