2022 Java 企业面试题汇总
Java 基础部分
- 请列举至少三个JDK安装目录下的课程性程序(javac)
- 请分析命题:“Java采用自动垃圾回收技术(GC),因此不会出现内存泄露”
- 简单描述单子模式(单例模式)的各种不同实现方式,极其各自优缺点。请列举至少2种其他的设计模式及应用场景。
- 使用二分查找法找字符串数组{“a”,”b”,”c”,”d”,”e”,”f”,”g”,”h”}中”g”元素
- Java代码实现一个链表结构
- Object类(或子类)的finalize()方法在什么情况下被调用?
- 请列出你所了解的若干个不同类型的runtime exception
- 数组String[] str和String str分别怎么获取长度?
- JAVA实现快速排序算法
- 请简单阐述一下Socket通讯原理,以及Socket基于TCP和UDP协议实现的优缺点
- 对象封装的原则是什么?
- 什么是java序列化,如何实现java序列化?
- 序列化的作用,应用场景
- Collection和Collections有什么区别?
- String s = new String(“abc”);请问有几个String对象?分别是
- try{}里有一个return语句,那么紧跟在这个try后的finally{}里德code会不会被执行?什么时候被执行,在return之前还是后?
- java中可见的访问修饰符的含义
- java用什么来判断对象是否是属于某个类或借口的事例?
- Java中,int和Integer有什么区别
- Java中,HashMap和Hashtable的区别?
- Java中,String和StringBuffer的区别?
- Thread和Runnable有什么不同?
- GC是什么,为什么要有GC?
- 是否可以从一个static方法内部发出对非static方法的调用?
- 如何把一段逗号分隔的字符串转换成一个数组?
- HashMap和Hashtable的区别
- java堆和栈的区别
- 当一个线程进入一个对象的synchronized方法后,其他线程是否可进入此对象的其他方法?为什么?
- Java编写一个程序,输出九九乘法表
- 常用的字符转码方式什么?举例说明
- 如何给tomcat指定大小的内存?
- final,finally,finalize的区别
- Collection和Collections的区别
- 组合和聚合的区别
- 关联和依赖的区别
- JDK中用到的设计模式
- 在Java中,什么是interface,abstractclass?Interface和abstract class有何区别?
- String和StringBuffer有什么区别?
- 说明链表、哈希表、数组的特点
- ArrayList、LinkedList和Vector的区别
- 多线程有几种实现方法,都是什么?启动一个线程调用的是哪个方法?
- Class.forName()的作用?
- 请列出最少3中J2EE 体系内组件、服务或API
- 请列出至少5中使用过关的开源软件
- 完成一个Map的toString()方法,要求输出该Map中所有键-值信息
- 一个类是否可以继承多个接口?
- 一个类是否可以继承多个超类?
- 接口是否可继承接口?
- 抽象类是否可以实现(implement)接口?
- 如何将字符串转换为Integer?
- 如何将日期类型转换为”xxxx年xx月xx日“格式的字符串?
- 如何将字符串bbbwlirbbb转换为bbbhhtccc?
- 文件拷贝,把一个文件的内容拷贝到另外一个文件里
- 项目中使用过哪些JSTL标签
- 现在输入n个数字,以逗号,分开;然后可选择升或降序排序
- 编程现实某一文件目录下的文件名
- 编程计算N!的程序,一个使用递归方法,一个不用递归方法
- 将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5
- 请编写代码循环输出一个对象中所有的key和value
- switch是否能作用在byte上,是否能作用在long上,是否能作用在String上?
- J2EE是技术还是平台还是框架?
- 创建对象的方式有几种?
前端
- Javascript中,对象person有name属性,写出两种获取name属性的方法
- 在HTML中如何包含JavaScript?
- 使用js和JQuery的方式获取表达中对象
- JQuery中什么方法用来把内容追加到指定元素的末尾?
- JQuery给按钮添加点击事件?
- 同步和异步有何异同?什么在情况下分别使用?举例说明
- Extjs使用中firebug返回一个TypeError:c is undfined,请问意思?
- 什么是Ajax
- ext的常用panel
- 简述Ajax原理、以及如何实现刷新数据及优点?请简述JVM原理?内存泄露与溢出的区别,何时产生内存泄露?
- JavaScript的数据类型有哪些?
- JavaScript中对象和函数的创建都有哪种方法
- JavaScript中描述一下闭包的作用
- 编写JavaScript实现点击某添加按钮后表格中自动添加一行的功能。
Javaweb 部分
- Servlet中forward()与redirect()的区别是什么?
- 列举JSP的内置对象,同一应用中页面有哪些方法?
- JSP如何获取HTML FORM中的数据?
- JSP中redirect和forward的区别是什么?(类似1)
- JSP中对象的传递有哪些方法?
- Http协议中返回状态200、404、302、301、500、502各式什么含义?
- 描述Cookie和Session的作用,区别和各自的应用范围,Session工作原理
- 请列举几种重复提交的方式?
- XML是什么?针对它常用的工具包是什么?
- 在web开发中,将GBK字符串,以utf-8的格式进行转换输出
- 有一个长字符串,它的内部包含多个子字符串、子字符串之间用空格隔离,给出算法:如何去掉里面重复的字符串
- java递归调用输出一个目录下的所有子目录及文件名称
- 一个月的图片的网站,用户每检索一次、阅读一张、下载一张图片就会扣除相应的签署,如果让你来设计计费模板、采用何种方式最能节省各方面的资源,谈谈想法!
- XML文档定义有几种形式?他们之间有何本质区别?解析XML文档有几种方式?
- XML的解析有哪几种方式,并用其中一种写出解析XML实例
- getParameter与getAttribute的区别?
- xml有哪些解析技术?区别是什么?
- 你在项目中用到了XML技术的哪些方面?如何实现的?请写出常用的XML操作的API函数
- JSP中动态INCLUDE与静态的INCLUDE的区别
- iframe,Frame中Session丢失的解决方法
框架部分
Struts
- Struts采用什么设计模式?并详细说明各个组成部分?
- Struts的Action是不是线程安全的?如果不是,有什么方法可以保证Action的线程安全,如果是,请说明原因
- struts的工作原理
- Struts2的值栈结构(ValueStack结构)
Hibernate
- Hibernate的特点及其工作原理,为什么大多数公司都使用Hibernate?
- Hibernate中怎么样实现类之间的关系?
Spring
- 细阐述Spring事务机制的实现原理?
- Spring声明式事务的优点
- Spring的工作流程、以及核心机制?
- Spring中的事物隔离级别有哪些?事物隔离和传播的特点
- Spring的工作机制以及为什么要使用?
- AOP和IOC的概念以及在Spring中是如何应用?
- Spring3中依赖注入方式?
ibatis/Mybatis
- mybaits与Hibernate对比有哪些不同点
框架组合
- SSH/SSI中的工作流程
MVC
- 描述在MVC架构模式下,表单从页面提交内容,最后到内容保存到数据持久层中间要做哪些步骤处理
- MVC是什么?请简述在WEB程序中MVC如何实现?
- 列举出UML语言常用的5种图名称
数据库
- 明数据库主键、外键的作用。以及独立主键的好处及坏处
- 简述什么是事物?事物存在哪些属性?
- 如何写出高性能的SQL语句?
- 请列举几种SQL优化的方法?
- 一个表中的ID有多个记录,把所有这个id的记录查出,并显示共有多少条记录数(SQL实现)
- 查询表A中存在ID重复三次以上的记录。(使用SQL实现)
- 数据库连接池的工作机制是什么?
- 什么是JDBC
- PreparedStatement是什么?
- 预编译处理的优势(9中的)
- 左连接、右连接和内连接的区别是什么?
- 表和视图的区别以及各自的用途
- when is more faster IN and EXISTS? Why?
- SQL编程题
- 查询“001”课程比“002”课程成绩高的所有学生的学号;
- 查询平均成绩大于60分的同学的学号和平均成绩;
- 查询所有同学的学号、姓名、选课数、总成绩;
- 查询姓“李”的老师的个数;
- 查询没学过“叶平”老师课的同学的学号、姓名;
- 查询学过“001”并且也学过编号“002”课程的同学的学号、姓名;
- 查询学过“叶平”老师所教的所有课的同学的学号、姓名;
- 查询课程编号“002”的成绩比课程编号“001”课程低的所有同学的学号、姓名;
- 查询所有课程成绩小于60分的同学的学号、姓名;
- 查询没有学全所有课的同学的学号、姓名;
- 查询至少有一门课与学号为“1001”的同学所学相同的同学的学号和姓名;
- 把“SC”表中“叶平”老师教的课的成绩都更改为此课程的平均成绩;
- 查询和“1002”号的同学学习的课程完全相同的其他同学学号和姓名;
- 删除学习“叶平”老师课的SC表记录;
- 按平均成绩从高到低显示所有学生的“数据库”、“企业管理”、“英语”三门的课程成绩,按如下形式显示: 学生ID,,数据库,企业管理,英语,有效课程数,有效平均分
- 查询各科成绩最高和最低的分:以如下形式显示:课程ID,最高分,最低分
- 按各科平均成绩从低到高和及格率的百分数从高到低排序
- 查询如下课程平均成绩和及格率的百分数(用”1行”显示): 企业管理(001),马克思(002),OO&UML (003),数据库(004)
- 查询不同老师所教不同课程平均分从高到低显示 要求显示:教师ID,教师姓名,课程ID,课程名称,平均成绩
- 统计列印各科成绩,各分数段人数:课程ID,课程名称,[100-85],[85-70],[70-60],[ <60]
- 查询每门课程被选修的学生数
- 查询出只选修了一门课程的全部学生的学号和姓名
- 查询男生、女生人数
- 查询姓“张”的学生名单
- 1981年出生的学生名单(注:Student表中Sage列的类型是datetime)
- 查询每门课程的平均成绩,结果按平均成绩升序排列,平均成绩相同时,按课程号降序排列
- 查询平均成绩大于85的所有学生的学号、姓名和平均成绩
- 查询课程名称为“数据库”,且分数低于60的学生姓名和分数
- 查询所有学生的选课情况;
- 查询任何一门课程成绩在70分以上的姓名、课程名称和分数;
- 查询不及格的课程,并按课程号从大到小排列
- 查询课程编号为003且课程成绩在80分以上的学生的学号和姓名;
- 求选了课程的学生人数
- 查询选修“叶平”老师所授课程的学生中,成绩最高的学生姓名及其成绩
- 查询各个课程及相应的选修人数
- 查询不同课程成绩相同的学生的学号、课程号、学生成绩
- 查询每门功课成绩最好的前两名
- 统计每门课程的学生选修人数(超过10人的课程才统计)。要求输出课程号和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列
- 检索至少选修两门课程的学生学号
- 查询全部学生都选修的课程的课程号和课程名
- 查询没学过“叶平”老师讲授的任一门课程的学生姓名
- 查询两门以上不及格课程的同学的学号及其平均成绩
- 检索“004”课程分数小于60,按分数降序排列的同学学号
- 删除“1002”同学的“001”课程的成绩
webservice
- 请简要说明WebService的组成部分?以及各个部分使用的协议?
- 什么是WEB SERVICE?SOAP和WSDL是什么?
- WebService中的SOAP是什么协议
通信
- 不同语言开发的程序之间如何进行通信?
- 如果client已经有一个接口来访问所需要的服务,我们已经有现成的类来提供这样的服务,但是服务提供的方法和client访问所需要的方法不匹配,那么如何设计变成来提供client服务?
设计模式
- 写出两种Java设计模式中不同的单例模式singleton
- j2ee常用的设计模式?描述Singleton的作用
- 举例你所熟悉的设计模式,单例、工厂除外
Linux
- 查看某个日志文件的最后25行的内容的命令
其他
- Servlet的理解
回复即可获取答案,如有任何问题,欢迎私信!
#Java面试##后端开发#