Java 校招面试笔试题及答案整理

java开发面试笔试题大汇总,吐血整理 关于面试刷题也是有方法可言的,建议最好是按照专题来进行,然后由基础到高级,由浅入深来,效果会更好。Java基础部分算法与编程数据库部分流行的框架与新技术(Spring+SpringCloud+SpringCloudAlibaba)这份面试文档当然不止这些内容,实际上像JVM、设计模式、ZK、MQ、数据结构等其他部分的面试内容均有涉及,因为文章篇幅,就不全部在这里阐述了。 阅读详情

PS:这些是在面试过程中遇到的或复习过程中在别人博客中看到的题目,以及我整理的答案(一些还没找到答案,后面陆续补齐),如果还有哪些常被问到的题目没列出或文章有任何错漏,欢迎评论区指出。
 

一、Java基础部分 

 

1、使用length属性获取数组长度,public、private、protected、friendly区别 。

答:public、private、protected、friendly访问权限:

    关键字       当前类      包内      子孙类      包外 
 
    public         √                 √            √                √ 
 
    protected   √                 √             √               × 
 
    friendly       √                 √             ×               × 
 
    private        √                 ×             ×               × 
    不写时默认为friendly
    不使用关键字默认为包内使用。

 

2、Collection和Collections区别 。

答:1、java.util.Collection 是一个集合接口(集合类的一个顶级接口)。它提供了对集合对象进行基本操作的通用接口方法。

       2、java.util.Collections 是一个包装类(工具类/帮助类)。它包含有各种有关集合操作的静态多态方法。此类不能实例化,就像一个工具类,用于对集合中元素进行排序、搜索以及线程安全等各种操作,服务于Java的Collection框架。

 

3、String s=new String(‘xyz’);创建了几个object对象 。

答:两种情况:

    1、常量池中有"xyz"时,只在堆中创建了一个对象;

    2、常量池中没有"xyz"时,在常量池和堆中都创建了对象,即两个。

 

4、short 数据类型。

s1=s1+1;是否有错? 

答:有错,因为1是int类型,则(s1+1)为int类型,int转化为short为向下转换,需强制转换,即s1=(short)(s1+1)。

 

5、Overriding和Overloading区别 

答:方法的重写(Overriding)和重载(Overloading)是Java多态性的不同表现。二者的差别在于,重载是编译时多态,重写是运行时多态。重写(Overriding)是父类与子类之间多态性的一种表现,而重载(Overloading)是一个类中多态性的一种表现。   

        如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)  。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被"屏蔽"了.  

       如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型或有不同的参数次序,则称为方法的重载(Overloading)。不能通过访问权限、返回类型、抛出的异常进行重载. 

 

6、Set里面的元素不能重复,用什么方法区分重复与否。 

答:用equals;==是用来判断两者是否是同一对象(同一事物),而equals是用来判断是否引用同一个对象。再看一下Set里面存的是对象,还是对象的引用。根据java的存储机制可知,set里面存放的是对象的引用,所以当两个元素只要满足了equals()时就已经指向同一个对象,也就出现了重复元素。所以应该用equals()来判断。

 

7、常见的runtime exception。

 答:

NullPointerException - 空指针引用异常
ClassCastException - 类型强制转换异常。
IllegalArgumentException - 传递非法参数异常。
ArithmeticException - 算术运算异常
ArrayStoreException - 向数组中存放与声明类型不兼容对象异常
IndexOutOfBoundsException - 下标越界异常
NegativeArraySizeException - 创建一个大小为负数的数组错误异常
NumberFormatException - 数字格式异常
SecurityException - 安全异常
SQLException - 操作数据库异常类
ClassNotFoundException - 异常的解释是"指定的类不存在"
UnsupportedOperationException - 不支持的操作异常

 

8、error和exception区别。 

答:

Error(错误)表示系统级的错误和程序不必处理的异常,是java运行环境中的内部错误或者硬件问题。比如:内存资源不足等。对于这种错误,程序基本无能为力,除了退出运行外别无选择,它是由Java虚拟机抛出的;

Exception(异常)表示需要捕捉或者需要程序进行处理的异常,它处理的是因为程序设计的瑕疵而引起的问题或者在外的输入等引起的一般性问题,是程序必须处理的。

参考 : Error与Exception的区别

 

9、List和Set是否继承自Collection接口?

答:是。

List特点:元素有放入顺序,元素可重复 
Set特点:元素无放入顺序,元素不可重复(注意:元素虽然无放入顺序,但是元素在set中的位置是有该元素的HashCode决定的,其位置其实是固定的) 

 

10、abstract class和interface 的区别。 

答:含有abstract修饰符的class即为抽象类,abstract 类不能创建实例对象。含有abstract方法的类必须定义为abstract class,abstract class类中的方法不必是抽象的。abstract class类中定义抽象方法必须在具体(Concrete)子类中实现,所以,不能有抽象构造方法或抽象静态方法。如果子类没有实现抽象父类中的所有抽象方法,那么子类也必须定义为abstract类型。

接口(interface)可以说成是抽象类的一种特例,接口中的所有方法都必须是抽象的。接口中的方法定义默认为public abstract类型,接口中的成员变量类型默认为public static final。

下面比较一下两者的语法区别:

1.抽象类可以有构造方法,接口中不能有构造方法;

2.抽象类中可以有普通成员变量,接口中没有普通成员变量;

3.抽象类中可以包含非抽象的普通方法,接口中的所有方法必须都是抽象的,不能有非抽象的普通方法;

4. 抽象类中的抽象方法的访问类型可以是public,protected和(默认类型,虽然eclipse下不报错,但应该也不行),但接口中的抽象方法只能是public类型的,并且默认即为public abstract类型;

5. 抽象类中可以包含静态方法,接口中不能包含静态方法;

6. 抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可以任意,但接口中定义的变量只能是public static final类型,并且默认即为public static final类型。

 

11、是否可以继承String类。 

答:不可以,因为String类有final修饰符,而final修饰的类是不能被继承的。

 

12、try{}里有一个return语句,紧跟在try后的finally里的code会不会被执行,什么时候执行,return前执行还是return后执行。

答:会执行,

常用应届生Java开发笔试面试题(更新中) Java开发面试题 Java基础篇 Java8大基本数据类型 Java的三大特性 面向对象 如果让你推销一款Java产品,你会怎么推销呢?(java的特点) JVM与字节码 JDK与JRE << 位运算符 函数式接口 StringBuilder和StringBuffer的区别 简单介绍下多态、重载、重写 成员变量和局部变量 自动装箱和拆箱 String能被继承吗? 简单介绍一下static关键字 super()和this() equals和== 关于常量池 抽象类与接口 Java中的比 阅读详情

相关推荐

2021最新Java笔试题及答案,Java面试真题精选

二、回顾整理阿里面试题 基本就这样了,还有一些零星的问题想不起来了,答案也整理出来了。 自我介绍 JVM如何加载一个类的过程,双亲委派模型中有哪些方法? HashMap如何实现的? HashMap和ConcurrentHashMap区别, Concurrent HashMap 线程安全hashtable吗, ConcurrentHashMap如何保证 线程安全? HashMap和HashTable 区别,HashTable线程安全吗? 进程间通信有哪几种方式 JVM分为哪些区,每一个区干吗的? JVM如

m0_56824583的博客 4945

2025Java笔试题选择题整理(附答案解析)

本文通过一系列Java编程题目,深入解析了字符串处理、包导入、继承与多态、线程同步、异常处理等核心概念。重点内容包括: 字符串常量池特性及==与equals区别(题1) java.lang包的自动导入机制(题2) 子类构造方法调用规则(题3) 静态/非静态代码块执行顺序(题4) 多态中的编译与运行机制(题5) 内部类声明规范(题6) 线程同步的监视器实现(题8) 事务隔离级别与并发问题(题11) 线程安全类识别(题13) 异常处理流程(题16) 这些题目全面覆盖了Java编程中的关键知识点,通过具体代码示例

2401_89221445的博客 1612

跑了几十家面试后,精选37道Java笔试题解答(附答案)

下面都是一些非常非常基础的题,是我最近参加各大IT公司笔试后靠记忆记下来的,经过整理献给参加各大IT校园招聘的同学们,纯考Java基础功底,老手们就不用进来了,免得笑话我,但是IT公司就喜欢考这些基础的东西,所以为了能进大公司就当复习期末考吧。 花了不少时间整理,在整理过程中也学到了很多东西,请大家认真对待每一题。 在这里先祝大家: 万事如意 美梦成真 前程似锦 鹏展万里 心想事成 财运亨通 平步青云 事业有成 锦上添花 百尺竿头更进一步 欲穷千里目更上一层楼 如果有帮助,请记得点赞支持哦! 下.

豆汁 5564

Java笔试题目.doc

数据库索引的优点和缺点 一、为什么要创建索引呢(优点)? 这是因为,创建索引可以大大提高系统的性能。 第一, 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。 第二, 可以大大加快数据的检索速度,这也是创建索引的最主要的原因。 第三, 可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。 第四, 在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。 第五, 通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。 垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收 答:对于GC来说,当程序员创建对象时,GC就开始监控这个对象的地址、大小以及使用情况。通常,GC采用有向图的方式记录和管理堆(heap)中的所有对象。通过这种方式确定哪些对象是"可达的",哪些对象是"不可达的"。当GC确定一些对象为"不可达"时,GC就有责任回收这些内存空间。可以。程序员可以手动执行System.gc(),通知GC运行,但是Java语言规范并不保证GC一定会执行。

STM32F103VET6实战:用W25Q64外部Flash实现Bootloader远程升级(含完整代码解析)

本文详细介绍了基于STM32F103VET6与W25Q64外部Flash的Bootloader远程升级实现方案,包含硬件选型、存储分区策略、双校验机制及完整代码解析。通过SPI接口实现固件存储与升级,适用于物联网设备开发,提升OTA功能可靠性。

weixin_42620340的博客 357

分享通达信破解交易接口的使用!

那其实通达信破解交易接口的使用方法比较复杂,这里以MA均线指标为例子,只要理解了这些操作步骤,就可以很容易地使用其他指标包括自己编写的指标来进行交易。委托结果(包含委托编号), 需要分配 1024*1024 字节的空间。委托结果数组, 每项结果需要分配 1024*1024 字节的空间。0: 买入, 1: 卖出, 2: 融资买入, 3: 融券卖出,4: (市价委托)上海五档即成剩撤, 深圳五档即成剩撤。4: 买券还券, 5: 卖券还款, 6: 现券还券。0: 上海限价委托, 深圳限价委托。

1841085904的博客 2358

波分复用-Zblock仿真

Z-BLOCK是一种用于光通信模块的光学元件,其核心结构是在玻璃块一侧贴有4个特定波长滤光片,另一侧镀有反射膜和增透膜。光信号在内部呈现Z字形反射路径,实现波长分离。文章以可见光LED为例,在ZEMAX中演示了非序列模式下的建模过程,重点介绍了滤光片和膜层的参数设置方法。需要注意的是,入射角度需根据玻璃折射率、通道高度和厚度精确计算,否则可能导致光泄漏。该建模方法同样适用于光通信中的光纤激光器系统。

Zhaxibamao的博客 1746

Darknet-Yolov3 移植过程

本教程面向使用寒武纪平台进行深度学习推理任务的开发者。针对当前主流检测网络darknet-yolov3,进行寒武纪平台的移植。开发者对照移植过程,能够利用寒武纪智能处理器设备完成多种场景的目标检测任务。本实验代码基于 Neuware 1.6.1 与 Python 2.7 环境。

shengyin714959的博客 438

Python爬虫技术应用:体育赛事直播数据抓取与分析

Web爬虫(Web Crawling)是一种通过模拟浏览器行为从网站获取数据的技术。发送请求:发送HTTP请求(通常是GET或POST请求)获取目标网页的HTML内容。解析网页:使用解析工具(如lxml)从HTML中提取出所需要的信息。存储数据:将抓取到的数据存储到数据库、文件或数据结构中,供后续分析和使用。数据分析与展示:使用数据分析工具(如PandasMatplotlib)对数据进行处理、清洗和可视化,生成有价值的报告和图表。Requests:用于发送静态网页的HTTP请求并获取响应。

2201_76125261的博客 1309

企业微信第三方应用014_企业微信5种第三方应用的安装方式_上架到应用市场_服务商后台点击安装测试_生成应用推广二维码安装---企业微信开发016

成员授权的意思就是,只要是这个成员扫码安装了这个应用,那么这个应用就只有这个成员可以用。安装的时候可以设置可见范围,这个地方可以设置整个公司或者是某个部门或者是某些人可以让这个应用来进行操作。创建了以后,这个二维码就可以发出来进行推广别人用户扫描了以后就可以把自己的企业微信给安装上对应的应用了。然后在对应的这个微信的企业后台就可以看到在第三方中有这个应用了。可以看到这个就是服务商的后台对应的一个应用,我们点击打开应用。可以看到这里有两个授权,一个是成员授权,一个是管理员授权。就可以去创建推广二维码了。

添柴程序猿的专栏 589

华为OD机试真题2026双机位C卷 Python&JS 语言 实现【主次关联成环警告】

在ICT运维领域,现网运维工程师面向对设备上报的众多告警,往往需要筛选出最主要的告警优先处理,次等级的告警或许为同一个根因导致的告警,处理优先级会放后或者不处理,这样就诞生出主次关联告警的概念。给定一系列告警的主次关联关系,判断是否存在如下情况:

MISAYAONE的博客 269

基于学术研究于NASA官网GPM卫星数据下载详细教程

基于学术研究于NASA官网GPM卫星数据下载详细教程

珞瑜的博客 8655

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

下一篇: Failed to replace DataSource with an embedded database for tests Spring Data JPA
阿蚊
博客等级 码龄11年 2粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值