一. 基础知识:

1)集合类:List和Set比较,各自的子类比较(ArrayList,Vector,LinkedList;HashSet,TreeSet);

2)HashMap的底层实现,之后会问ConcurrentHashMap的底层实现;

3)如何实现HashMap顺序存储:可以参考LinkedHashMap的底层实现;

4)HashTable和ConcurrentHashMap的区别;

5)String,StringBuffer和StringBuilder的区别;

6)Object的方法有哪些:比如有wait方法,为什么会有;

7)wait和sleep的区别,必须理解;

8)JVM的内存结构,JVM的算法;

9)强引用,软引用和弱引用的区别;

10)数组在内存中如何分配;

11)用过哪些设计模式,手写一个(除单例);

12)springmvc的核心是什么,请求的流程是怎么处理的,控制反转怎么实现的;

13)spring里面的aop的原理是什么;

14)mybatis如何处理结果集:反射,建议看看源码;

15)java的多态表现在哪里;

16)接口有什么用;

17)说说http,https协议;

18)tcp/ip协议簇;

19)osi五层网络协议;

20)tcp,udp区别;

21)用过哪些加密算法:对称加密,非对称加密算法;

22)说说tcp三次握手,四次挥手;

23)cookie和session的区别,分布式环境怎么保存用户状态;

24)git,svn区别;

25)请写一段栈溢出、堆溢出的代码;

26)ThreadLocal可以用来共享数据吗;

二. IO:

1)bio,nio,aio的区别;

2)nio框架:dubbo的实现原理;

3)京东内部的jsf是使用的什么协议通讯:可参见dubbo的协议;

三. 算法:

1)java中常说的堆和栈,分别是什么数据结构;另外,为什么要分为堆和栈来存储数据。

2)TreeMap如何插入数据:二叉树的左旋,右旋,双旋;

3)一个排序之后的数组,插入数据,可以使用什么方法?答:二分法;问:时间复杂度是多少?

4)平衡二叉树的时间复杂度;

5)Hash算法和二叉树算法分别什么时候用;

6)图的广度优先算法和深度优先算法:详见jvm中垃圾回收实现;

. 多线程相关:

1)说说阻塞队列的实现:可以参考ArrayBlockingQueue的底层实现(锁和同步都行);

2)进程通讯的方式:消息队列,共享内存,信号量,socket通讯等;

3)用过并发包的哪些类;

4)什么地方用了多线程;

5)Excutors可以产生哪些线程池;

6)为什么要用线程池;

7)volatile关键字的用法:使多线程中的变量可见;

五. 数据库相关(mysql):

1)msyql优化经验:

2)mysql的语句优化,使用什么工具;

3)mysql的索引分类:B+,hash;什么情况用什么索引;

4)mysql的存储引擎有哪些,区别是什么;

5)说说事务的特性和隔离级别;

6)悲观锁和乐观锁的区别,怎么实现;

六. mq:

1)mq的原理是什么:有点大。。都可以说;

2)mq如何保证实时性;

3)mq的持久化是怎么做的;

七. nosql相关(主要是redis):

1)redis和memcache的区别;

2)用redis做过什么;

3)redis是如何持久化的:rdb和aof;

4)redis集群如何同步;

5)redis的数据添加过程是怎样的:哈希槽;

6)redis的淘汰策略有哪些;

7)redis有哪些数据结构;

 

八. zookeeper:

1)zookeeper是什么;

2)zookeeper哪里用到;

3)zookeeper的选主过程;

4)zookeeper集群之间如何通讯;

5)你们的zookeeper的节点加密是用的什么方式;

6)分布式锁的实现过程;

九. linux相关:

1)linux常用的命令有哪些;

2)如何获取java进程的pid;

3)如何获取某个进程的网络端口号;

4)如何实时打印日志;

5)如何统计某个字符串行数;

十. 设计与思想:

1)重构过代码没有?说说经验;

2)一千万的用户实时排名如何实现;

3)五万人并发抢票怎么实现;

java中级或者高级面试题分享的更多相关文章

  1. 阿里Java中级开发测试相关试题及答案

    ------------恢复内容开始------------ 1.JSP文件上传的HTML标签代码定义是? A. <input type="text" name=" ...

  2. Java工程师书单(初级、中级、高级)

    简介 怎样学习才能从一名Java初级程序员成长为一名合格的架构师,或者说一名合格的架构师应该有怎样的技术知识体系,这是不仅一个刚刚踏入职场的初级程序员也是工作一两年之后开始迷茫的程序员经常会问到的问题 ...

  3. Java高级面试题解析(一)

    最近,在看一些java高级面试题,我发现我在认真研究一个面试题的时候,我自己的收获是很大的,我们在看看面试题的时候,不仅仅要看这个问题本身,还要看这个问题的衍生问题,一个问题有些时候可能是一个问题群( ...

  4. php高级面试题知识点(转载)

    php高级面试题知识点大全 时间:2016-01-26 06:36:22来源:网络 导读:php高级面试题知识点大全,本套面试题内容包括php魔术方法.php单点登录.linux基本命令.前端开发技术 ...

  5. java学习路线(好资源大家分享)

    对于入门java将近两年的时间,曾经迷惘过,一直想知道java的具体学习路线,看过了许许多多的java经验分享的帖子,评论,以及其他各种培训机构所谓的学习路线,发现没有一个符合我个人需求的学习路线,根 ...

  6. 350道面试题分享,拿下京东offer工资double

    350道面试题分享,拿下京东offer工资double 前言: 面试,其实是一个双向选择的过程,在这个过程里,我们不应该抱着畏惧的心态去对待,这样反而会影响自己的发挥.同时看中的应该不止薪资,还要看你 ...

  7. 程序员Java架构师多线程面试题和回答解析

    当我们在Java架构师面试的过程中常见的多线程和并发方面的问题肯定是必不可少的一部分.那么在面试之前我们更应该多准备一些关于多线程方面的问题. 面试官只是想确信面试者有足够的Java线程与并发方面的知 ...

  8. 从程序员到CTO的Java技术路线图(我爱分享)

    在技术方面无论我们怎么学习,总感觉需要提升自已不知道自己处于什么水平了.但如果有清晰的指示图供参考还是非常不错的,这样我们清楚的知道我们大概处于那个阶段和水平. Java程序员 高级特性 反射.泛型. ...

  9. 对 Linux 初级、中级、高级用户非常有用的 60 个命令

    对 Linux 初级.中级.高级用户非常有用的 60 个命令 初级篇: 你打算从Windows换到Linux上来,还是你刚好换到Linux上来?哎哟!!!我说什么呢,是什么原因你就出现在我的世界里了. ...

随机推荐

  1. 高可用Redis(一):通用命令,数据结构和内部编码,单线程架构

    1.通用API 1.1 keys命令和dbsize命令 keys * 遍历所有key keys [pattern] 遍历模式下所有的key dbsize 计算Redis中所有key的总数 例子: 12 ...

  2. 算法工程师<数学题/智力题>

    <数学题/智力题> 1.如果一个女生说,她集齐了十二个星座的前男友,我们应该如何估计她前男友的数量? https://blog.csdn.net/FnqTyr45/article/deta ...

  3. Docker动态给容器Container暴露端口

    查看Container的IP地址 docker inspect <container name or id>| grep IPAddress 查看Container的映射的端口 docke ...

  4. foot

    码云链接:https://gitee.com/zyyyyyyyyyyy/codes/rcfdzmin4a82v975pl1ko47 效果图: 原网站截图: 源代码: <!DOCTYPE html ...

  5. http强转https websocket

    需要在httpd.conf文件最后添加即可: <Directory /> Options FollowSymLinks AllowOverride All RewriteEngine on ...

  6. 2018年冬季寒假作业4--PTA 币值转换

    1. 实验代码: #include<stdio.h> int main (void) { int n, initial_n; scanf("%d", &n); ...

  7. Definition of matrix norms

    In my previous post, I introduced various definitions of matrix norms in \(\mathbb{R}^{n \times n}\) ...

  8. Jmeter3.2默认自带的HTML报告

    jmeter -JthreadNum=50 -JinSec=1 -Jduration=300 -n -t $JMETER_HOME/XNZX/scripts/XNZX_APP.jmx -l $JMET ...

  9. 通过反射实现get和set方法

    /* setter方法 o:要操作类的对象 args:属性名 attributeValue:属性值 */ public static void setXxx(Object o,String args, ...

  10. Exp1 PC平台逆向破解 20165235 祁瑛

    Exp1 PC平台逆向破解 20165235 祁瑛 实践目标 本次实践的对象是一个名为pwn1的linux可执行文件.该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字 ...