java基础知识面试

news/2025/2/22 22:53:06/文章来源:https://www.cnblogs.com/tdsmomo/p/18728056

1.为什么选择java
回答:1.java相对与c++是纯粹的面向对象编程,抛弃了c++的指针和继承的复杂使用。同时提供了丰富的内置库用于开发。2.一次编译,到处允许。将java代码编译为字节码,可通过jvm虚拟机编译成机器码在不同的环境下运行。3,具有安全性和健壮性,如数组越界机制和垃圾回收机制。

2.java的基本数据类型和引用类型
回答:基本的数据类型有8种,要记住其对应的长度和方位
引用类型:就是指String和数组这些,其储存与堆当中。
alt text

3.抽象类和接口的区别
回答:1.两者都不能实列化。2.抽象类用abstract class,接口的是inerface。3.抽象类只能继承一个,接口可以继承多个。
.抽象类可以有静态变量,常量和成员变量,接口只能有常量。
静态变量:stastic修饰的,成员变量:普通定义出的互不干扰的。常量:由final修饰的。

4.说出final的特点
被final修饰的类不可以被继承,被修饰的常量不可以被修改,被修饰的静态变量地址不可以变但是地址的内容可以变。修饰方法,方法不可以被重写,修饰的对象必须被赋予初始值。

5.说出stastic的特点
java类包含了5大:成员变量,构造器,方法,初始化块,内部类。static可以修饰除构造器的其他成员,被修饰的对象属于整个类,不属于类建立的单个对象。且类被创建时,stastic也会被建立。访问规则是静态可以访问静态,非静态可以访问静态,静态不能访问非静态。

6.介绍String类
String类包含了多个方法。String的new对象是将对象放入堆内存中管理。

7.分析String,StringBuilder,StringBuffer三者间的区别
String是一个不可变的字符串,直到对象被销毁,都不可以改变其值
alt text
StringBuffer是一个可变字符串,可以通过内置方法修改。
StringBuilder和StringBuffer相似,但其没有考虑多线程的安全问题,所以其效率更高,但是具有多线程的安全问题。

8..equals和==的区别
equeal是比较值相同,==比较的是内存地址相同。

9.为什么说重写了equals后纪要重写hashCode
equals用于比较2个对象是否相等,如果相等则必须有相同哈希码。但哈希码相同,2者确不一定相等。在业务中Object默认的equals是用==比较的,检验的是否为同一个对象,实际只需要判断其内容,所以需要进行重写。由于hashCode与equals有联动关系,所以也要重写。

10.讲述java8的特性
alt text

11.讲述自动装箱和拆箱
自动装箱:把一个基本类型的数据直接赋值给对应的包装类型;
自动拆箱是指把一个包装类型的对象直接赋值给对应的基本类型
由于基本类型都是继承于Object,所以在数字进行传参时候常需要基本数据类型和包装类型的相互转换。

12.java处理异常的机制
使用了trycatchfinally,其作用分别是try中写业务代码,catch用于捕获和处理异常,finally用于回收资源。如果一个异常没有被捕获则java程序将会被终止。发生异常后由jvm判断是否具有相应的catch方法,就算中使用了return和throw语句,也会立刻终止确保执行完finally的代码后再执行。

13.java对象的理解
对象的三大特性:封装,继承,多态
封装:可以将信息保存在类的内部。
继承:实现了代码复用
多态:配合继承,可以调用多个子类去构建。常见的是出行的交通工具。

14.说明重载和重写的区别
重载是指同一个类下具有相同方法名但传入参数不同
重写是指子类去覆盖其父类的某一个方法

15.介绍访问修饰符
访问修饰符4种,public,privite,protect,default
default表示默认:protect表示可以被同一包下子类访问也可以被其他包子类访问,一般是希望子类去重写。public最为宽松的访问。

16.泛型和泛型擦除
伪反向则代表编译后会得到泛型指代是哪些具体的类,实际的字节码文件是不包含泛型的信息的。
alt text

17.反射的理解
alt text

18.分析多线程
线程是操作系统的最小单元,进程池子对应多个线程处理多个任务,线程各自管理者自己的空间和io。多线程可以共享着进程的资源。
带来的优势:提高cpu效率优化结构,数据共享效率高。

19.线程如何建立
java的建立线程有三种方式,继承Thread类,调用run然后使用start开启。实现Runable接口,之后调用run方法。3.实现Callable接口。

20.介绍线程的状态
创建阶段,new出一个线程,就绪阶段,执行start后进入就绪阶段,使用run方法进入运行阶段,使用sleep等方法进入超时等待阶段,使用wait进入阻塞阶段(需要其他线程进行通知才可以唤醒),销毁阶段。

21.说出wait和sleep的区别
1,所属的类型不同:wait是属于object下,sleep是属于thread下。
2.sleep进入的是超时等待阶段,wait进入阻塞阶段,唤醒的方式也不同,wait需要使用notify进行唤醒
3.对锁的依赖不同 - wt()依赖于synchronized锁,通过监视器进行调用,调用后线程会释放锁。 - sleep()不依赖于任何锁,所以在调用后它也不会释放锁.即使进入了sleep,这个线程仍然占据着这个锁的意思。

22.如何保证线程安全
alt text

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

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

相关文章

JAVA项目笔记--黑马店铺的优惠卷秒杀

功能实现介绍: 先判断优惠卷的信息保证不过期等,为了防止一个用户多次进行插入,要结合悲观锁。故 根据userId在redis生成分布式锁,使得之后的用户请求无法实现。 生成订单。是对优惠卷的数目进行更新,可以使用乐观锁,所以在插入前,判断某个值是否满足即库存是否大于0,如…

APISIX

ApiSix 使用ApiSix网关作为所有业务的流量入口,它提供了动态路由、动态上游、动态证书、A/B测试、灰度发布、限速、防攻击、收集指标、监控报警、可观测、服务治理,服务熔断身份认证等功能。主要用于管理和控制API流量,安全性,性能和可用性,APIsix的主要作用包括:API管理…

ES

ES参考文档:https://www.cnblogs.com/buchizicai/p/17093719.htmlES分布式搜索引擎注意:在没有创建库的时候搜索,ES会创建一个库并自动创建该字段并且设置为String类型也就是text什么是elasticsearch?一个开源的分布式搜索引擎,可以用来实现搜索,日志统计,分析,系统监控…

【codeforces】codeforces界面字体突然变得很大,页面布局改变解决办法

今天打开codeforces界面突然变成了这样左侧变成了这样恢复方法: 把滚轮拉倒最下面切换成电脑模式即可恢复正常

影刀RPA与Coze API的结合使用

网上找了些资料,但是发现好多都是用的 Coze 的历史接口,现在新的 V3 接口处理方式包括字段和处理方式都不一样了,所以现在这个教程是基于最新版 V3 接口的。配置好 API 后,在影刀 RPA 中使用。 一、API 介绍 开发文档 : https://www.coze.cn/docs/developer_guides/coze_a…

RPA与Coze API的结合使用

网上找了些资料,但是发现好多都是用的 Coze 的历史接口,现在新的 V3 接口处理方式包括字段和处理方式都不一样了,所以现在这个教程是基于最新版 V3 接口的。配置好 API 后,在影刀 RPA 中使用。 一、API 介绍 开发文档 : https://www.coze.cn/docs/developer_guides/coze_a…

电脑感觉速度比以前慢,清理了还是慢怎么办?你需要检查下CPU频率,看看是不是被锁频/降频了

0 问题 电脑总是感觉速度慢,清理了电脑,去掉了不必要的程序,还是感觉没有以前快。 我的是笔记本电脑,电脑外壳各个地方摸起来也不热,风扇转动正常。也没有灰尘,清理过。 1. 原因 一直也不知道咋回事,看系统进程时,无意中看到CPU频率仅有0.4GHz,且长期都是这样,这肯定不…

【模拟电子技术】45-信号转换电路

【模拟电子技术】45-信号转换电路 串联电流负反馈,下面的电路起到的作用是使得Io与RL无关,下面也是负反馈定性分析:RL增大,Io增大,Ro右侧电压下降,A1的同相输入端减小,Uo1减小,Io减小 定量分析:(R1=R2=R3=R4)电压并联负反馈最后是全波精密整流电路,老师说这种电路对…

2025.02.20

pjudge 太坏了密码的 pjudge 怎么这么坏,怎么交题不显示代码的。 vp,第一次打 pjudge,最后看到没显示代码慌了,然后乱交代码,把 t1 整 0 了。真的流汗了,我为什么这么唐。我 t2 又是怎么 75 的呢?🤓省流:没遍历 id 为 0 的边。 以后再也不写成 tot = -1 了😡。

ViT, Transformer架构出圈到cv

Vision Transformer(ViT)通过采用自注意力机制处理图像块,革新了图像识别方法,展现了在大规模数据集上超越传统卷积神经网络的潜力。一、技术背景 视觉识别的挑战与机遇 在Vision Transformer(ViT)提出之前,卷积神经网络(CNNs),如ResNet和VGG,主导了视觉识别领域。然…