首页 存档 技术 查看内容

【干货】java面试必考知识点

2018-3-30 13:00 |来自: 互联网 273 0

摘要: 官方微博:动力节点 文章来源:简书 1.spring IOC, AOP,spring mvc,事务 AOP(面向方面编程),OOP(面向对象编程)的补充和完善。OOP引入封装、继承和多态性等概念来建立一种对象层次结构,用以模拟公共行为的一个集 ...

官方微博:动力节点

文章来源:简书


1.spring IOC, AOP,spring mvc,事务


AOP(面向方面编程),OOP(面向对象编程)的补充和完善。OOP引入封装、继承和多态性等概念来建立一种对象层次结构,用以模拟公共行为的一个集合。当我们需要为分散的对象引入公共行为的时候,OOP则显得无能为力。也就是说,OOP允许你定义从上到下的关系,但并不适合定义从左到右的关系。


AOP代表的是一个横向的关系,如果说“对象”是一个空心的圆柱体,其中封装的是对象的属性和行为。权限认证、日志、事务处理。


动态代理:代理的目的是调用目标方法的时候可以转而执行InvocationHandler类的invoke方法,所以就可以在调用invoke前后加入自己的业务代码。使用反射的机制,通过参数和代理方法自动生成代理的代码。


实现方式:


1.jdk动态代理: InvocationHandler接口(invoke()方法),Proxy对象,实现了接口的类生 成代理。


2.Cglib,针对类实现代理.


2.高并发


一个字:分

分而治之,多级分流

浏览器端、服务器前端、中间层、数据库端

每个地方都有可以分流的可能。

通用措施:


1、网页尽量静态化,减少后台请求次数,动态资源和静态资源分离;

2、CDN,加强网络层硬件配置,硬的不行来软的。;

3、负载均衡;


4、使用单独的图片服务器,降低服务器压力,使其不会因为图片加载造成崩溃

5、分布式缓存,对常用功能建立缓存模块;

7、数据库读写分离或数据切分(垂直或水平);

8、服务分布式部署。

9、使用镜像解决不同网络接入商和不同地域用户访问差异.


3.缓存


redis,memcached

redis数据类型:String,Hash,List,Set,Sorted set


4.session


一个会话级的cookie,外加服务器端内存中一组散列表。cookie不写在磁盘上,而是存在于浏览器缓存。


Session实现原理


1、创建Session的时候,服务器将生成一个唯一的sessionid然后用它生成一个关闭浏览器就会失效的cookie。

2、然后再将一个与这个sessionid关联的数据项加入散列表。

sessionid username

123 23


3、当浏览器端提交到服务器时,会通过sessionid=123去散列表中寻找属于该用户的Session信息。


5.servlet


Servlet的生命周期是由Servlet的容器来控制的,它可以分为3个阶段;初始化,运行,销毁。


初始化阶段:


1.Servlet容器加载servlet类,把servlet类的.class文件中的数据读到内存中。

2.然后Servlet容器创建一个ServletConfig对象。ServletConfig对象包含了Servlet的初始化配置信息。


3.Servlet容器创建一个servlet对象。

4.Servlet容器调用servlet对象的init方法进行初始化。


运行阶段:


当servlet容器接收到一个请求时,servlet容器会针对这个请求创建servletRequest和servletResponse对象。


然后调用service方法。并把这两个参数传递给service方法。Service方法通过servletRequest对象获得请求的信息。并处理该请求。再通过servletResponse对象生成这个请求的响应结果。然后销毁servletRequest和servletResponse对象。我们不管这个请求是post提交的还是get提交的,最终这个请求都会由service方法来处理。


销毁阶段:


当Web应用被终止时,servlet容器会先调用servlet对象的destrory方法,然后再销毁servlet对象,同时也会销毁与servlet对象相关联的servletConfig对象。我们可以在destroy方法的实现中,释放servlet所占用的资源,如关闭数据库连接,关闭文件输入输出流等。

在这里该注意的地方:


在servlet生命周期中,servlet的初始化和和销毁阶段只会发生一次,而service方法执行的次数则取决于servlet被客户端访问的次数。


6.mysql.oralce 优化策略


1.索引

2.用具体的字段列表代替“*"

3.exists 代替 in

4.尽量避免在where子句中对字段使用函数

5.能用 between 就不要用 in 了


6.避免在 where 子句中使用 or 来连接条件

7.尽量避免在 where 子句中对字段进行 null 值判断

8.尽量避免在 where 子句中使用!=或

声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部