2021最新秋招Java软件工程师面试笔试必备面试题及答案汇总
Posted Java架构师-大仙
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2021最新秋招Java软件工程师面试笔试必备面试题及答案汇总相关的知识,希望对你有一定的参考价值。
这套面试题主要目的是帮助那些还没有java 软件开发实际工作经验,而正在努力寻找 java 软件开发工作的朋友在笔试时更好地赢得笔试和面试。
由于这套面试题涉及的范围很泛,很广,很杂,大家不可能一天两天就看完和学完这套面试宝典,即使你已经学过了有关的技术,那么至少也需要一个月的时间才能消化和掌握这套面试宝典,所以,大家应该早作准备,从拿到这套面试宝典之日起,就要坚持在每天闲暇之余学习其中几道题目,日积月累,等到出去面试时,一切都水到渠成,面试时就自然会游刃有余了。
大仙在文末整好了了面试题及答案PDF,戳链接领取面试题及答案PDF
一. Java 基础部分
基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语法,集合的语法,io 的语法,虚拟机方面的语法。
- 一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?
- Java 有没有 goto?
- 说说&和&&的区别?
- 在 JAVA 中如何跳出当前的多重嵌套循环?
- switch 语句能否作用在 byte 上,能否作用在 long 上,能否作用在 String 上?
- short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
- char 型变量中能不能存贮一个中文汉字?为什么?
- 用最有效率的方法算出 2 乘以 8 等於几?
- 请设计一个一百亿的计算器
- 使用 final 关键字修饰一个变量时,是引用不能变,还是引用的对象不能变?
- "=="和 equals 方法究竟有什么区别?
- 静态变量和实例变量的区别?
- 是否可以从一个 static 方法内部发出对非 static 方法的调用?
- Integer 与 int 的区别
- Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
- 下面的代码有什么不妥之处?
- 请说出作用域 public,private,protected,以及不写时的区别
- Overload 和 Override 的区别。Overloaded 的方法是否可以改变返回值的类型?
- 构造器Constructor 是否可被 override?
- 接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承具体类(concrete class)?抽象类中是否可以有静态的 main 方法?
- 写clone()方法时,通常都有一行代码,是什么?
- 面向对象的特征有哪些方面
- java 中实现多态的机制是什么?
- abstract class 和 interface 有什么区别?
- abstract 的 method 是否可同时是 static,是否可同时是 native,是否可同时是synchronized?
- 什么是内部类?Static Nested Class 和 Inner Class 的不同。
- 内部类可以引用它的包含类的成员吗?有没有什么限制?
- Anonymous Inner Class (匿名内部类) 是否可以 extends(继承)其它类,是否可以implements(实现)interface(接口)?
- super.getClass()方法调用
- String 是最基本的数据类型吗?
- String s = “Hello”;s = s + " world!";这两行代码执行后,原始的 String对象中的内容到底变了没有?
- 是否可以继承 String 类?
- String s = new String(“xyz”);创建了几个 String Object? 二者之间有什么区别?
- String 和 StringBuffer 的区别
- 如何把一段逗号分割的字符串转换成一个数组?
- 数组有没有 length()这个方法? String 有没有 length()这个方法?
- 下面这条语句一共创建了多少个对象:String s=“a”+“b”+“c”+“d”;
- try {}里有一个 return 语句,那么紧跟在这个 try 后的 finally {}里的 code会不会被执行,什么时候被执行,在 return 前还是后?
- 下面的程序代码输出的结果是多少?
- final, finally, finalize 的区别。
- 运行时异常与一般异常有何异同?
- error 和exception 有什么区别?
- Java 中的异常处理机制的简单原理和应用。
- 请写出你最常见到的 5 个 runtime exception。
- JAVA 语言如何进行异常处理,关键字:throws,throw,try,catch,finally 分别代表什么意义?在 try块中可以抛出异常吗?
- java 中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop()和suspend()方法为何不推荐使用?
- sleep() 和 wait() 有什么区别?
- 同步和异步有何异同,在什么情况下分别使用他们?举例说明。
- 下面两个方法同步吗?(自己发明)
- 多线程有几种实现方法?同步有几种实现方法?
- 启动一个线程是用 run()还是 start()?
- 当一个线程进入一个对象的一个 synchronized 方法后,其它线程是否可进入此对象的其它方法?
- 线程的基本概念、线程的基本状态以及状态之间的关系
- 简述 synchronized 和 java.util.concurrent.locks.Lock 的异同 ?
- 设计 4 个线程,其中两个线程每次对j 增加 1,另外两个线程对j 每次减少 1。写出程序。
- 子线程循环 10 次,接着主线程循环 100,接着又回到子线程循环 10 次,接着再回到主线程又循环 100,如此循环 50次,请写出程序。
- 介绍Collection 框架的结构
- Collection 框架中实现比较要实现什么接口
- ArrayList 和 Vector 的区别
- HashMap 和 Hashtable 的区别
- List 和 Map 区别?
- List, Set, Map 是否继承自 Collection 接口?
- List、Map、Set 三个接口,存取元素时,各有什么特点?
- 说出 ArrayList,Vector, LinkedList 的存储性能和特性
- 去掉一个 Vector 集合中重复的元素
- Collection 和 Collections 的区别。
- Set 里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?
- 你所知道的集合类都有哪些?主要方法?
- 两个对象值相同(x.equals(y) == true),但却可有不同的 hash code,这句话对不对?
- TreeSet 里面放对象,如果同时放入了父类和子类的实例对象,那比较时使用的是父类的 compareTo 方法,还是使用的子类的compareTo 方法,还是抛异常!
- 说出一些常用的类,包,接口,请各举 5 个
- java 中有几种类型的流?JDK 为每种类型的流提供了一些抽象类以供继承, 请说出他们分别是哪些类?
- 字节流与字符流的区别
- 什么是 java 序列化,如何实现 java 序列化?或者请解释 Serializable 接口的作用。
- 描述一下 JVM 加载class 文件的原理机制?
- heap 和 stack 有什么区别。
- GC 是什么? 为什么要有 GC?
- 垃圾回收的优点和原理。并考虑 2 种回收机制。
- 垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?
- 什么时候用 assert。
- java 中会存在内存泄漏吗,请简单描述。
- 能不能自己写个类,也叫 java.lang.String?
- Java 代码查错
二. 算法与编程
- 编写一个程序,将 a.txt 文件中的单词与 b.txt 文件中的单词交替合并到 c.txt 文件中,a.txt文件中的单词用回车符分隔,b.txt 文件中用回车或空格进行分隔。
- 编写一个程序,将d:\\java 目录下的所有.java 文件复制到d:\\jad 目录下,并将原来文件的扩展名从.java 改为.jad。
- 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截取半个,如“我 ABC”,4,应该截取“我AB”,输入“我 ABC 汉 DEF”,6,应该输出“我 ABC”,而不是“我 ABC+汉的半个”。
- 有一个字符串,其中包含中文字符、英文字符和数字字符,请统计和打印出各个字符的个数。
- 说明生活中遇到的二叉树,用 java 实现二叉树
- 从类似如下的文本文件中读取出所有的姓名,并打印出重复的姓名和重复的次数,并按重复次数排序:
- 写一个 Singleton 出来。
- 递归算法题 1
- 递归算法题 2
- 排序都有哪几种方法?请列举。用 JAVA 实现一个快速排序。
- 有数组 a[n],用 java 代码将数组元素顺序颠倒
- 金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)->(一千零一拾一元整)输出。
三. html&javascript&ajax 部分
- 判断第二个日期比第一个日期大
- 用 table 显示 n 条记录,每 3 行换一次颜色,即 1,2,3 用红色字体,4,5,6 用绿色字体,7,8,9 用红颜色字体。
- HTML 的 form 提交之前如何验证数值文本框的内容全部为数字? 否则的话提示用户并终止提交?
- 写出用于校验 HTML 文本框中输入的内容全部为数字的 javascript 代码
- 说说你用过那些 ajax 技术和框架,说说它们的区别
四. Java web 部分
- Tomcat 的优化经验
- HTTP 请求的 GET 与 POST 方式的区别
- 解释一下什么是 servlet
- 说一说 Servlet 的生命周期?
- Servlet 的基本架构
- SERVLET API 中 forward() 与 redirect()的区别?
- 什么情况下调用 doGet()和 doPost()?
- Request 对象的主要方法:
- forward 和 redirect 的区别
- request.getAttribute() 和 request.getParameter() 有何区别?
- jsp 有哪些内置对象?作用分别是什么? 分别有什么方法?
- jsp 有哪些动作?作用分别是什么?
- JSP 的常用指令
- JSP 中动态 INCLUDE 与静态 INCLUDE 的区别?
- 两种跳转方式分别是什么?有什么区别?
- 页面间对象传递的方法
- JSP 和 Servlet 有哪些相同点和不同点,他们之间的联系是什么?
- MVC 的各个部分都有那些技术来实现?如何实现?
- 我们在 web 应用开发过程中经常遇到输出某种编码的字符,如iso8859-1 等, 如何输出一个某种编码的字符串?
- 现在输入 n 个数字,以逗号,分开;然后可选择升或者降序排序;按提交键就在另一页面显示按什么排序,结果为,提供 reset
五. 数据库部分
- 用两种方式根据部门号从高到低,工资从低到高列出每个员工的信息。
- 列出各个部门中工资高于本部门的平均工资的员工数和部门号,并按部门号排序
- 存储过程与触发器必须讲,经常被面试到?
- 数据库三范式是什么?
- 说出一些数据库优化方面的经验?
- union 和 union all 有什么不同?
- 分页语句
- 用一条 SQL 语句 查询出每门课都大于 80 分的学生姓名
- 所有部门之间的比赛组合
- 每个月份的发生额都比 101 科目多的科目
- 统计每年每月的信息
- 显示文章标题,发帖人、最后回复时间
- 删除除了 id 号不同,其他都相同的学生冗余信息
- 航空网的几个航班查询题:
- 查出比经理薪水还高的员工信息:
- 求出小于 45 岁的各个老师所带的大于 12 岁的学生人数
- 求出发帖最多的人:
- 一个用户表中有一个积分字段,假如数据库中有 100 多万个用户,若要在每年第一天凌晨将积分清零,你将考虑什么,你将想什么办法解决?
- 一个用户具有多个角色,请查询出该表中具有该用户的所有角色的其他用户。
- xxx 公司的 sql 面试
- 注册 Jdbc 驱动程序的三种方式
- 用 JDBC 如何调用存储过程
- JDBC 中的 PreparedStatement 相比Statement 的好处
- 写一个用 jdbc 连接并访问 oracle 数据的程序代码
- Class.forName 的作用?为什么要用?
- 大数据量下的分页解决方法。
- 用 JDBC 查询学生成绩单, 把主要代码写出来(考试概率极大)
- 这段代码有什么不足之处?
- 说出数据连接池的工作机制是什么?
- 为什么要用 ORM? 和 JDBC 有何不一样?
六. XML 部分
- xml 有哪些解析技术?区别是什么?
- 你在项目中用到了 xml 技术的哪些方面?如何实现的?
- 用 jdom 解析 xml 文件时如何解决中文问题?如何解析?
- 编程用 JAVA 解析 XML 的方式
- XML 文档定义有几种形式?它们之间有何本质区别?解析XML 文档有哪几种方式?
七. 流行的框架与新技术
- 谈谈你对 Struts 的理解。
- 谈谈你对 Hibernate 的理解
- AOP 的作用。
- 你对 Spring 的理解。
- 谈谈 Struts 中的 Action servlet。
- Struts 优缺点 优点: 1. 实现 MVC 模式,结构清晰,使开发者只关注业务逻辑的实现
- STRUTS 的应用(如 STRUTS 架构)
- 说说 struts1 与 struts2 的区别。
- hibernate 中的 update()和 saveOrUpdate()的区别,session 的 load()和 get()的区别。
- 简述 Hibernate 和 JDBC 的优缺点? 如何书写一个 one to many 配置文件.
- iBatis 与 Hibernate 有什么不同?
- 写 Hibernate 的一对多和多对一双向关联的 orm 配置?
- 在 DAO 中如何体现 DAO 设计模式?
- spring+Hibernate 中委托方案怎么配置?
- spring+Hibernate 中委托方案怎么配置?
- hibernate 进行多表查询每个表中各取几个字段,也就是说查询出来的结果集没有一个实体类与之对应如何解决;
- 介绍一下 Hibernate 的二级缓存
- Spring 的依赖注入是什么意思? 给一个 Bean 的 message 属性, 字符串类型, 注入值为 “Hello” 的 XML 配置文件该怎么写?
- Jdo 是什么?
- 什么是 spring 的 IOC AOP
- STRUTS 的工作流程!
- spring 与 EJB 的区别!!
- hibernate 的 inverse 属性的作用?
八. 软件工程与设计模式
- UML 方面
- j2ee 常用的设计模式?说明工厂模式。
- 开发中都用到了那些设计模式?用在什么场合?
九. j2ee 部分
- BS 与 CS 的联系与区别。
- 应用服务器与 WEB SERVER 的区别?
- 应用服务器有那些?
- J2EE 是什么?
- J2EE 是技术还是平台还是框架? 什么是 J2EE
- 请对以下在 J2EE 中常用的名词进行解释(或简单描述)
- 如何给 weblogic 指定大小的内存?
- 如何设定的 weblogic 的热启动模式(开发模式)与产品发布模式?
- 如何启动时不需输入用户名与密码?
- 在 weblogic 管理制台中对一个应用域(或者说是一个网站,Domain)进行 jms 及ejb 或连接池等相关信息进行配置后,实际保存在什么文件中?
- 说说 weblogic 中一个 Domain 的缺省目录结构? 比如要将一个简单的helloWorld.jsp 放入何目录下, 然的在浏览器上就可打入 http:// 主机: 端口号//helloword.jsp 就可以看到运行结果了? 又比如这其中用到了一个自己写的javaBean 该如何办?
- 在 weblogic 中发布 ejb 需涉及到哪些配置文件
- 如何在 weblogic 中进行 ssl 配置与客户端的认证配置或说说j2ee(标准)进行 ssl的配置?
- 如何查看在 weblogic 中已经发布的 EJB?
十. EBJ 部分
- EJB 是基于哪些技术实现的?并说出 SessionBean 和 EntityBean 的区别,StatefulBean 和StatelessBean 的区别。
- 简要讲一下 EJB 的 7 个 Transaction Level?
- EJB 与 JAVA BEAN 的区别?
- EJB 包括(SessionBean,EntityBean)说出他们的生命周期,及如何管理事务的?
- EJB 容器提供的服务
- EJB 的激活机制
- EJB 的几种类型
- 客服端调用 EJB 对象的几个基本步骤
十一. webservice 部分
- WEB SERVICE 名词解释。JSWDL 开发包的介绍。JAXP、JAXM 的解释。SOAP、UDDI,WSDL 解释。
- CORBA 是什么?用途是什么?
- Linux
- LINUX 下线程,GDI 类的解释。
- 问得稀里糊涂的题
- 四种会话跟踪技术
- 简述逻辑操作(&,|,^)与条件操作(&&,||)的区别。
十二. 其他
- 请用英文简单介绍一下自己
- 请把 http://tomcat.apache.org/ 首页的这一段话用中文翻译一下?
总结
答题时,先答是什么,再答有什么作用和要注意什么(这部分最重要,展现自己的心得)
答案的段落分别,层次分明,条理清晰都非常重要,从这些表面的东西也可以看出一个人的习惯、办事风格、条理等。
要讲你做出答案的思路过程,或者说你记住答案的思想都写下来。把答题想着是辩论赛。答题就是给别人讲道理、摆事实。答题不局限于什么格式和形式,就是要将自己的学识展现出来!
别因为人家题目本来就模棱两可,你就心里胆怯和没底气了,不敢回答了。你要大胆地指出对方题目很模糊和你的观点,不要把面试官想得有多高,其实他和你就是差不多的,你想想,如果他把你招进去了, 你们以后就是同事了,可不是差不多的吗?
以上是关于2021最新秋招Java软件工程师面试笔试必备面试题及答案汇总的主要内容,如果未能解决你的问题,请参考以下文章
2021秋招不看你就输了,Linux C/C++嵌入式笔试面试问题集合,