java面试题视频
1. 面试java程序员一般会问什么问题
java基础方面:排序算法,集合,异常
web方面:数据库一般必问,框架,jquey,以及自己做过的项目。
2. 面试java工程师,面试官一般问什么问题
其实每家公司面试侧重点是不一样的,所以会出现不同的面试题,所以在平时的工作中就可以不断总结积累,给你分享面试题基础总结:
1、 JVM结构原理、GC工作机制详解
答:具体参照:JVM结构、GC工作机制详解,说到GC,记住两点:1、GC是负责回收所有无任何引用对象的内存空间。 注意:垃圾回收回收的是无任何引用的对象占据的内存空间而不是对象本身,2、GC回收机制的两种算法,a、引用计数法 b、可达性分析算法( 这里的可达性,大家可以看基础2 Java对象的什么周期),至于更详细的GC算法介绍,大家可以参考:Java GC机制算法
2、Java对象的生命周期
答:创建阶段 、 应用阶段 、不可见阶段 、不可达阶段 、收集阶段 、终结阶段、 对象空间重新分配阶段等等,具体参照:Java 对象的生命周期
3、Map或者HashMap的存储原理
答:HashMap是由数组+链表的一个结构组成,具体参照:HashMap的实现原理
4、当数据表中A、B字段做了组合索引,那么单独使用A或单独使用B会有索引效果吗?(使用like查询如何有索引效果)
答:看A、B两字段做组合索引的时候,谁在前面,谁在后面,如果A在前,那么单独使用A会有索引效果,单独使用B则没有,反之亦然。同理,使用like模糊查询时,如果只是使用前面%,那么有索引效果,如果使用双%号匹配,那么则无索引效果
5、数据库存储日期格式时,如何考虑时区转换问题?
6、JavaObject类中有哪些方法?
7、HTTP协议,GET和POST 的区别
3. 谁有java面试时,常见的逻辑推理题吗,分享一下
1.一个粗细均匀的长直管子,两端开口,里面有4个白球和4个黑球,球的直径、两端开口的直径等于管子的内径,现在白球和黑球的排列是wwwwbbbb,要求不取出任何一个球,使得排列变为bbwwwwbb。
2.一只蜗牛从井底爬到井口,每天白天蜗牛要睡觉,晚上才出来活动,一个晚上蜗牛可以向上爬3尺,但是白天睡觉的时候会往下滑2尺,井深10尺,问蜗牛几天可以爬出来?
3.在一个平面上画1999条直线最多能将这一平面划分成多少个部分?
4.在太平洋的一个小岛上生活着土人,他们不愿意被外人打扰,一天,一个探险家到了岛上,被土人抓住,土人的祭司告诉他,你临死前还可以有一个机会留下一句话,如果这句 话是真的,你将被烧死,是假的,你将被五马分尸,可怜的探险家如何才能活下来?
5.怎样种四棵树使得任意两棵树的距离相等。
6.27个小运动员在参加完比赛后,口渴难耐,去小店买饮料,饮料店搞促销,凭三个空瓶可以再换一瓶,他们最少买多少瓶饮料才能保证一人一瓶?
7.有一座山,山上有座庙,只有一条路可以从山上的庙到山脚,每周一早上8点,有一个聪明的小和尚去山下化缘,周二早上8点从山脚回山上的庙里,小和尚的上下山的速度是任 意的,在每个往返中,他总是能在周一和周二的同一钟点到达山路上的同一点。例如,有一次他发现星期一的8点30和星期二的8点30他都到了山路靠山脚的3/4的地方,问这是为什么?
8.有两根不均匀分布的香,每根香烧完的时间是一个小时,你能用什么方法来确定一段15分钟的时间?
2.10个海盗抢到了100颗宝石,每一颗都一样大小且价值连城。他们决定这么分:
(1)抽签决定自己的号码(1~10);
(2)首先,由1号提出分配方案,然后大家表决,当且仅当超过半数的人同意时,按照他的方案进行分配,否则将被扔进大海喂鲨鱼;
(3)如果1号死后,再由2号提出分配方案,然后剩下的4个人进行表决,当且仅当超过半数的人同意时,按照他的方案进行分配,否则将被扔入大海喂鲨鱼;
(4)依此类推……
条件:每个海盗都是很聪明的人,都能很理智地做出判断,从而做出选择。
问题:第一个海盗提出怎样的分配方案才能使自己的收益最大化?
12.从同一地点出发的相同型号的飞机,可是每架飞机装满油只能绕地球飞半周,飞机之间可以加油,加完油的飞机必须回到起点。问至少要多少架次,才能满足有一架绕地球一周。
参考答案:
1.两边一起烧。
2.96,0,1,0,1,0,1,0,1,0。
3.因为口是圆的。
4.很多。
5.分1,2,4。
6.6/7北京到广州的距离。
7.100%。
8.平面镜成像原理(或者是“眼睛是左右长的”)。
9.3先装满,倒在5里,再把3装满,倒进5里。把5里的水倒掉,把3里剩下的水倒进5里,再把3装满,倒进5里,ok!
10.一次。
11.首先1000为一个解。连续数的平均值设为x,1000必须是x的整数倍。假如连续数的个数为偶数个,x就不是整数了。x的2倍只能是5,25,125才行。因为平均值为12.5,要连续80个达不到。125/2=62.5是可以的。即62,63,61,64,等等。连续数的个数为奇数时,平均值为整数。1000为平均值的奇数倍。1000=2×2×2×5×5×5;x可以为2,4,8,40,200排除后剩下40和200是可以的。所以答案为平均值为62.5,40,200,1000的4组整数。
12.答案是5架次。一般的解法可以分为如下两个部分:
(1)直线飞行
一架飞机载满油飞行距离为1,n架飞机最远能飞多远?在不是兜圈没有迎头接应的情况,这问题就是n架飞机能飞多远?存在的极值问题是不要重复飞行,比如两架飞机同时给
一架飞机加油且同时飞回来即可认为是重复,或者换句话说,离出发点越远,在飞的飞机就越少,这个极值条件是显然的,因为n架飞机带的油是一定的,如重复,则浪费的油就越多。比如最后肯定是只有一架飞机全程飞行,注意“全程”这两个字,也就是不要重复的极值条件。如果是两架飞机的话,肯定是一架给另一架加满油,并使剩下的油刚好能回去,就说第二架飞机带的油耗在3倍于从出发到加油的路程上,有三架飞机第三架带的油耗在5倍于从出发到其加油的路程上,所以n架飞机最远能飞行的距离为s=1+1/3+…+1/(2n+1
)这个级数是发散的,所以理论上只要飞机足够多最终可以使一架飞机飞到无穷远,当然实际上不可能一架飞机在飞行1/(2n+1)时间内同时给n-1个飞机加油。
(2)可以迎头接应加油
一架飞机载满油飞行距离为1/2,最少几架飞机能飞行距离1?也是根据不要重复飞行的极值条件,得出最远处肯定是只有一架飞机飞行,这样得出由1/2处对称两边1/4肯定是
一架飞机飞行,用上面的公式即可知道一边至少需要两架飞机支持,(1/3+1/5)/2>1/4(左边除以2是一架飞机飞行距离为1/2),但是有一点点剩余,所以想象为一个滑轮(中间
一个飞机是个绳子,两边两架飞机是个棒)的话,可以滑动一点距离,就说加油地点可以在一定距离内变动(很容易算出来每架飞机的加油地点和加油数量,等等)
4. 求风中叶 Java常见笔试,面试题目深度剖析视频
http://down.51cto.com/data/765188
请查收
5. 哪里有java面试问题的视频教程
不需要视频吧!多下载些面试题看看就行了,一般数据库,运行机制,设计模式,线程考的比较多,多看看笔试绝对没问题
笔试完跟项目经理的面试对答很重要,不懂的地方就多说些相关的,总比说不知道强。
6. 求一java教程视频。内容有,一位java去面试,问你知道什么叫类答我们学java的不知道什么叫累
应该是一本关于hadoop的书里面讲到的吧
7. JAVA面试题---设计一个类,该类只能生成一个实例
出来这样的效果,叫做单列模式。
你可以参考一下的下面的笔记:
单例模式(Singleton):保证程序永远能获得同一个Java对象。
示例一:
-----
称饿汉式
:开始就急着创建对象,所以称为俄汉式
class
A{
private
static
A
a
=
new
A();
private
A(){
//使用private访问控制符来让外界不能new该对象;只能调用静态方法来获取。
//这样方可实现外界永远获得的是同一个Java对象。
}
public
static
A
getInstance(){
return
a;
}
}
示例二:
----
称懒汉式
:开始不创建对象,等到用的时候才创建,行为有点懒;所以称为俄汉式。
class
A{
private
static
A
a=null;
private
A(){
}
public
synchronized
static
A
getInstance(){
if(a
==
null){
a
=
new
A();
}
return
a;
}
}
8. 百度java面试题有哪些 集锦汇总java面试
1、Servlet 3中的异步处理指的是什么?
答:在Servlet
3中引入了一项新的技术可以让Servlet异步处理请求。有人可能会质疑,既然都有多线程了,还需要异步处理请求吗?答案是肯定的,因为如果一个任务处理时间相当长,那么Servlet或Filter会一直占用着请求处理线程直到任务结束,随着并发用户的增加,容器将会遭遇线程超出的风险,这这种情况下很多的请求将会被堆积起来而后续的请求可能会遭遇拒绝服务,直到有资源可以处理请求为止。异步特性可以帮助应用节省容器中的线程,特别适合执行时间长而且用户需要得到结果的任务,如果用户不需要得到结果则直接将一个Runnable对象交给Executor并立即返回即可。
补充:多线程在Java诞生初期无疑是一个亮点,而Servlet单实例多线程的工作方式也曾为其赢得美名,然而技术的发展往往会颠覆我们很多的认知,就如同当年爱因斯坦的相对论颠覆了牛顿的经典力学一般。事实上,异步处理绝不是Serlvet
3首创,如果你了解Node.js的话,对Servlet 3的这个重要改进就不以为奇了。
下面是一个支持异步处理请求的Servlet的例子。
importjava.io.IOException; importjavax.servlet.AsyncContext;
importjavax.servlet.ServletException; importjavax.servlet.annotation.WebServlet;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse; @WebServlet(urlPatterns = {
"/async"}, asyncSupported = true)
{
= 1L; @OverridepublicvoiddoGet(HttpServletRequest req, HttpServletResponse resp)
throwsServletException, IOException { // 开启Tomcat异步Servlet支持req.setAttribute(
"org.apache.catalina.ASYNC_SUPPORTED", true); finalAsyncContext ctx =
req.startAsync(); // 启动异步处理的上下文// ctx.setTimeout(30000);ctx.start( newRunnable()
{ @Overridepublicvoidrun() { // 在此处添加异步处理的代码ctx.complete(); } }); } }
2、如何在基于Java的Web项目中实现文件上传和下载?
答:在Sevlet 3 以前,Servlet
API中没有支持上传功能的API,因此要实现上传功能需要引入第三方工具从POST请求中获得上传的附件或者通过自行处理输入流来获得上传的文件,我们推荐使用Apache的commons-fileupload。
从Servlet 3开始,文件上传变得无比简单,相信看看下面的例子一切都清楚了。
上传页面index.jsp:
Select your photo and upload
${hint}
Photo file:
支持上传的Servlet:
packagecom.jackfrued.servlet; importjava.io.IOException;
importjavax.servlet.ServletException;
importjavax.servlet.annotation.MultipartConfig;
importjavax.servlet.annotation.WebServlet; importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse; importjavax.servlet.http.Part;
@WebServlet( "/UploadServlet")
@{
= 1L; protectedvoiddoPost(HttpServletRequest request, HttpServletResponse
response) throwsServletException, IOException { //
可以用request.getPart()方法获得名为photo的上传附件// 也可以用request.getParts()获得所有上传附件(多文件上传)//
然后通过循环分别处理每一个上传的文件Part part = request.getPart( "photo"); if(part !=
null&& part.getSubmittedFileName().length() > 0) { //
用ServletContext对象的getRealPath()方法获得上传文件夹的绝对路径String savePath =
request.getServletContext().getRealPath( "/upload"); // Servlet
3.1规范中可以用Part对象的getSubmittedFileName()方法获得上传的文件名//
更好的做法是为上传的文件进行重命名(避免同名文件的相互覆盖)part.write(savePath + "/"+
part.getSubmittedFileName()); request.setAttribute( "hint", "Upload
Successfully!"); } else{ request.setAttribute( "hint", "Upload failed!"); } //
跳转回到上传页面request.getRequestDispatcher( "index.jsp").forward(request, response); }
}
3、服务器收到用户提交的表单数据,到底是调用Servlet的doGet()还是doPost()方法?
答:HTML的
< %--静态包含 --%> < %--动态包含 --%> < jsp:includepage= "...">
< jsp:param name= "..."value= "..."/> < /jsp:include>
4、Servlet中如何获取用户提交的查询参数或表单数据?
答:可以通过请求对象(HttpServletRequest)的getParameter()方法通过参数名获得参数值。如果有包含多个值的参数(例如复选框),可以通过请求对象的getParameterValues()方法获得。当然也可以通过请求对象的getParameterMap()获得一个参数名和参数值的映射(Map)。
5、Servlet中如何获取用户配置的初始化参数以及服务器上下文参数?
答:可以通过重写Servlet接口的init(ServletConfig)方法并通过ServletConfig对象的getInitParameter()方法来获取Servlet的初始化参数。可以通过ServletConfig对象的getServletContext()方法获取ServletContext对象,并通过该对象的getInitParameter()方法来获取服务器上下文参数。当然,ServletContext对象也在处理用户请求的方法(如doGet()方法)中通过请求对象的getServletContext()方法来获得。