Java中级软件开发面试题详解

JAVA中级开发工程师面试题总结 堆的话一般分为年轻代和年老代,年轻代一般是轻GC的主要场所,年老代一般是FullGC的主要场所...年轻代一般来讲分为Eden Space,幸存者from区和幸存者to区,然后默认的内存比例是8:1:1,一般我们创建对象,会将对象放入Eden Space,当我们Eden Space内存满了后会触发轻GC,未被清除的对象会放入幸存者From区,并且每次轻GC会让我们原本的from区转换成To区转换,并且我们每次GC存活的对象年龄都会+1,一般默认到15岁后就放入年老代,等待FullGC处理; 阅读详情

1、谈谈对面向对象的理解,以及三大特征:

        面向对象是基于万物皆对象这个观点. 把一个对象抽象成类,也就是Java抽象类,具体上就是把一个对象的静态特征和动态特征抽象成属性和方法,也就是把一类事物的算法和数据结构封装在一个类之中,程序就是多个对象和互相之间的通信组成的。

        比如把一个人看成一个对象,这个人就会有他的属性和行为;他有手、脚、嘴巴等就是他的属性,或者他会说话、会走路、会吃饭就是行为,同理我们也可以把这些都看成对象,所以一个对象是可以由多个对象组成的。

        面向对象具有封装性、继承性、多态性。封装就是隐蔽了对象内部不需要暴露的细节,使得内部细节的变动跟外界脱离,只依靠接口进行通信;即不用管这个方法是怎么实现的,只要知道他可以实现这个功能。封装性降低了编程的复杂性. 通过继承使得新建一个类变得容易,一个类继承了父类,则父类所有的非私有的方法和公用属性可以被这个类所调用。 而继承和实现接口所产生的多态,使得不同的类所产生的对象能够对相同的消息作出不同的反应,即在实现接口的情况下,同一个方法里的行为不同,极大地提高了代码的通用性.。

        总之,面向对象的特性提高了大型程序的重用性和可维护性。

图标

2、String、StringBuffer、StringBuilder的区别:

        (1)String对象是不可改变的。

        (2)如果要修改字符串而不创建新的对象,则可以使用 StringBuilder 类。例如,当在一个循环中将许多字符串连接在一起时,使用 StringBuilder 类可以提升性能。

        (3)由于 String 的值一旦创建就不能再修改,所以称它是恒定的。看似能修改 String 的方法实际上只是返回一个包含修改内容的新 String。

        (4)StringBuffer可改变的Unicode字符序列,允许并发操作,是线程安全的。

        (5)StringBuilder:可改变的Unicode字符序列操作同StringBuffer,只是不支持并发操作,非线程安全的 。

        (6)不考虑线程安全前提下,StringBuilder性能最高,StringBuffer次之,String比较差。 为什么StringBuffer的性能比String高?主要原因在于String类是不可变类,任何对String引用指向的字符串作出的修改都会导致生成新的字符串(对象),而对StringBuffer的修改则不会导致新对象的产生。

        那么为什么StringBuilder的性能比StringBuffer的高呢?这则与线程安全有关。StringBuilder是线程非安全的。

3、HashMap、LinkedHashMap、TreeMap的区别:

        HashMap,LinkedHashMap,TreeMap都属于Map

        Map 主要用于存储键(key)值(value)对,根据键得到值,因此键不允许键重复,但允许值重复。

        HashMap 是一个最常用的Map,它根据键的HashCode 值存储数据,根据键可以直接获取它的值,具有很快的访问速度。HashMap最多只允许一条记录的键为Null;允许多条记录的值为Null;HashMap不支持线程的同步,即任一时刻可以有多个线程同时写HashMap;可能会导致数据的不一致。如果需要同步,可以用Collections的synchronizedMap方法使HashMap具有同步的能力。

        LinkedHashMap 也是一个HashMap,但是内部维持了一个双向链表,可以保持顺序;

        TreeMap 不仅可以保持顺序,而且可以用于排序;

4、ArrayList、LinkedList、vector 的区别:

(1)同步性

        ArrayList,LinkedList是不同步的,而Vestor是同步的。所以如果不要求线程安全的话,可以使用ArrayList或LinkedList,可以节省为同步而耗费的开销。但在多线程的情况下,就得使用Vector。当然,也可以通过一些办法包装ArrayList,LinkedList,使他们也达到同步,但效率可能会有所降低。

(2)数据增长

        从内部实现机制来讲ArrayList和Vector都是使用Object的数组形式来存储的。

当你向这两种类型中增加元素的时候,如果元素的数目超出了内部数组的长度它们都需要扩展内部数组的长度,Vector缺省情况下自动增长原来一倍的数组长度;

        ArrayList是原来的50%,所以最后你获得的这个集合所占的空间总是比你实际需要的要大。所以要在集合中保存大量的数据那么使用Vector有一些优势。

(3)检索、插入、删除对象的效率

        ArrayList和Vector中,是用下标来检索一个对象,或在集合的末尾插入、删除一个对象的时间是一样的。但是,如果在集合的其他位置增加或移除元素那么花费的时间会呈线形增长。

        LinkedList中,在插入、删除集合中任何位置的元素所花费的时间都是一样的,但它在查询一个元素的时候比较慢。

        一般大家都知道ArrayList和LinkedList的大致区别:

        ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。

        对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。

        对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。

        更多Java面试题详解,还有更多,大家敬请期待啊!想学习Java基础的可以看视频学习,Java300集专为初学者而作,非常适合Java小白学习,通俗易懂,简单易学!!!

学习视频:Java300集,java零基础小白自学Java必备优质教程

Java中级面试题及答案(120道Java中级面试题大汇总) Java中级面试题及答案【最新版及答案,干货!!!这是一个中级Java面试系列题中的第一部分。这一部分论述了可变参数,断言,垃圾回收,初始化器,令牌化,日期,日历等等Java核心问题。Java中级面试永远是程序员迈向成功的第一个门槛,想要面试成功,各种面试题的洗礼是必不可少的,下面就来看看小编精心整理的一些java高级工程师面试题及答案吧。如果不背 Java面试题的答案,肯定面试会挂!进程是系统进行资源分配和调度的一个独立单位,线程是CPU调度和分派的基本单位进程和线程的关系:**1、**一个线程只能属于一 阅读详情

相关推荐

java中级面试题个人总结

java面试题来来回回还是那些,光靠背没什么意义,毕竟面试造航母,工作拧螺丝。最后基本上什么问题最后都能问道为什么这么用,源码是什么,多看看源码有助于对代码的深入理解,其他的就没了。上面写的面试题,有些是本人遇到的,有些是大众问题,写这篇文章,也是为了做个笔记。

weixin_43886300的博客 693

Java中级面试常见题目+答案

目录一.基础知识1.集合类:List和Set比较,各自的子类比较(ArrayList,Vector,LinkedList;HashSet,TreeSet);2.HashMap的底层实现,之后会问ConcurrentHashMap的底层实现;3.如何实现HashMap顺序存储:可以参考LinkedHashMap的底层实现;4.HashTable和ConcurrentHashMap的区别;5.String,StringBuffer和StringBuilder的区别;6.Object的方法有哪些:比如有wait方

vampire_Violet的博客 1万+

中级Java面试题及答案汇总

一、简述对HTTP协议的理解 答:http协议是超文本传输协议,是客户端与服务器进行数据通信的一种协议,协议规定请求以及响应的格式(Request请求:请求行+请求首部+请求体;Response响应;响应行+响应首部+响应体)。 二、Java字符串拼接有几种方式? 答:1.“+”方式,直接进行拼接; 2.String方法“concat”方式:理论上效率最高,但两个参数都必须是...

LiPengBo666的博客 2319

赶紧收藏起来,,java中级工程师面试题及答案

我自认为能力平庸,学习能力和排查分析问题的能力也很一般,在互联网公司也不断被领导吐槽。尽管如此,我尚敢不断挑战更高的工资。在我身边,一些能力比我强的,提升收入的效率还远比我高。再次重复,本文的目的不是一味让大家在面试中不顾实际地要求高工资,更不提倡大家在面试中投机取巧,而是首先让大家保持不断上进的心态,并以此不断提升自己,在此基础上,就别在客气了——要足工资。先自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

2303_77877769的博客 2745

别再手动填序号了!用Python脚本在Arcgis属性表里实现分组自动编号(附完整代码)

本文详细介绍了如何利用Python脚本在Arcgis属性表中实现分组自动编号,告别低效的手工操作。通过核心代码解析和实战教程,帮助GIS工程师快速掌握自动化编号技术,提升工作效率并降低错误率。特别适合城市规划、国土调查等需要处理大量分组数据的场景。

weixin_42532473的博客 309

S32K3双核实战:手把手教你用EB配置CAN与CANFD(附中断/轮询代码对比)

本文详细解析了NXP S32K3双核处理器在CAN/CANFD通信开发中的实战应用。通过Elektrobit配置工具链,从双核通信架构设计到EB tresos Studio配置全流程,再到中断与轮询模式的代码实现对比,全面指导开发者优化S32K3 FlexCAN模块性能,提升汽车电子系统的通信效率与可靠性。

weixin_30955617的博客 440

2024最新Java中级面试题目汇总解答,2024Java岗面试题知识点小结

为什么我不完全主张自学?①平台上的大牛基本上都有很多年的工作经验了,你有没有想过之前行业的门槛是什么样的,现在行业门槛是什么样的?以前企业对于程序员能力要求没有这么高,甚至十多年前你只要会写个“Hello World”,你都可以入门这个行业,所以以前要入门是完全可以入门的。②现在也有一些优秀的年轻大牛,他们或许也是自学成才,但是他们一定是具备优秀的学习能力,优秀的自我管理能力(时间管理,静心坚持等方面)以及善于发现问题并总结问题。

2303_77877769的博客 1040

光流法实战:如何用OpenCV的Farneback算法实现图像对齐(附调参技巧)

本文详细介绍了如何使用OpenCV的Farneback稠密光流算法实现图像对齐,包括核心原理、参数调优和工程实现。通过实战代码和参数优化策略,帮助开发者解决动态场景中的图像对齐问题,提升多帧融合和视频处理的效果。

weixin_29266007的博客 291

Java综合中级面试题

1.你用过哪些集合类? 大公司最喜欢问的Java集合类面试题40个Java集合面试问题和答案 java.util.Collections 是一个包装类。它包含有各种有关集合操作的静态多态方法。 java.util.Collection 是一个集合接口。它提供了对集合对象进行基本操作的通用接口方法。 Collection ├List │├LinkedList │├ArrayList │└Ve...

baidu_33512336的博客 4万+

IDEA系列(四):IDEA导入Maven工程项目并配置Tomcat启动

本片文章主要介绍如何导入一个存在的maven项目并配置Tomcat启动项目,方便自己使用,也分享出来,希望可以帮助到其他人。

低调D树苗的博客 1243

IEC61850规约客户端软件开发实战(第六章)

IEC 61850标准中的GOOSE(Generic Object Oriented Substation Event,面向通用对象的变电站事件)功能是变电站自动化系统的核心通信机制,主要用于实现智能电子设备(IED)间高可靠性、低延时的实时信号传输。本章简述其核心功能与技术特点。

半青年的博客 1779

Java坑人面试题系列: 包装类(中级难度)

Java Magazine上面有一个专门坑人的面试题系列: https://blogs.oracle.com/javamagazine/quiz-2。 这些问题的设计宗旨,主要是测试面试者对Java语言的了解程度,而不是为了用弯弯绕绕的手段把面试者搞蒙。 如果你看过往期的问题,就会发现每一个都不简单。 这些试题模拟了认证考试中的一些难题。 而 “中级(intermediate)” 和 “高级(ad...

铁锚的优快云博客 2万+

基于 STM32 的便携式肌电信号采集与疲劳度评估系统设计与实现

本系统以 STM32 单片机为核心控制器,通过肌电电极采集人体骨骼肌表面的 sEMG 信号,经仪表放大、滤波、AD 采样后送入 MCU 进行时域 / 频域特征提取,利用 RMS(均方根)、MPF(中位频率)、MF(平均频率)等指标实时评估肌肉疲劳状态,最终通过 OLED 显示疲劳等级,并支持蓝牙上传至上位机。

weixin_42300449的博客 105

Java中级工程师面试题

由于Java中级工程师的面试题非常广泛,且每个公司或团队的具体需求都可能不同,因此无法列出所有的面试题及其答案。请注意,这些题目只是示例,并不保证涵盖所有可能的面试内容。

pythontxt的博客 4651

pandas教程:2012 Federal Election Commission Database 2012联邦选举委员会数据库

里面包含了支持者的名字,职业和雇主,地址,赞助金额。我们可以已经能想到如何切割、整理数据,来提取赞助者的统计数据,或提取宣传活动的模式,这里我们展示一些不同的分析方法。可以看到有些职业是同一种工作类型,指代的是同一个东西。这两个连续操作是分别独立执行的,一个结束后,另一个才开始。上,这里我是把数据集压缩成了ZIP格式,解压后能正常导入)。我觉得也有必要好好了解一下,这个网站做了很好的讲解,),所以我们最好添加这样的信息。这样的情况,即把两个索引操作连在一起。,发现映射关系被正常执行了,所以这里的。

Cachel Wood的博客 349

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

java中级程序员面试题_中级Java程序员常见面试题汇总

下面是一些中级Java程序员常见面试题汇总,你可以用它来好好准备面试。什么是线程?线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。程序员可以通过它进行多处理器编程,你可以使用多线程对运算密集型任务提速。比如,如果一个线程完成一个任务要100毫秒,那么用十个线程完成改任务只需10毫秒。Java在语言层面对多线程提供了卓越的支持,它也是一个很好的卖点。线程和进程有...

weixin_39895862的博客 1728

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

【面试】——Java面试题内容总结

往期内容聚合 设计模式内容聚合 面试技术文 Java岗 面试考点精讲(基础篇01期) Java岗 面试考点精讲(基础篇02期) Java岗 面试考点精讲(网络篇03期) Java 面试中遇到的坑 Java面试中遇到的坑【填坑篇】 Java面试中遇到的坑【篇二】 java面试遇到的坑[第三期] java面试填坑解惑篇[三] java面试遇到的坑[第四期] 面试官:你分析...

我爱吃土豆 5921

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

java 中级面试题及答案

java 中级面试题及答案 1.MyBatis中,根据Id查询单个Order对象,动态SQL如何编写? A. SELECT * FROM Order WHERE ID = #{id}; B. SELECT * FROM Order WHERE ID = #{id}; C. SELECT * FROM Order WHERE ID = #{id}; D. SELECT * FROM Order WHERE ID = #{id}; B 2.当一个bean的作用域为Prototype,表示含义是什

qq_39771919的博客 4079

java面试题(中级题汇总)

Java 是按值传递基本类型:传递值的副本(修改副本不影响原变量);引用类型:传递引用地址的副本(修改副本指向的对象内容会影响原对象,但修改副本的指向不影响原引用)。基本类型(如int[]char[]JDK 7 + 用双轴快速排序(Dual-Pivot Quicksort),比传统快排更高效(划分更均衡)。对象数组(如String[]JDK 7 + 用TimSort(归并排序 + 插入排序的混合算法),针对实际数据中常见的 “部分有序” 场景优化,稳定性更好(相等元素顺序不变)。

开往1982的博客 1109

java中级工程师面试题_java中级工程师面试题

java中级工程师面试题目前,我国对软件人才的需求已达20万,并且以每年20%左右的速度增长。在未来5年内,合格软件人才的需求将远大于供给。下面是关于java中级工程师面试题,希望大家认真阅读!一、 单选题(共12题,每题2分,共24分)1.下面关于Java的表述有错误的是________A.Java中没有sizeof操作符,所有数据类型的长度都是确定的,与平台无关。B.在Java中,局部变量不会...

weixin_35735088的博客 1045
上一篇: 有什么好的学习软件,适合Java初学者?
下一篇: Java市场已经饱和了吗?现在学晚吗
程序媛_小白
博客等级 码龄5年 322粉丝 163原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值