Java高频面试题——Java基础篇

java基本数据类型及对应的字节数?什么是自动拆装箱?int与integer的区别?项目中如何使用?

1.java基本数据类型及对应的字节数?
java总共有8中基本数据类型,整型4种,浮点型2种,字符类型1种,布尔类型1种。
整型为:byte 占1个字节,short 占2个字节,int 占4个字节,long 占8个字节。java中整型默认为int类型
浮点型为:float 占4个字节,double 占8个字节。java中浮点型默认为double类型
字符型为:char 占2个字节。
布尔型为:boolean 不确定,与JVM有关.通常认为占用1个字节(也有可能占4个字节)
2.什么是自动拆装箱?
概念:自动拆装箱是JDK1.5之后的功能。自动装箱:将基本数据类型自动转换为对应的包装类型。比如将int转换为Integer.自动拆箱:将包装类型,自动转换为对应的基本数据类型。比如Integer转换为int,可以通过ValueOf方法进行转换。
个人理解:要说到自动拆装箱就需要题到包装类,java是面向对象编程,包装的存在使我们的代码更加面向对象编程。自动拆装箱的功能,使我们的程序也变得整洁,比如集合中只能存储对象类型,但是有了自动拆装箱,就可以直接存储基本数据类型。
3.int与integer的区别?项目中如何使用?
理解:Integer 是 int 的包装类,它们的区别主要体现在 5 个方面:数据类型不同、默认值不同、内存中存储的方式不同、实例化方式不同以及变量的比较方式不同。包装类的存在解决了基本数据类型无法做到的事情泛型类型参数、序列化、类型转换、高频区间数据缓存等问题。
项目中的使用:项目中一般会分情况使用,比如在定义数据实体,业务实体对象的时候,就会使用Integer类型。在一些代码中,一些局部变量的定义,一般会使用int类型。
4.Long & Integer 在什么范围有缓存功能?
答案:-128 到 127 期间

string,stringBuffer,stringBuilder的区别?

string,stringBuffer,stringBuilder的区别?
概念:
- String的内容不可修改,StringBuffer与StringBuilder的内容可以修改。
- StringBuffer与StringBuilder大部分功能是相似的 。
- StringBuffer采用同步处理,属于线程安全操作;而StringBuilder未采用同步处理,属于线程不安全操作。
性能方面:
大量字符操作的性能比较:
StringBuilder > StringBuffer > String
工作中的使用:
在工作中经常使用的是String,StringBuffer与StringBuilder基本上很少用到,因为没有大量的字符串拼接的业务场景。String都是用于保存数据,展示数据,也不存在线程安全的问题,故在我过往的项目中基本都是使用String

==与equals的区别?

==与equals的区别?
我的理解是这样:==号比较的是栈里面的值(基本数据类型比较的是值,引用类型比较的是地址值),可以用于基本类型比较与引用类型比较
equals用于引用类型比较,在没有重写equals方法的情况下,比较的是地址值,重写equals的情况下,按照重写的规则进行比较,一般用于比较内容。

ArrayList与linkedList的区别?List与Set的区别?

ArrayList与linkedList的区别?
我首先说一下它们两者的相同点:
都是List接口的实现类,都可以用于保存引用数据,都是非线程安全的
其次,在说一下他们之间的不同点
结构方面:
数据结构不同,ArrayList底层采用的数组结构,LinkedList采用的是双向链表结构
执行效率:
查询,修改:ArrayList要优于LinkedList
增加(插入),删除:ArrayList与LinkedList 有一个数据迁移的时间 VS 数据查询的时间
List与Set的区别?
概述:
List与Set都是Collection接口的子接口,都属于单列集合。
List中最常用的实现类有:ArrayList与LinkedList
Set中最常用的实现类由:HashSet(底层采用的是HashMap的key部分)
特点:
List:元素存储有序,具有索引,可以通过索引快速定位元素,可以存储重复的元素
Set:元素存储可以有序,可以无序(要看选择的具体子类 HashSet 无序 LinkedHashSet(有序),TreeSet(排序)),没有索引,不能通过索引获取元素(即也不能使用普通for循环遍历),不可以存储重复的元素
项目中的使用:
在项目中大部分的场景使用的都是List,在一些需要去重的场景可以使用Set,比如在RBAC权限模型中,查询用户具备的权限的时候,就推荐使用Set

hashSet集合无序不重复的原理?(hashMap的put操作做了什么?)

在这里插入图片描述
hashSet集合无序不重复的原理?(hashMap的put操作做了什么?)
hashMap的put操作时,有以下几步:
1.根据key的hashcode()计算key的hash值,将 hash值& (数组的长度-1) 确定hash表的位置。
2. 判断该位置是否有值,如果没有值,则创建一个节点,将该节点保存到该位置(此处可能出现并发问题)
3. 如果该位置有值,则进行hash,==,equals判断,判断key是否重复,如果不重复,则添加到该链表中
4. 如果当链表中元素的个数达到8,同时数组中的个数超过64时,就会进化成红黑树(进一步提高查询效率)

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

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

相关文章

联想服务器-HTTP boot安装Linux系统

HTTP boot与传统PXE的主要差异 HTTP不再需要使用UDP协议的tftp服务(连接不可靠、不支持大文件)了,只需要dhcp 和http 两个服务即可,支持较稳定的大文件传输。 实验环境 ThinkSystem服务器SR650V2 SR660V2 通过HTTP boot安装Cen…

图像二值化阈值调整——cv2.threshold方法

二值化阈值调整:调整是指在进行图像二值化处理时,调整阈值的过程。阈值决定了将图像中的像素分为黑色和白色的界限,大于阈值的像素被设置为白色,小于等于阈值的像素被设置为黑色。 首先画出灰度直方图:横坐标是灰度值…

项目管理之如何估算项目工作成本

在项目管理中,如何估算项目工作成本是一个关键问题。为了解决这个问题,我们可以采用自上而下的成本限额估算法和自下而上的成本汇总估算法。这两种方法各有优缺点,但都可以帮助我们准确地估算项目工作成本。 自上而下的成本限额估算法 自上…

怎么测量直线模组的精度?

直线模组是一款比较多变的一种产品,适合多种行业,同时它也适合比较多的环境,是一种比较全面的直线运动的装置。直线模组是非常精密的自动化机械设备,在实践中,应该要严格把握具体精度,并且在必要的时候&…

树莓派4无法进入桌面模式(启动后出现彩色画面,然后一直黑屏,但是可以正常启动和ssh)

本文记录了这段比较坎坷的探索之路,由于你的问题不一定是我最终解决方案的,可能是前面探索路上试过的,所以建议按顺序看排除前置问题。 双十一又买了个树莓派 4B,插上之前树莓派 4B 的 TF 卡直接就能使用(毕竟是一样规…

面试10000次依然会问的【ReentrantLock】,你还不会?

引言 在并发编程的世界中,ReentrantLock扮演着至关重要的角色。它是一个实现了重入特性的互斥锁,提供了比synchronized关键字更加灵活的锁定机制。ReentrantLock属于java.util.concurrent.locks包,是Java并发API的一部分。 与传统的synchro…

Android ConstraintLayout分组堆叠圆角ShapeableImageView

Android ConstraintLayout分组堆叠圆角ShapeableImageView <?xml version"1.0" encoding"utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:app"…

STM32WB55开发(6)----FUS更新

STM32WB55开发.6--FUS更新 概述视频教学硬件准备存储器映射FLASH安全区设置SRAM安全区设置通过USB进行下载注意事项 概述 在 STM32WB 微控制器中&#xff0c;FUS&#xff08;Firmware Upgrade Services&#xff09;是用于固件升级的一种服务。这项服务可以让你更新设备上的无…

GAMP源码阅读:PPP中的模型改正:天线相位中心、天线相位缠绕、潮汐、地球自转效应、引力延迟

原始 Markdown文档、Visio流程图、XMind思维导图见&#xff1a;https://github.com/LiZhengXiao99/Navigation-Learning 文章目录 一、卫星天线相位中心改正1、原理2、文件读取3、setpcv()&#xff1a;设置天线参数4、satantoff()&#xff1a;卫星 PCO 改正5、satantpcv()&…

红黑树——插入底层实现【C++】面试重灾区!!

目录 前言 一&#xff0c;概念 定义 二&#xff0c;insert 情况一&#xff1a; 情况二&#xff1a; 情况三&#xff1a; insert代码 三&#xff0c; 红黑树验证(面试题) 产生随机数验证 每日一图区&#xff1a; 前言 AVL树是一棵绝对平衡的二叉搜索树&#xff0c;其…

【el-cascader-panel】组件el-cascader-panel使用踩坑

需求背景&#xff1a;角色管理资源&#xff0c;资源返回树形结构数据&#xff0c;左侧树形展示列表可查询&#xff0c;右侧勾选资源权限平铺。 本身组件不支持全选&#xff0c;所以增加了全选按钮。覆写了级联面板宽度。可传只勾选code或者顺序当前节点二维数组列表。 效果 因…

消息中间件-RabbitMQ介绍

一、基础知识 1. 什么是RabbitMQ RabbitMQ是2007年发布&#xff0c;是一个在AMQP(高级消息队列协议)基础上完成的&#xff0c;简称MQ全称为Message Queue, 消息队列&#xff08;MQ&#xff09;是一种应用程序对应用程序的通信方法&#xff0c;由Erlang&#xff08;专门针对于大…