你的位置:首页 > Java教程

[Java教程]百度Java研发面经100题 总结


1. 单例模式常见的应用场景分析。  

  在23种设计模式中,单例模式排行老大。虽然理解简单,但是对于应用场景。你真正的熟悉么?使用单例,是由于没必要每个请求都新建一个对象,这样既浪费CPU又浪费内存;之所以用多例,是为了防止并发问题;即一个请求改变了对象的状态,此时对象又处理另一个请求,而之前请求对对象状态的改变导致了对象对另一个请求做了错误的处理。

  先来说说Java web中的单例应用场景:数据库连接池就是单例模式,有且仅有一个连接池管理者,管理多个连接池对象。我们常用的service和dao层的对象通常都是单例的(由于其所有的请求都用一个对象来处理),而struts2中的action则是多例,由于每个请求是用一个新的对象来处理的(因为action本身含有请求参数的值,即可改变的状态)。 log4j日志记录也是单例模式,因为从始至终都仅维护一个对象。(应用程序的日志应用,一般都何用单例模式实现,这一般是由于共享的日志文件一直处于打开状态,因为只能有一个实例去操作,否则内容不好追加)。

2. 什么是平衡二叉树。

  它或者是一颗空树,或者具有以下性质的二叉树:它的左子树和右子树的深度之差的绝对值不超过1,且它的左子树和右子树都是一颗平衡二叉树。

3. 什么是红黑树。

  红黑树是特殊的平衡二叉树。遵循红定理和黑定理。红定理:在一条路径上不能出现两个相连的红节点;黑定理:根节点必须是黑节点,而且所有节点通向树的尾端的路径上,所含的黑节点的个数必须相等。

4. 什么是B树。(二叉搜索树)

  所有节点存储一个关键字;非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树;所有非叶子节点最多拥有两个儿子。

5. 什么是B-树。(多路搜索树)

  根节点儿子树[2,m];非根节点非叶子节点的儿子树[m/2,m];每个节点的关键字数为[m/2-1,m-1]。

6. 什么是B+树。

  B+树是B-树的变体;在B-树的定义之上,补充定义有:所有关键字都在叶子节点出现;所有叶子节点增加一个链指针;非叶子节点的子树与关键字个数相同。  

  总结:平衡二叉树是一种二叉搜索树。其可以保证在log2(n)的时间内找到节点,而普通的二叉搜索树在最坏情况下性能近似与链表,所用时间为log(n)红黑树用在内部排序,即全放在内存中的,微软STL的map和set的内部实现就是红黑树。B树多用在内存里放不下,大部分数据存储在外存上时。因为B树层数少,因此可以确保每次操作,读取磁盘的次数尽可能的少。在数据较小,可以完全放到内存中时,红黑树的时间复杂度比B树低。反之,数据量较大,外存中占主要部分时,B树因其读磁盘次数少,而具有更快的速度。    

  补充红黑树的由来:在查找中,虽然hash表查找非常迅速,但是随着数据的种类增多,hash表长会变得更长,且冲突也会越来越多,那么如何才能实现无论在多大数据量的情况下,查找依然是高性能的呢?同时我们又知道树是很好的一种数据结构,那用于插入,删除,查找等都是很高效的数据树构,但问题是在很坏的情况下,操作很费时间,它的性能得到不保证,比如二叉查找树中如果左子树与右子树相差太远,那么查找时就很费时间。这时为了保证其有高效性,就得保证左树与右树不能差得太远,当向树中插入时,就按一定规则调整,使其达到规则,从而使其整体与局部查找效率得到提高。这就是红黑树的规则。

7. final finally finalize三者的区别。

  finalize是一个方法,而且它是Object类中的一个方法。当垃圾收集器在确定这个对象没有被引用时调用对象的finalize方法。它的作用是为GC清理对象之前做一些必要的清理工作(如输入/输出连接的对象的 finalize 方法可执行显式 I/O 事务,以便在永久丢弃对象之前中断连接)。

  finally用在try,catch异常机制中,不管什么情况都会执行。

  final修饰类,表示不可被继承;修饰基本数据类型,即常量不可变;修饰引用类型,指向的对象内容可变,对象不可变。

8. Error Exception RuntimeException

  异常机制的继承结构首先,基类为Throwable;Error和Exception继承Throwable;RuntimeException和IOException等继承Exception(即具体的RuntimeException继承RuntimeException). 

  Error描述了内部错误以及资源耗尽的情形。应用程序不应该抛出这种类型的对象(一般是由虚拟机抛出)。程序级别不能处理。

  Exception则包括RuntimeException和其他非RuntimeException的。RuntimeException包括错误的类型转换、数组越界访问和试图访问空指针等等。处理RuntimeException的原则是:如果出现RuntimeException,那么一定是程序员的错误。例如,可以通过检查数组下标和数组边界来避免数组越界访问异常。非RuntimeException(IOException等等):这类异常一般是外部错误,例如试图从文件尾后读取数据等,这并不是程序本身的错误,而是在应用环境中出现的外部错误。  

  总结:比如5/0就是runtimeException异常,这样的异常可以在程序里不做处理,不会报错,运行时才会报异常。非runtimeException异常就是在程序里就要进行try catch的,不进行处理就会报错

9. 区别TCP UDP HTTP HTTPS SFTP FTP

  TCP可靠连接,三次握手,四次挥手。

  UDP不可靠连接。

  HTTPS是SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议。要比HTTP协议安全。它使用SSL即是安全套接字层(SSL)进行信息交换。HTTP需要申请证书,是收费的。

  FTP是文件传输协议。在网站上,如果你想把文件和人共享,最便捷的方式莫过于把文件上传到FTP服务器上,其他人通过FTP客户端程序来下载所需要的文件。FTP进行文件传输需要通过端口进行。一般所需端口为:控制链路—TCP端口21。控制器端。用于发送指令给服务器以及等待服务器响应。数据链路---TCP端口20。数据传输端口。用来建立数据传输通道的。主要用来从客户向服务器发送一个文件、从服务器向客户发送一个文件、从服务器向客户发送文件或目录列表。FTP为了适应不同的网络环境,支持主动连接和被动连接两种模式。这两种模式都主要针对数据链路进行的,跟控制链路无关。SFTP是Secure File Transfer Protocol的缩写,是安全文件传送协议。可以为传输文件提供一种安全的加密方法。跟ftp几乎语法功能一样。SFTP是SSH的一部分,是一种传输档案至Blogger伺服器的安全方式。它本身没有单独的守护进程,必须使用sshd守护进程来完成相应的连接操作,所以从某种意义上来说,SFTP并不像一个服务器程序,而更像是一个客户端程序。SFTP同样是使用加密传输认证信息和传输的数据,所以使用SFTP是十分安全的。但由于这种传输方式使用了加密/解密技术,所以传输效率比普通的FTP要低得多。在对网络安全性要求更时,代替FTP使用。   

10. Java线程池安全如何保证。

11. Java的参数传递中,值传递和引用传递区别。

  值传递的时候,传递的参数是值的拷贝传递,传递动作完成以后就毫无瓜葛了。引用传递,传递的参数是引用的地址。也就是变量所对应的内存空间的地址。这两者的区分类比当初C语言中的,用函数方法交换两个数的值。

 

int i = 0;i = i++;//输出 i的值是0; 顺序应该是:先计算表达式的值,得0,然后i加1,此时i=1,最后赋值,赋值是把表达式的值赋值,所以,i又变成0了.

 

12. 服务器网络编程中,解决回话跟踪有哪几种方法?

  Cookie; Session; URL重写; 

   cookie在J2EE项目中的使用,Java中把Cookie封装成了java.servlet.http.Cookie类。每个Cookie都是该Cookie类的对象。服务器通过操作Cookie类对象,对客户端Cookie进行操作。通过request.getCookies()获取客户端提交的所有Cookie(以Cookie[]数组形式返回),通过response.addCookie(Cookiecookie)向客户端设置Cookie。Cookie对象使用key-value属性对的形式保存用户状态,一个Cookie对象保存一个属性对,一个request或者response同时使用多个Cookie。。

// 服务器端获取cookieCookie[]cookies = request.getCookies();for (int i = 0; cookies != null && i < cookies.length;i++) {     Cookiecookie = cookies[i];     if("username".equals(cookie.getName())) {     }   }

//服务器端设置cookie

 String username = "sa";

 Cookie usernameCookie = new Cookie("username", username);

 response.addCookie(usernameCookie);


cookie的不可跨域名性和cookie的有效期。

 

 http://blog.csdn.net/leaderman_it/article/details/7487535

 

 

 

 

 

 

13.




四川旅游线路大全四川旅游报价价格四川旅游团购优惠深圳去四川旅游报价跟团去四川旅游多少钱贺州世外田园小孩怎么收费?黄姚世外田园儿童票价格? 世外田园有自行车租用吗?黄姚世外田园景区小交通多少钱? 贺州世外田园竹筏怎么收费?黄姚世外田园游船价格? 黄姚世外田园门票包含游船吗?贺州世外田园竹筏免费吗? 2015深圳花灯会时间?深圳花灯元宵节在哪里举行? 慢享人生 细细品味美丽琼海 2015深圳花灯去哪看?深圳花灯元宵节什么地方有? 2015世界之窗元宵节有什么好玩的?世界之窗元宵节活动介绍? 北京怀柔雁栖湖 2015年APEC峰会场馆提前看 秋高气爽的日子 长春这嘎达玩啥 秋日漫步街头 大连八大地标建筑推荐 组图:天气微凉好个秋 安徽赏秋好时节 出境旅游要带什么证件? 国庆想去泰国旅游,大概要多少钱? 十一国庆长假出境游免签的国家有哪些? 马尔代夫怎么选择岛屿 IDT71V3558SA100BQ8 Datasheet IDT71V3558SA100BQ8 Datasheet IDT5V9352PFGI Datasheet IDT5V9352PFGI Datasheet IDT72V3641L20PF8 Datasheet IDT72V3641L20PF8 Datasheet 内蒙古去香港三天两晚游 内蒙古去香港三天两晚游 内蒙古去香港三天两晚游 包头去港澳四天三晚游 包头去港澳四天三晚游 包头去港澳四天三晚游 浙江去港澳四天三晚游 浙江去港澳四天三晚游 浙江去港澳四天三晚游