高级Java程序员 面试必备知识点概括

一,web系统知识

基础
1、集合: http://blog.csdn.net/hellothejava/article/details/73457937
1.ArrayList、Vector、HashMap、HashTable、HashSet的默认初始容量、加载因子、扩容增量:http://www.cnblogs.com/xiaoming0601/p/5864106.html
2、hasmap :http://www.cnblogs.com/chenssy/p/3521565.html 哈希表,table 链,动态扩容
3、transient:当对象被序列化时(写入字节序列到目标文件)时,transient会阻止实例中那些用transient声明的变量持久化;当对象被反序列化时(从源文件读取字节序列进行重构),这样的实例变量值不会被持久化和恢复。
4、try catch finally :http://blog.csdn.net/hellothejava/article/details/73467833
5、动态代理:Java类创建、静态代理、动态代理机制详解(ASM、Javassist、JDK 、CGLIB)http://blog.csdn.net/hellothejava/article/details/73458945
6、局部域、成员变量:http://blog.csdn.net/hellothejava/article/details/73465944
7、经典设计模式(附实例和详解): http://blog.csdn.net/hellothejava/article/details/73466846
8、代理模式和装饰模式区别:代理模式中,代理类对被代理的对象有控制权,决定其执行或者不执行。而装饰模式中,装饰类对代理对象没有控制权,只能为其增加一层装饰,以加强被装饰对象的功能,仅此而已

框架
1、spring aop ioc 、spring事务原理:
2、springaop事务配置:
3、spring 管理service controller吗:
4、spring代理方式
5、springmvc一次请求的过程:
6、spring是否管理数据库连接:
7、ServiceA调取ServiceB,ServiceB里面是trycatch的,抛异常了,serviceA中的事务会怎么样——被标记为rollback-only
8、servlet struts2 springmvc 是否线程安全:
9、Servlet的生命周期(单实例多线程):
10、spring中的scope详解:http://blog.csdn.net/jacklearntech/article/details/40157861

jvm–http://www.ityouknow.com/java/2017/03/01/jvm-overview.html
1、classloader机制 类加载器有哪些,都分别加载哪些类:
2、jvm内存的划分,一个对象从创建到销毁经过的周期:
3、jvm 调优
4、
5、Java类加载器ClassLoader总结:http://www.cnblogs.com/doit8791/p/5820037.html
6、类创建、jvm内存分析
7、一份关于jvm内存调优及原理的学习笔记:http://www.cnblogs.com/RUN-TIME/archive/2016/04/29/5445115.html
8、垃圾回收机制
9、反射中Class.forName()和ClassLoader.loadClass()的区别:http://www.cnblogs.com/zabulon/p/5826610.html

多线程、高并发、高压力
1、多线程生命周期
2、IO的方式通常分为几种,同步阻塞的BIO、同步非阻塞的NIO、异步非阻塞的AIO。
3、Junit 测试多线程问题:main 方法中有一个守护线程,可以测试多线程,但是单元测试,没有守护线程,启动线程会出问题,需要Thread.currentThread().sleep(10000);留足时间,允许多线程可以执行完毕
4、concurrenthashmap:http://www.cnblogs.com/ITtangtang/p/3948786.html ConcurrentHashMap(整个Hash表),Segment(桶)–hashtable,HashEntry(节点)
5、threadlocal:http://blog.csdn.net/lufeng20/article/details/24314381 threadLocal currentThread threadLocalMap 每个线程拥有自己的一个变量
6、threadpool、fixedthreadpool:http://www.cnblogs.com/zhujiabin/p/5404771.html 线程池类型 是否固定数量、是否可定时、是否可以制定规则、是否有返回值
7、spring 配置线程池 wlgateway -ThreadPoolTaskExecutor
8、synchronized:http://blog.csdn.net/luoweifu/article/details/46613015
9、synchronized&ReentrantReadWriteLock
10、java中volatile关键字的含义:http://www.cnblogs.com/aigongsi/archive/2012/04/01/2429166.html用volatile修饰的变量,线程在每次使用变量的时候,都会读取变量修改后的最新的值,但是volatile不具有原子性操作。
11、两条更新语句,操作同一条数据,会出现什么问题,不同时提交:spring3.x企业应用开发实战,更新语句为行独占锁或表独占锁、会出现提交异常????
12、 java多线程并发系列之闭锁(Latch)和栅栏(CyclicBarrier):
http://www.cnblogs.com/fanxiaojun/p/4914312.htmlhttp://blog.csdn.net/yujin753/article/details/46125283
栅栏:所有的线程必须同时到达栅栏位置,再全部同时执行后面任务。闭锁用于等待事件,而栅栏用于等待其他线程,一个线程组。
13、Semaphore(信号量、互斥),FutureTask:http://blog.csdn.net/wuseyukui/article/details/49589159
14、多线程并发更新同一条记录:https://my.oschina.net/h2do/blog/297811
15、高并发多线程(常用类):ConcurrentHashMapthreadlocal sychronized reentrantReadWritelock,AtomicInteger
16、juc类关系图
分布式、缓存、
1、zookeeper:http://www.cnblogs.com/felixzh/p/5869212.html
2、dubbo:http://www.cnblogs.com/suneryong/articles/3552387.html
监控中心与注册中心区别:http://feiteyizu.iteye.com/blog/2241980
dubbo专题系列:http://blog.csdn.net/column/details/learningdubbo.html
3、redis的会问下数据结构,集群方式、redis持久化:http://blog.csdn.net/u012129558/article/details/51507588
4、消息队列
5、soa:面向服务的架构
6、分布式多数据源配置
7、分布式锁:http://blog.csdn.net/zdy0_2004/article/details/53070209
redis 实现分布式锁:http://www.cnblogs.com/0201zcr/p/5942748.html实现思路: 主要是使用了redis 的setnx命令,缓存了锁. * reids缓存的key是锁的key,所有的共享, value是锁的到期时间(注意:这里把过期时间放在value了,没有在时间上设置其超时时间),可以防止死锁
8、分布式事务:http://www.cnblogs.com/baiwa/p/5328722.htmlhttp://blog.jobbole.com/89140/
9、接口数据被抓包,如何保证安全

数据库
1、增删改查sql
3、
4、数据库隔离级别,数据库事务:
5、乐观锁+悲观锁:http://www.cnblogs.com/xiohao/p/4385508.html
乐观锁+悲观锁+oracle多版本控制+行级锁+可重复读
6、MySQL存储引擎--MyISAM与InnoDB区别:http://blog.csdn.net/xifeijian/article/details/20316775
7、mysql分页的查询为何越来越慢/如何优化—top10数据查询:select * from product limit 10, 20 0.016秒 如何优化
8、oracle top10 ,及分页查询格式:
SELECT * FROM
(SELECT A.*, ROWNUM RN
FROM (SELECT * FROM TABLE_NAME) A
WHERE ROWNUM <= 10
)
WHERE RN >= 1

服务器
1、tomcat 内幕
2、Nginx配置

二、web系统优化

一、前端优化
1、js、图片 、 CDN 缓存、
二、后端优化

2.1服务器端优化

1、利用F5负载设备提供集群服务
2、nosql缓存(非关系型数据库缓存memcacheD、memcacheDB、redis…)
3、消息队列

2.2数据库端优化

1、数据库读写分离
2、降低过度查询来减少sql查询次数,
3、会运用SQL优化来降低数据库io,
4、拆库、水平拆分表来增加可扩展性

nginx tomcat session 会话保持

有时候面试会问你看过那些书籍:
13、:effectiveJava 、Javathinking 、大型网站技术架构:核心原理与案例分析、spring3.x企业应用开发实战、看透springMvc源代码分析与实践,mybatis 代码分析、Java并发编程的艺术。。。

其他补充

kryo 序列化 fst:http://www.xuetimes.com/archives/572
优化内存、cpu,jvm
elasticsearch
redis 集群 方式
如果访问的数据,在redis 缓存中没有,该如何处理
redis客户端工具用什么:redis desktop manager
分布式事务管理
如何查看sql执行计划
Jetty
Netty
shiro可以实现权限控制

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值