现在java软件工程师职位众多,各大软件公司对于软件人才的需求也不相同,在面试过程中所遇到的问题也是个不相同的,今天小编在这里把几家公司的面试题整理了一下,在这里分享给大家,希望通过这样来为大家分享一些面试中常见的面试题以及面试经验。
接下来就来看一下几家java软件公司的面试题,有兴趣的朋友可以对比一下看看各家在java面试题中有什么相似之处和不同的地方,来为下次自己的面试打好坚实基础。
亿阳通信java面试题
1. 说出List,Set,Map三者的区别?
2. 接口与抽象类的区别?它体现了Java的哪方面特性?
3. 序列化是指的什么?有何用途?
4. 说出RuntimeException与Exception的区别,并写出几个你遇到的一些RuntimeException。
5. 说出关键字final的作用。
6. 指出Object类中的equal(),hashcode(),toString()方法的作用。
7. Java对象的深复制与浅复制分别指什么?
8. 某类编译后,生成文件名为:IndicationContainer$NodeIndecationImp.class 请说一说原因。
9. 读一下代码,说说代码在修改后的区别及优点。
原代码:
Class A{
Public void f1(){
B b = new B();
b.f2();
C c = new C();
c.f3();
c.f4();
}
}
Class B{
Public void f3(){
C c = new C();
c.f3();
}
}
Class C{
Public void f3(){
}
Public void f4(){
}
}
修改后的代码:
Class A{
Public void f1(){
B b = new B();
b.f2();
b.fx();
}
}
Class B{
Private C c = new C();
Public void f2(){
c.f3();
}
Public void fx(){
c.f3();
c.f4();
}
}
Class C{
Public void f3(){
}
Public void f4(){
}
}
请指出区别,及修改后的优缺点,它体现了一个什么样的设计原则?
10,写一个程序,实现从文件中读出文件内容,并将其打印在屏幕当中,并标注上行号。
11,写一个程序,体现jdbc连接数据库的过程,以Oracle数据库为例。
12,写一个程序,实现一个单例。
中兴java面试题
1、请先自我介绍一下,时间三分钟。(面试官看简历)
2、请介绍一下你做过的项目。(开始讲述自己的项目)
3、项目上传感器数据你是怎么管理的?(多线程编程)
4、你这种管理方式有没有遇到过死锁的情况?(线程同步)
5、项目代码量多少行?
6、给你4000多万甚至更大的数据量,请你设计一种数据结构来管理?(红黑树考察)
7、如果从安全性的角度考虑,请你设计memcpy函数,你该怎么设计?(合法性检测、智能指针管理内存还是将内存释放权限留给调用者)
8、这个项目的方案设计是你设计的吗?(不是的)
9、如果让你来设计该项目方案,你会怎样设计?(对项目的设计不合理之处的认识,以及自己创新想法)
10、请设计shell命令,打印出指定目录下指定文件中某数据的起始行号.(Linux编程考察)
文思海辉Java面试题
4、你用的排序方式有哪些,说出你最擅长的一种排序方式?
5、xml解析方式,schemaXml的解析方式有哪几种,怎么实现解析的?6、private,protect,default,public权限修饰符是怎么设置权限的?7、平时你关注java的那些技术?8、Static
9、Throwsthrow区别10、Jspservlet区别
Jsp本质上就是一个severletjsp可能更注重前台显示而severlet则是控制Jsp有自己的内置对象severlet没有Jsp运行速度没有severlet快
Jsp中有htnl的代码,而severlet只是java代码11、log4j实现
12、Hibernateor配置
13、Class.forName作用,为什么用?14、SAX与DOM的区别
技术二面的题目
1. 简单的介绍一下自己。
2. 项目是在什么公司做的,什么时候开始做软件开发的,即工作年限。 3. 说说struts工作流程。 4. Struts怎么配置拦截器?
5. Spring MVC模式有几种注解方式,分别是? 6. Tomcat热部署遇到内存溢出怎么办?
7. 平时遇到未知Exception,又不能上网,怎办解决?
8. 平时做项目有没有遇到什么问题?举一些例子,并说说如何解决的。 9. 项目遇到大数据怎么处理?
10. 说说Hibernate一级缓存和二级缓存,什么时候用二级缓存? 11. 说说对数据库的了解。
人人网java面试题
1.结合金融业务,实现转账过程,从账户A转到账户B,注意金额不能为负数。
public class User{
private String name;
private int blance;
//getter/setter方法
}123456
这道题要做的几现实它的一个计算方法,上面提供了JavaBean,题目代码貌似如下:
/**
*
* @param blanceFrom 借贷人
* @param blanceTo 借款人
* @param blance 借款金额
*/
public static void execute(User blanceFrom, User blanceTo, int blance) {
}
12345678910
这道题不难,需要注意的是判断空指针异常和blance非负数,所以这里我就不提供参考代码了。
2.回文数问题。我感觉这道题描述有问题,按照我的理解是写一算法判断是否为回文数。但是题目却说比如1221,1234321等都不是回文数,我一脸蒙逼,问面试官是不是题目描述错误了。面试官十分肯定的回答我:题目没有错,会做就做,不会做的可以跳过。
本题我直接跳过,不过我解题思路是先把原字数赋值到新的变量,不断的对原来的数字对10取余,然后数字本身除以10,直到该数为0为止。
public boolean isHuiWen(int number) {
int oldNumber = number;
int newNumber = 0;
while(number != 0) {
newNumber = newNumber*10 + number%10;
number /= 10;
}
if(oldNumber == newNumber) {
return true;
}
return false;
}12345678910111213
3.统计句子中每个单词出现的次数。比如如下句子中
Java this is a Java Hello World Thank you
本句子中,各单词出现次数如下:
“Java”出现2次
“this”出现1次
“is”出现1次
“a”出现1次
“Hello”出现1次
“World”出现1次
“Thank”出现1次
“you”出现1次
空格不进入统计里边。这道题用Map的数据结构来做最适合,Map是一种key-value的数据结构。首先用正则表达式将句子切割成String数组,然后遍历这个数组把第i个元素的值作为Map的key,出现次数作为value,当第一次存入key时value等于1,否则value+1。
public Map wordCount(String sentence) {
String[] strs = sentence.split("\\s+");
Map wordMap = new HashMap();
for(int i = 0; i < strs.length; i++) {
if(wordMap.get(strs[i]) == null) {
wordMap.put(strs[i], 1);
} else {
wordMap.put(strs[i], wordMap.get(strs[i])+1);
}
}
return wordMap;
}12345678910111213
4.将阿拉伯字母转为汉字。比如123转为一百二十三。
二面的面试题目
【填空题】
java面向对象的三大特征是:_______,_______,_______.
答:封装,继承,多态。
sleep()和wait()的区别是___________________________.
答:(1)sleep()不释放对象锁,wait()释放对象锁。
(2)sleep()可以在时间未到时被打断,抛出异常,所以需要捕获异常,wait不需要捕获异常。
(3)sleep()是Thread类的方法,wait()是Object类的方法。
一个类被JVM回收的标志是_______________________.
答:类未被其他的活动类引用。
重写JAVA equals方法,需要同时重写:_____________.
答:hashCode方法。这是JAVA的常规约定,如果不重写hashCode,使用HashMap,HashSet等类时会出现错误。调用equals()方法比较两个对象的时候,编译器会自动调用hashCode()来比较两个对象是否产生相同的整数结果.equals()返回true,则hashCode()必返回true.equals()返回false,则hashCode()必返回false.那么重写equals()方法,肯定必须重写hashCode方法来保证二者的同步.
String, StringBuilder, StringBuffer的区别:____________.
答:String保存字符串常量,字符串的每次变化都会产生一个新的字符串对象。StringBuilder和StringBuffer都是可以变化而不产生新的对象的。其中,StringBuffer是线程安全的,StringBuilder是线程不安全的。
增加数据表一列的SQL语法:_____________________.
答:alter [table] add [列].
JSP的内置对象及方法request,_______,______,_______.(常用三个即可)
答:response,session,out,page,application,exception,pageContext,config.
List,Set,Map是否继承自Collection接口:_____________.
答:List和Set 是的,Map不是。
数据库事务特征________,________,________,________.
答:ACID,原子性,一致性,隔离性,持久性。
针对10,100,32,45,58,126,3,29,200,400,0利用除商留余法构造长度为13的数据的HASH:________________________________.
答:全部除以25再取余数,再连到一起?结果是:1007208134000.也可能最后再MOD一个10000000000000,题意没有读懂。
Java热点新闻