面试总结

简介: 集合,线程

一、Java基础


集合,线程

Map的遍历的方式,Map中某一元素的移除?


答:Map的遍历方式有四种,参考《Java中如何遍历Map对象的4种方法》


remove 方法移除掉制定key的元素。


JAVA 集合的结构


答:Collection为父接口,下面有List,Set,Map三个子接口,List接口有三个实现类,分别是ArrayList


,Vector, LinkedList。Set下面有HashSet和TreeSet两个实现类。Map下面有HashMap和Hashtable两个实现类。


Java 的泛型约束?


HashMap和Hashtable的区别?


答:HashMap是线程不安全的,Hashtable是线程安全的。HashMap的性能要优于Hashtable,HashMap的Key可以允许一个为null,由源码我们可知hashtable如果加入key=null则会抛出NullPointerException();


Hashtable的put方法



HashMap的put方法:



Java的异常机制?


答:

所有异常的根类为java.lang.Throwable,Throwable下面又派生了两个子类error和Exception,Error表示应用程序本身无法克服和恢复的一种严重问题,程序只有死的份了,比如说:内存溢出和线程死锁等问题。Exception表示程序可以克服和恢复的问题,其中又分为系统异常与普通异常,系统异常时软件本身缺陷所导致的的问题,也就是开发人员考虑不周全所导致的的问题,软件使用者无法克服和恢复这种问题。但在这种问题可以让软件系统继续运行或者让软件死掉。例如,数组脚本越界(ArrayIndexOutOfBoundsException),空指针异常(NullPointerException),类转换异常(ClassCastException)、普通异常是运行环境的变化或者异常所导致的问题。


Java的重写和重载?


答:在父类中定义了一个方法并且抛出了一个IOException,


重写和重载有哪些不同


override

是重写(覆盖)了一个方法,以实现不同的功能。一般是用于子类在继承父类时,重写(重新实现)父类中的方法。


重写(覆盖)的规则:

1.重写方法的参数列表必须完全与被重写的方法的相同

否则不能称其为重写而是重载

2.重写方法的访问修饰符一定要大于被重写方法的访问修饰符(

public>protected>default>private

3.重写的方法的返回值必须和被重写的方法的返回一致;

4.重写的方法所抛出的异常必须和被重写方法的所抛出的异常一致,或者是其子类;

5.被重写的方法不能为private,否则在其子类中只是新定义了一个方法,并没s有对其进行重写。

6.静态方法不能被重写为非静态的方法(会编译出错)。


重载的规则:


   1 、在使用重载时只能通过相同的方法名、不同的参数形式实现。不同的参数类型可以是不同的参数类型,不同的参数个数,不同的参数顺序(参数类型必须不一样);


   2 、不能通过访问权限、返回类型、抛出的异常进行重载;


   3、方法的异常类型和数目不会对重载造成影响;


多态的概念比较复杂,有多种意义的多态,一个有趣但不严谨的说法是:继承是子类使用父类的方法,而多态则是父类使用子类的方法。


   4、重载的时候,方法名要一样,但是参数类型和个数不一样,返回值类型可以相同也可以不相同。无法以返回型别作为重载函数的区分标准。


一般,我们使用多态是为了避免在父类里大量重载引起代码臃肿且难于维护。


参考:

http://www.cnblogs.com/lonelyDog/archive/2011/11/16/2251011.html


2、JVM的原理?


参考:

http://blog.csdn.net/witsmakemen/article/details/28600127/


框架部分:


3、Spring IOC的原理以及运行流程


答:看源代码总结:


4、系统是怎样实现利用AOP对数据进行校验的


5、你们系统用到Spring-Secruity的哪些部分,


答:回去看看系统


SQL注入是怎样处理的?还有其他哪些漏洞


答:


常见的漏洞有:


 前端安全

XSS 漏洞

CSRF 漏洞


 后端安全

SQL 注入漏洞

权限控制漏洞

SESSION 与 COOKIE

IP 地址

验证码


参考:

http://blog.csdn.net/fengyinchao/article/details/50775121


6、你在项目中遇到过哪些难处理的问题,你是怎么解决的?


答:这种问题怎样回答呢?不能临时编一个问题,这个要平时积累:怎么积累,就是讲每次碰到的问题记录下来,然后,将解决方案记录下来。


 


相关文章
|
1月前
|
存储 开发框架 .NET
常见20道C#面试的题
常见20道C#面试的题
27 1
|
5月前
|
存储 算法 Go
这么简单的问题都不会,那还面试什么!?
gozero如何自定义goctl?本文详解和实战,通过本文你将了解goctl的妙用,提高你的开发效率。介绍如何使用goctl工具实现模板定制化,并根据实际项目业务需求进行模板定制化实现。
这么简单的问题都不会,那还面试什么!?
|
存储 缓存 移动开发
【面试总结2】1
【面试总结2】
|
安全
面试的那些事儿
面试的那些事儿
100 0
|
存储 C++ 索引
C++面试问题准备
C++面试问题准备
238 0
|
消息中间件 存储 缓存
|
设计模式 缓存 算法
大厂面试你懂了吗
每个人都有每个人的不同,每个人都会有自己不同的道路。 下面的大厂面试你又是否懂了,希望你可以了解。变得更加优秀。 主要分为以下几部分: (1)java面试题 (2)Android面试题 (3)混合开发面试题 (4)高端技术面试题 (5)非技术性问题&HR问题汇总
|
SQL 网络协议 Java
IT面试
一、找工作前的准备 《王道程序员求职宝典》、《剑指 offer》、上课笔记+代码+视频、项目代码、简历。 二、面试流程 1. 一般都是先做一套笔试题,大概三十分钟。 2. HR 问一些问题,比如:为什么离职?之前在什么公司上班?薪水多少? 3. 技术面试,首先问你笔试
144 0
|
Java
面试资料链接
面试资料链接
134 0
|
开发工具 git 数据格式
面试被虐记
茫茫题海好像旷野,突发奇想,想要记录一下曾经面试被虐的自己,看看自己当时是怎么被花式吊打的... Python常见的几个面试题 值传递和引用传递 下面代码会输出什么: def f(x,l=[]): for i in range(x): l.