Java面试题

百度某部门

1 spring ioc、aop 的原理
2 hibernate 延迟加载原理
3 事务隔离级别 什么情况下用低的或者用高的
4 事务传播方式哪几种
5 ajax 跨域如何实现
6 MQ是否应该保持顺序 保持是否的优劣
7 乐观锁与悲观锁,举例场景
悲观锁,正如其名,它指的是对数据被外界(包括本系统当前的其他事务,以及来自 外部系统的事务处理)修改持保守态度,因此,在整个数据处理过程中,将数据处于锁定 状态。悲观锁的实现,往往依靠数据库提供的锁机制(也只有数据库层提供的锁机制才能 真正保证数据访问的排他性,否则,即使在本系统中实现了加锁机制,也无法保证外部系 统不会修改数据)。
乐观锁( Optimistic Locking )
相对悲观锁而言,乐观锁机制采取了更加宽松的加锁机制。悲观锁大多数情况下依
靠数据库的锁机制实现,以保证操作最大程度的独占性。但随之而来的就是数据库
性能的大量开销,特别是对长事务而言,这样的开销往往无法承受。
http://www.blogjava.net/loocky/archive/2006/11/15/81138.html
8 cookie 与session 区别和联系,http 协议是无状态的,怎么区分不同登录用户
9 阐述opensessionview一下, 用和不用 数据库连接、transaction session 之间 开启和关闭顺序

大题
1.设计一个权限系统 ,要求若干(我就阐述了一下rbac的原则,简单说了一下设计的表和思路)
基于角色的访问控制(Role-Based Access Control)作为传统访问控制(自主访问,强制访问)的有前景的代替受到广泛的关注。在RBAC中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。这就极大地简化了权限的管理。
2.设计 一个b/s结构 mvc框架,要求若干(我着重说明了一下控制转发这块的设计思路)

 

 


百度移动终端研发工程师笔试题,题量不大,2个小时,有点难度。

1.写一个字符串逆序的程序,时间复杂度和空间复杂度最低,效率越高越好。
使用stack,压栈,出栈

2.实质:二叉树的层序遍历,每层的结点用单链表输出。
层序------深度遍历,一层一层,前序----广度遍历,先从根节点开始

3.1-N(N最大32000,且未知),内存只有4K,找出其中的重复数

4.编程题,比较复杂,是个系统设计题,与《编程之美》中3.2,电话号码对应英语单词类似。


百度软件开发工程师一面问题:

1.有101个数,为[1,100]之间的数,其中一个数是重复的,如何寻找这个重复的数,其时间复杂度和空间复杂度是多少?
http://blog.csdn.net/weiqubo/article/details/7298363
把所有的数加起来-5050,因为(100+1)*50+X-5050就是重复的数。。
2.Java中抽象类与接口的区别。

3.进程与线程之间的联系与区别。(多家公司都在问,好好研究一下)

4.谈谈对设计模式的认识与理解,简单介绍一下你所知道的设计模式。(多家公司都问,Android方向面试必考的)

5.线程、多线程相关(必问)

6.Linux常用的命令,shell编程,grep命令的使用。

7.海量数据查找或者排序,有资源限制要求。(常考的)

       

Sina无线客户端开发工程师面试

笔试的题目和7月22日实习生的题目差不多。面试主要问了:

1.二叉树的一些基础知识。

2.Java多线程,对stop()方法的认识,如何安全的终止一个线程。

3.设计模式相关的问题

4.谈谈你对面向对象编程中继承的认识

5.排序算法

 

网易2012校招无线客户端开发笔试,题目不太难,比较基础。

1.面向对象编程中多态的概念,用伪代码展示出来。

2.斐波那契数列编程,效率越高越好(详见《编程之美》2.9)

3.60W长度为32的字符串一次性读入内存中,大约占用多少内存空间?

4.一个X向量n,如何求其内部的最大距离。

5.在浏览器中输入http://www.163.com,从输入到页面在浏览器中显示出来,期间发生了哪些过程,越详细越好。
http://www.cnblogs.com/wenanry/archive/2010/02/25/1673368.html
6.简单介绍一下Android系统中的Activity,Service, Intent, ContentProvider组件。

7.编程解析一段josn格式内容,并在界面上显示出来。

8.英文阅读,考察英语能力。

9.网络应用分析,发挥自己的主观能动性和积累。

阿里巴巴Java面试的一些要点

 

面试要点:
了解一下教育背景,是否有真正做过文本分类的算法,可以了解一下分类算法是否熟悉
是否有过B/S的开发经验
传递参数时,什么时候是值传递,什么时候是引用传递
是否使用过JDBC,JDBC的使用方法
try-catch-finally中,如果在try或catch中有return过,是否还执行
简述快速排序
不是用中间变量实现swap(x,y)函数
1、 除了在从前的项目中使用了哪些开源框架开发外,需注重他们是否清楚框架的工作原理;
Jdk1.5新特性,
Spring的原理,事务如何管理,如何防止脏读数据,加锁
你最有成就感的项目,
说说方法sysnchrnized 和方法块sysnchrnized区别,
Hibernate的延迟加载,session何时开启,何时关闭.

2、对java应用的内存处理机制,线程工作原理,并有没有在项目中实际解决该类问题的经验;
3、 有没有在项目中有过系统性能调优,性能跟踪,内存泄漏定位等相关经验,
4、 在解决实际问题时,是否有了解解决问题方法的本质(解决方案的系统原理);
5、 对关系型数据库工作原理,以及关键性能影响点的了解及项目中的实际经验;
6、 是否爱好技术,愿意不断投入时间去跟进,学习(学习的深入度,是否能结合系统原理来看一些新技术);

Java面试题
1.string,stringbuffer 和stringbuilder的区别
2.struts1和2的区别
3.ArrayList,HashMap,HashTable区别
4.谈谈NIO
5.Weblogic怎么发布一个JMS
6.OBJECT有些什么函数,都是做什么用的
7.JSP,SERVLE是线程安全的吗?为什么?
8.了解SOA吗?
9.网页中跨域访问的问题怎么解决
10.ibtas中怎么设置OS CACHE

JAVA面试基础测试题
1.抽象:
 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。

7、String 和StringBuffer的区别
 JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。这个String类提供了数值不可改变的字符串。而这个StringBuffer类提供的字符串进行修改。当你知道字符数据要改变的时候你就可以使用StringBuffer。典型地,你可以使用 StringBuffers来动态构造字符数据。

9、说出Servlet的生命周期,并说出Servlet和CGI的区别。
 Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。
与cgi的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。
   (我2434298599)
10、说出ArrayList,Vector, LinkedList的存储性能和特性
 ArrayList 和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector由于使用了synchronized方法(线程安全),通常性能上较ArrayList差,而LinkedList使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。
 
14、HashMap和Hashtable的区别。
    HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable。
HashMap允许将null作为一个entry的key或者value,而Hashtable不允许。
HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因为contains方法容易让人引起误解。
Hashtable继承自Dictionary类,而HashMap是Java1.2引进的Map interface的一个实现。
最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap 就必须为之提供外同步。
Hashtable和HashMap采用的hash/rehash算法都大概一样,所以性能不会有很大的差异。

16、sleep() 和 wait() 有什么区别?
    sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复。调用sleep不会释放对象锁。
wait是Object类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。

 

 

某互联网面试
笔试题:
1."a"+100%3+100
2.public class Demo {
public static void main(String[] args) {
B b1 = new B(1);
B b2 = b1;
change(b2);
System.out.println(b1.value);
System.out.println(b2.value);
}
public static void change(B b){
b = new B(2);
}

  }
  class B{
int value;
public B(int value){
this.value = value;
}
  }
3.有一个数组,求出数组中两两做差绝对值的最小值
4.在一个文件中有10G个整数,乱序排序,要求找出中位数。只写出思路即可。
面试的问题:
1.如何使HashMap性能最差
2.HashMap是如何实现的
3.如何用Sql语句实现一张表的两列交换数据

 

 

 


大众点评网面试

jvm的原理,Struts的处理机制,spring的ioc原理,groovy的闭包,nosql和关系数据库的优劣等等”


某公司java高级工程师

RMI通信过程,虚拟机垃圾回收以及调优
Spring quarts,多线程设计四五个线程间的同步互斥

Spring安全,java加密算法,JMS

 

 

1、二叉树的遍历,给你个图,让你写出:前序遍历、中序遍历、后序遍历的顺序,话说这东西当初学c语言的时候知道,但是早忘光了。
2、描述一下TCP/IP协议的三次握手。
3、描述一下hashmap的实现原理。
4、给你个整数数组,自己写方法降序排序。(冒泡)
5、字符串倒叙输出(这个简单)
6、栈(后进先出)
7、tcp/ip协议和udp的区别
8、类的加载运行顺序,给你两个类,一个继承另一个,里面都有静态块啥的,给结果
9、简单的++ --类型的程序
10、数据库表中的两列互换
11、都用过什么设计模式、然后写一个例子

 

posted @ 2013-06-24 10:18  夜雨阑珊  阅读(2658)  评论(0编辑  收藏  举报