`

有价值的面试题总结

阅读更多

1.譬如问我:“最熟悉哪些设计模式?”,
“那你讲讲Factory的特点和用途?”,

 

 

2.“Spring IOC的实现方式?”

 

3. 有一个对象数组a,写出按其中元素的属性b排序的程序,用jdk自带的api

 

 

4.关于5个强盗,100块砖石的分配问题。

著名的经济学模型:海盗分金

百度百科有详细解释,很经典...http://baike.baidu.com/view/5221.html?wtp=tt

(以上两题出自:http://www.iteye.com/topic/661409

 

5.用最简便的方法求最大公约数

public class Main {   
	static int divisor(int m,int n){
		return m%n==0?n:divisor(n,m%n);
	}

    public static void main(String[] args){
    	int n = 50;
    	int m = 30;
    	System.out.println(divisor(m,n));
    	
    }
}

 

6.用递归的方式判断某个字符串是不是回文字符串(正反读都一样) 比如(“abcdcba”)

 

public static boolean zf(String str,int i){   //str是要判断的字符串,i是判断到第几位了(从0开始到字符串的一半)
        if( i == str.length()/2 || str.length() == 1){//到中间的时候相等肯定为回文,顺便把长度等1和0也判断了   
            return true;   
        }else{   
            if(str.charAt(i) == str.charAt(str.length()-i-1)){   
                return zf(str,i+1);   
            }else{   
                return false;   
            }   
        }   
    }

 

7.有一组数据3,5,9,7,4,13,15,0,2,20.已知最大数是20,把数据从小到大排序,而且算法复杂度只能是1,不能用Java提供的类实现,如Arrays.sort()等。

解答:可以用桶算法来解决....

int[] a = {3,5,9,7,4,13,15,0,2,20};
boolean[] b = new boolean[21];
for(int i=0;i<a.length;i++){
b[a[i]] = true;
}
for(int i=0;i<b.length;i++){
if(b[i]){
System.out.print(i+",");
}

}

 

附桶算法的一般要求:对于数组中出现重复数,负数,或没有给定最大数,均无法使用桶。
当这三个条件都具备时且最大数不算太大时(桶的容量和最大数对应),可以使用桶算法来排序。

 

8.一哥们到阿里巴巴面试的题目:

问题1: 索引有什么坏处?

第一,创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。
第二,索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,那么需要的空间就会更大。
第三,当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。

问题2: hashtable和hashmap有什么区别?

一们仁兄的解答:

Hashtable继承自Dictionary类,而HashMap是Java1.2引进的Map interface的一个实现
  HashMap允许将null作为一个entry的key或者value,而Hashtable不允许
  还有就是,HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因为contains方法容易让人引起误解。
  最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap 就必须为之提供外同步。
Hashtable和HashMap采用的hash/rehash算法都大概一样,所以性能不会有很大的差异。
问题3: 浏览器与服务器间的会话是怎样实现和保持的?(大致是这个意思)

session,cookie区别,什么情况下使用,大概讲了一下;transient的作用

   1、session保存在服务器,客户端不知道其中的信息;cookie保存在客户端,服务器能够知道其中的信息。   
  2、session中保存的是对象,cookie中保存的是字符串。   
  3、session不能区分路径,同一个用户在访问一个网站期间,所有的session在任何一个地方都可以访问到。而cookie中如果设置了路径参数,那么同一个网站中不同路径下的cookie互相是访问不到的。   
  4、session需要借助cookie才能正常。如果客户端完全禁止cookie,session将失效。

 

 

9.请描述一下数据库三范式”

1.1 第一范式(1NF)无重复的列
比如oracle中的date类型,一般会把年月日 / 时间放在一起 一个字段内.
1.2 第二范式(2NF)属性完全依赖于主键[消除部分子函数依赖]
比如memcache里的所有的value都对应一个key值.......好不好查不是我们关心的事.
1.3 第三范式(3NF)属性不依赖于其它非主属性[消除传递依赖]
比如C语言中常常用到的指针,跳来跳去....

 

 6.jsp中jsp:forward 与 redirect区别

 (1).从地址栏显示来说
forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容
再发给浏览器.浏览器根本不知道服务器发送的内容从哪里来的,所以它的地址栏还是原来的地址.
redirect是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的URL.所
以redirect等于客户端向服务器端发出两次request,同时也接受两次response。
(2).从数据共享来说
forward:转发页面和转发到的页面可以共享request里面的数据.
redirect:不能共享数据.
redirect不仅可以重定向到当前应用程序的其他资源,还可以重定向到同一个站点上的其他应用程序中的资源,
甚至是使用绝对URL重定向到其他站点的资源.
forward,方法只能在同一个Web应用程序内的资源之间转发请求.
forward 是服务器内部的一种操作.
redirect 是服务器通知客户端,让客户端重新发起请求.
所以,你可以说 redirect 是一种间接的请求, 但是你不能说"一个请求是属于forward还是redirect "
(3).从运用地方来说
forward:一般用于用户登陆的时候,根据角色转发到相应的模块.
redirect:一般用于用户注销登陆时返回主页面和跳转到其它的网站等.
(4).从效率来说
forward:高.
redirect:低.

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    2019年_BATJ大厂面试题总结.7z

    这份2019年的面试题总结涵盖了Java开发者需要掌握的核心知识,无论是在准备面试还是日常学习中,都能提供有价值的参考。通过深入学习和实践,可以显著提升个人的Java技术水平,为在BATJ等大厂找到理想职位打下坚实...

    数据挖掘一些面试题总结.pdf

    数据挖掘面试题总结 数据挖掘是一种重要的数据分析技术,旨在从大规模数据中提取有价值的信息和模式。以下是数据挖掘的一些重要知识点: 1. 数据预处理:在数据挖掘之前,需要对数据进行预处理,以确保数据的质量...

    搜狐工程师面试题总结有答案90%参考.pdf

    【搜狐工程师面试题总结】 面试是获取理想职位的关键环节,对于搜狐集团的工程师职位来说,面试过程严谨且全面。以下是一些重要的知识点和策略,基于给出的文件内容: 1. **面试流程**: - 搜狐集团的面试通常...

    2021最新面试经验,包括百度、阿里、美团、字节跳动算法面试题总结经验

    总结来看,这些大厂的算法面试题不仅测试候选人对基础算法的熟练程度,还考察他们如何将算法应用于实际问题,以及对大数据、分布式系统等高级话题的理解。因此,准备这类面试时,除了深入学习经典的算法和数据结构,...

    J2EE面试题总结

    ### J2EE面试题总结知识点详解 #### 一、Hibernate:对象/关系数据库映射工具 **概述**: - **定义**:Hibernate是一种强大的对象/关系数据库映射(Object/Relational Mapping,简称ORM)工具,它允许开发者将Java...

    Python面试题总结.docx

    Python 面试题总结 1. Python 线程池原理: Python 的线程池是一种存放多个线程的单位,伴随着一个任务队列。整个执行过程是使用线程池中的已有线程来执行任务队列中的任务。这样做的好处是减少系统资源的开销,...

    Python面试题总结.pdf

    Python 面试题总结 Python 线程池原理 Python 线程池原理是指将多个线程存储在一个池中,等待执行任务队列中的任务。当线程池中有可用线程时,直接从池中获取线程执行任务,而不需要创建新的线程。这种机制可以...

    面试题总结(1).zip

    【标题解析】 "面试题总结(1).zip" 这个标题暗示了这是一...总的来说,“面试题总结(1).zip”提供了一个全面复习和准备IT面试的框架,涵盖了许多关键技术和理论,对于任何想要在技术领域提升自己的人都具有很高的价值。

    Java_面试题总结(2011版)

    《Java面试题总结(2011版)》是一份旨在帮助求职者准备Java软件开发岗位面试的详尽指南。这份资料涵盖了Java基础知识、数据库管理以及其他相关技能,旨在提升求职者的理论知识和实践能力,使其在面试过程中更具竞争力...

    Facebook 最新面试题总结

    这有助于面试官了解应聘者的解决问题能力和在压力下的工作情况。 2. **失败经历(Fail Experience)**: - 在项目或工作经历中坦诚失败是重要的。面试者应准备如何解释失败,并从中吸取的经验教训。 3. **与他人...

    java各大公司面试题总结

    ### Java各大公司面试题总结分析 #### 领域知识点概览 本文档根据提供的“Java各大公司面试题总结”中的部分题目进行深入解析,并针对每个问题背后的原理和技术要点进行详细阐述,帮助读者理解Java核心概念及面试...

    最新各大公司企业真实面试题-Java面试题

    "Java 认证模考试题.doc"提供了模拟认证考试的题目,这对于准备Oracle Java认证考试的求职者来说非常有价值,可以帮助他们熟悉考试格式和难度。 "java面试题目.doc"和"java面试题目(53页).doc"进一步补充了面试题库...

    2012年java面试题总结

    ### 2012年Java面试题总结及解析 #### Ajax的作用 - **定义与功能**:Ajax(Asynchronous JavaScript and XML),即异步JavaScript和XML技术,是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据...

    数据挖掘一些面试题总结.doc

    "数据挖掘一些面试题总结" 数据挖掘是一种重要的技术,它可以帮助企业从大量数据中提取有价值的信息和模式,从而转换成可行的结果/模型。数据挖掘的过程中,首先需要进行数据的预处理,包括数据的清洗、数据清洗、...

    数据血缘面试题总结报告材料

    本文旨在总结和探讨数据血缘在各个方面的应用和重要性,并提供一份面试题总结报告材料,以供相关专业人士参考。 数据血缘的定义是指数据之间的关系和依赖性,它记录了数据在整个生命周期中的源头、传输过程和转换...

    携程网工程师面试题总结有答案80%参考.pdf

    【携程网工程师面试题总结】 携程网的工程师面试流程严谨且全面,旨在评估候选人的专业技能、业务理解、团队协作及个人价值观。整个面试过程包括五轮,每一轮都有其特定的目标和重点。 1. **一面:组长面试** - ...

    C语言面试题总结汇总经典.pdf

    根据给定文件的信息,我们可以提炼出一系列与...以上是对文件中提到的部分面试题的详细解析,这些题目不仅考察了应聘者的基础编程能力,还考验了解决实际问题的能力,对于准备C语言面试的人来说是非常有价值的练习。

    Redis相关面试题总结

    适合人群:有一定数据库操作经验的开发者,特别是对Redis性能优化和技术内幕感兴趣的后端工程师。 使用场景及目标:①理解Redis的高效工作机制及其背后的理论基础;②掌握Redis在多种场景下的最佳应用实践;③熟悉...

    2020年前端面试真题(阿里、网易、滴滴等)文件为百度网盘链接永久有效

    现在五块钱的付出,将来收获的可能是一份心仪的offer,干货满满,建议下载。...友情提示:本套面试题包括面试题900题+公司实战面试题400问,面试题已经整理好答案,公司题由于新收录没有答案,但非常有参考价值。

Global site tag (gtag.js) - Google Analytics