知识点、线程池、spring 代理机制、RPC、事务、负载均衡、HA、联合索引

1.什么叫线程池吗?

所谓的线程池指的就是一组线程对象被统一的一个外部对象包装(池对象),而后在这个池里面就可以利用这些线程对象一起完成更高效的程序开发,也就是所有的任务的执行都是

采用了并发执行的模式完成。而JDK 1.5之后提供有java.util.concurrent开发包,这个开发包就是负责并发执行的操作开发包。

2.spring代理机制

JDK自带实现方法 和 用CGLIB包实现 区别和优缺点

区别:JDK需要接口,CGLIB不需要接口,Java中的动态代理设计需要以接口为操作依据,需要实现InvocationHandler接口;而使用CGLIB可以利用共同的父类来实现动态代理设计模

式。

JDK的动态代理机制只能代理实现了接口的类,而不能实现接口的类就不能实现JDK的动态代理,cglib是针对类来实现代理的,他的原理是对指定的目标类生成一个子类,并覆盖其中

方法实现增强,但因为采用的是继承,所以不能对final修饰的类进行代理。

3.怎么实现本地远程调用(RPC)?

WEBSERVICE,RMI、MINA、ESB、 Burlap、Hessian、SOAP、EJB和JMS 等

4.手写复杂SQL语句

见ORACLE笔记,就不告诉你第几页

5.AOP做事务控制

老李说,我们就拿它弄个事务控制

Spring的面向切面编程(AOP)底层实现原理是动态代理

基于AOP技术实现的声明式事务管理,实质就是:在方法执行前后进行拦截,然后在目标方法开始之前创建并加入事务,执行完目标方法后根据执行情况提交或回滚事务。

声明式事务管理又有两种方式:一种是基于XML配置文件的方式;另一种是在业务方法上添加@Transactional注解,将事务规则应用到业务逻辑中(一般定义在service层)。

6.事务的传播性和隔离性?

一、事务的四个特性

原子性:一个事务中所有对数据库的操作是一个不可分割的操作序列,要么全做,要么全不做。

一致性:数据不会因为事务的执行而遭到破坏。

隔离性:一个事务的执行,不受其他事务(进程)的干扰。既并发执行的个事务之间互不干扰。

持久性:一个事务一旦提交,它对数据库的改变将是永久的。

事务具有7个传播级别和4个隔离级别,传播级别定义的是事务创建的时机,隔离级别定义的是对并发事务数据读取的控制。

http://blog.csdn.net/yang1982_0907/article/details/44408809

7.消息中间件

消息中间件利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程

间的通信。

kafka,activeMQ

消息中间件为应用系统提供高效、灵活的消息同步和异步传输处理、存储转发、可靠传输。在大规模分布式环境下确保消息安全、可靠、高效送达。

特点:

1.分布式环境下,可靠、高效的消息传输

产品容错能力强,系统崩溃时不会导致消息丢失,确保关键业务数据的可靠传输;支持断点续传和消息流量控制,使消息引擎能够最大效率地利用网络传输能力。

2.多种集群方式,稳定高效

InforSuite MQ的若干节点可以组建为多种方式的群组,对外提供消息接收和处理功能。当单个节点无法满足大负载的消息处理要求,可以使用集群功能将负载分配到多个节点上,提高系统的

处理能力和可扩展性。

3.全方位的安全机制保障

产品提供多层次的安全管理功能,包括连接建立时的网络认证,消息传输时的安全性保证,有效保证了连接的合法性和私有数据的保密性。

一般都是银行类大系统,军工或者研究所的大项目,存在很多数据传输的时候需要,可以咨询国内的一些基础中间件公司,就那么几家,中创中间件、东方通中间件、金蝶等,可以多了解

8.负载均衡

在互联网高速发展的时代,大数据量、高并发等是互联网网站提及最多的。如何处理高并发带来的系统性能问题,最终大家都会使用负载均衡机制。它是根据某种负载策略把请求分发到集群

中的每一台服务器上,让整个服务器群来处理网站的请求。

负载均衡 建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性;

nginx , HA

https://my.oschina.net/bigdataer/blog/486770

9.缓存

所谓的缓存从广义上来讲:提升数据的查询性能。通过整个的计算机的结构来讲,CPU所需要的数据通过内存取得,而内存的数据可以通过磁盘加载完成。但是在整个的项目的开发环节过程之

中会出现一种可怕的问题:就是说计算机可能很忙碌,一个进程需要进行磁盘文件的读取,需要1S的时间,但是如果说现在有20W个进程同时需要进行数据的读取过程,那么这个过程就有可能

造成计算机的假死状态。所以现在的开发基本上需要解决最大的问就在于:内存和磁盘之间的数据读取效率问题。 所以这个时候发现程序效率最大的问题都来自于磁盘。

缓存一般分为两种:一级缓存(单个用户、SqlSession)、二级缓存(所有用户、SqlSessionFactory)。 当你使用了缓存的话,就意味着你丧失了自动数据同步的功能支持。也就是说在内

存中的数据与数据表中的数据可能不一致。

10.mysql索引 :

MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等

联合索引和B树索引 :

如果对多列进行索引(组合索引),列的顺序非常重要,MySQL仅能对索引最左边的前缀进行有效的查找。

联合索引:

一般情况下是对表的单列数据建立索引,对于多列(id和name组合,或者,name和id组合),也可以建立索引。联合索引,也称之为组合索引。

创建时一并创建联合索引

create table test(

a int,

b int,

c int,

KEY a(a,b,c)

);

往已创建的数据表追加联合索引

alter table users add index lname_fname_age(lname,fname,age);

http://www.cnblogs.com/gudi/archive/2014/10/29/4058411.html

联合索引与单列索引的区别:联合索引的查询性能好于多个单列索引的查询性能

B树索引:

B+树在数据库中的应用

{

为什么使用B+树?言简意赅,就是因为:

1.文件很大,不可能全部存储在内存中,故要存储到磁盘上

2.索引的结构组织要尽量减少查找过程中磁盘I/O的存取次数(为什么使用B-/+Tree,还跟磁盘存取原理有关。)

3.局部性原理与磁盘预读,预读的长度一般为页(page)的整倍数,(在许多操作系统中,页得大小通常为4k)

4.数据库系统巧妙利用了磁盘预读原理,将一

创建索引的原则

索引就是为了提高查询性能,如果要对数据库进行频繁做DML操作,反而会降低性能

11.HashMap 源码解读

HashMap多线程并发

HashMap不是线程安全的,如果想要线程安全的HashMap,可以通过Collections类的静态方法synchronizedMap获得线程安全的HashMap。HashMap是非线程安全的,多个线程put的时候造成了某个key值Entry key List的死循环,建议在这样的场景下应采用"ConcurrentHashMap".注意:不合理使用HashMap导致出现的是死循环而不是死锁。

HashMap与ConcurrentHashMap的区别 如何解决Hash冲突

支持检索的完全并发和更新的所期望可调整并发的哈希表。

分析Hashtable知道,synchronized是针对整张Hash表的,即每次锁住整张表让线程独占,ConcurrentHashMap允许多个修改操作并发进行,其关键在于使用了锁分离技术。它使用了多个锁来控制对hash表的不同部分进行的修改。ConcurrentHashMap内部使用段(Segment)来表示这些不同的部分,每个段其实就是一个小的hash table,它们有自己的锁。只要多个修改操作发生在不同的段上,它们就可以并发进行。

http://www.cnblogs.com/ITtangtang/p/3948786.html

12.java内存模型的划分

GC过程 原理 什么时候发生GC? GC期做了什么?

内存模型划分:几块,程序计数器流程,本地方法区,Java堆

什么时候出发Full GC

Java内存管理图(背)

13.网络状态码 204,302,502

100-199 用于指定客户端应相应的某些动作。 200-299 用于表示请求成功。 300-399 用于已经移动的文件并且常被包含在定位头信息中指定新的地址信息。 400-499 用于指出客户端的错误。 500-599 用于支持服务器错误。

204 (No Content/无内容) 在并没有新文档的情况下,204 (SC_NO_CONTENT)确保浏览器继续显示先前的文档。这各状态码对于用户周期性的重载某一页非常有用,并且你可以确定先前的页面是否已经更新。

302 (Found/找到) 与301有些类似,只是定位头信息中所给的URL应被理解为临时交换地址而不是永久的。注意:在 HTTP 1.0中,消息是临时移动(Moved Temporarily)的而不是被找到,因此HttpServletResponse中的常量是SC_MOVED_TEMPORARILY不是我们以为的SC_FOUND。

出现502的原因是:对用户访问请求的响应超时造成的

14.单例模型(会手写)

两种模式 懒汉和饿汉 饿汉模式是线程安全

为什么是线程安全? 出现不安全情况怎么处理?

15.复杂SQL(会手写)

16.快速排序,二叉树 自己百度去

17.RPC

远程过程调用协议

18.事务处理

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,219评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,363评论 1 293
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,933评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,020评论 0 206
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,400评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,640评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,896评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,597评论 0 199
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,327评论 1 244
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,581评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,072评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,399评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,054评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,083评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,849评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,672评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,585评论 2 270

推荐阅读更多精彩内容

  • 文/帅姐赖皮红 你有没有注意到,微信登录界面的那个小伙子,站在地球上,用45度角优雅仰望广寒宫,无论烈日炎炎还是风...
    帅姐赖皮红阅读 957评论 42 25
  • 今天去学校分课,安排学校工作。我的课程,工作内容变化挺大。以前从没接触过教务方面的工作,校长没和我打招呼,直接安排...
    四叶草hr阅读 121评论 0 2