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

news2024/11/27 16:44:29

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.coloradmin.cn/o/1172859.html

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

相关文章

【微服务】mysql + elasticsearch数据双写设计与实现

目录 一、前言 二、为什么使用mysqles双写 2.1 单用mysql的问题 2.2 为什么不直接使用es 2.2.1 非关系型表达 2.2.2 不支持事务 2.2.3 多字段将造成性能低下 三、mysqles双写方案设计要点 3.1 全新设计 VS 中途调整架构 3.2 全表映射 VS 关键字段存储 3.2.1 最大程度…

自定义类型联合体

目录 联合体联合体类型的声明联合体的特点相同成员的结构体和联合体对比联合体大小的计算联合体的应用联合的一个练习 感谢各位大佬对我的支持,如果我的文章对你有用,欢迎点击以下链接 🐒🐒🐒 个人主页 🥸🥸&#x1f…

破解密码 LLM(代码LLM如何从 RNN 发展到 Transformer)

舒巴姆阿加瓦尔 一、说明 近年来,随着 Transformer 的引入,语言模型发生了显着的演变,它彻底改变了我们执行日常任务的方式,例如编写电子邮件、创建文档、搜索网络甚至编码方式。随着研究人员在代码智能任务中应用大型语言模型&am…

4K Video Downloader Pro v4.28.0(视频下载器)

4K Video Downloader Pro是一款专业的视频下载软件,支持从YouTube、Vimeo、Facebook、Instagram、TikTok等主流视频网站下载高质量的4K、HD和普通视频。它的操作流程简单,只需复制视频链接并粘贴到软件中即可开始下载。此外,该软件还提供了多…

校园招聘系统

校园管理系统 公共模块学生端游客端企业联系人端校内管理员端超级管理员端企业端 公共模块 登录 用户可以通过验证码、账号密码进行登录。 个人中心 学生端 学生主要为查看招聘信息以及投递等。 首页 简历详情投递 双选会公司详情 公告通知 学生端主要为这些等等&#xf…

线扫相机-TEK(埃科)相机平场矫正详细步骤

采集卡模式: 现场要求 (1) 采集卡连续采集相机图像,并正常显示。 (2) 光源控制在正常工作亮度,使画面亮度不要过低也不要饱和。 (3) 调整相机使画面偏离成像位置,形成虚焦。 (4) 相机拍摄物面使用白纸,调节曝光时间使整…

【鸿蒙软件开发】ArkUI之容器组件Counter(计数器组件)、Flex(弹性布局)

文章目录 前言一、Counter1.1 子组件1.2 接口1.3 属性1.4 事件 1.5 示例代码二、Flex弹性布局到底是什么意思? 2.1 权限列表2.2 子组件2.3 接口参数 2.4 示例代码示例代码1示例代码2 总结 前言 Counter容器组件:计数器组件,提供相应的增加或…

基础课21——知识库管理

1.知识库的概念、特点与功能 智能客服中的知识库是一个以知识为基础的系统,可以明确地表达与实际问题相对应的知识,并构成相对独立的程序行为主体,有利于有效、准确地解决实际问题。它储存着机器人对所有信息的认知概念和理解,这…

【排序算法】 快速排序(快排)!图解+实现详解!

🎥 屿小夏 : 个人主页 🔥个人专栏 : 算法—排序篇 🌄 莫道桑榆晚,为霞尚满天! 文章目录 📑前言🌤️快速排序的概念☁️快速排序的由来☁️快速排序的思想☁️快速排序的实…

网络运维Day02

文章目录 实验环境Linux系统简介Linux发行版RHEL与CentOS国产操作系统 安装CentOS7.9步骤一:虚拟硬件步骤二:为虚拟机安装操作系统为root设置密码首次初始化虚拟机 登录操作系统系统偏好设置 快照LINUX目录结构常见目录及其作用 LINUX磁盘表示方法LINUX中…

Linux常用命令——chage命令

在线Linux命令查询工具 chage 修改帐号和密码的有效期限 补充说明 chage命令是用来修改帐号和密码的有效期限。 语法 chage [选项] 用户名选项 -m:密码可更改的最小天数。为零时代表任何时候都可以更改密码。 -M:密码保持有效的最大天数。 -w&…

毅速丨3D打印在压铸模上大有所为

压铸模是压铸件成型不可缺少的工具。它的作用是将液态的金属或合金浇入到预先准备好的型腔中,并在压力的作用下凝固、成形。3D打印技术在压铸模上的使用,尤其是随形水路的应用,将大幅度提升制造效率。 在传统的压铸模制造中,水路的…

树结构及其算法-二叉排序树

目录 树结构及其算法-二叉排序树 C代码 树结构及其算法-二叉排序树 事实上,二叉树是一种很好的排序应用模式,因为在建立二叉树的同时,数据已经经过初步的比较,并按照二叉树的建立规则来存放数据,规则如下&#xff1…

Linux shell编程学习笔记21:用select in循环语句打造菜单

一、select in循环语句的功能 Linux shell脚本编程提供了select in语句,这是 Shell 独有的一种循环语句,非常适合终端(Terminal)这样的交互场景,它可以根据用户的设置显示出带编号的菜单,用户通过输入不同…

Draft-P802.11be-D3.2协议学习__$9-Frame-Format__$9.3.1.22-Trigger-frame-format

Draft-P802.11be-D3.2协议学习__$9-Frame-Format__$9.3.1.22-Trigger-frame-format 9.3.1.22.1 Genreal9.3.1.22.2 Common Info field9.3.1.22.3 Special User Info field9.3.1.22.4 HE variant User Info field9.3.1.22.5 EHT variant User Info field9.3.1.22.6 Basic Trigge…

关于JADX和JEB的小问题

关于JADX和JEB的小问题 很久没水过技术文啦,最近也刚好遇到点小问题,特此记录 第一个问题 在处理app加密逻辑的时候一直拿不到正确的密文,反复看了反编译出来的代码(如下图) public static string n(String str, Stri…

提升之做事方法

前言:在工作中,做事需要有一套方法,同样的一件事,不同的人去做,就能看到能力的差别,会产生不同的结果。那如何在工作中,提升自己做事的能力? 目录 闭环思维 做事方法论 事前规划 …

网络运维Day03

文章目录 基本命令使用查看文本文件内容-cat命令分页查看文本文件-less命令查看CPU信息-lscpu命令查看系统内核版本-uname命令查看机修改主机名-hostname命令查看IP地址-ifconfig命令创建目录-mkdir命令创建空文件-touch命令查看文件前几行-head命令查看文件后几行-tail命令快速…

2024年CleanMyMac更新了哪些内容?

CleanMyMac作为一款专业的苹果电脑清理软件,它不仅仅能单纯的卸载不用、少用的应用,同时还支持:1、清理应用程序的数据文件,将应用重置回初始状态,减少空间占用;2、自动检查应用更新,保持应用的…

Hyper-V 安装windows10 虚拟机,且能调试窗口大小、与主机之间复制文件

1. 搜索栏--打开‘启动或关闭windows功能’-- 勾选 ‘ Hyper-V ’ 然后点击确定; 2. 搜索栏--打开‘ Hyper-V 快速创建’ ---本地安装源---更改安装源(选择 对应的 windows.iso 镜像)---创建镜像--启动虚拟机--(到达)P…