java中级或者高级面试题分享
一. 基础知识:
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中级或者高级面试题分享的更多相关文章
- 阿里Java中级开发测试相关试题及答案
------------恢复内容开始------------ 1.JSP文件上传的HTML标签代码定义是? A. <input type="text" name=" ...
- Java工程师书单(初级、中级、高级)
简介 怎样学习才能从一名Java初级程序员成长为一名合格的架构师,或者说一名合格的架构师应该有怎样的技术知识体系,这是不仅一个刚刚踏入职场的初级程序员也是工作一两年之后开始迷茫的程序员经常会问到的问题 ...
- Java高级面试题解析(一)
最近,在看一些java高级面试题,我发现我在认真研究一个面试题的时候,我自己的收获是很大的,我们在看看面试题的时候,不仅仅要看这个问题本身,还要看这个问题的衍生问题,一个问题有些时候可能是一个问题群( ...
- php高级面试题知识点(转载)
php高级面试题知识点大全 时间:2016-01-26 06:36:22来源:网络 导读:php高级面试题知识点大全,本套面试题内容包括php魔术方法.php单点登录.linux基本命令.前端开发技术 ...
- java学习路线(好资源大家分享)
对于入门java将近两年的时间,曾经迷惘过,一直想知道java的具体学习路线,看过了许许多多的java经验分享的帖子,评论,以及其他各种培训机构所谓的学习路线,发现没有一个符合我个人需求的学习路线,根 ...
- 350道面试题分享,拿下京东offer工资double
350道面试题分享,拿下京东offer工资double 前言: 面试,其实是一个双向选择的过程,在这个过程里,我们不应该抱着畏惧的心态去对待,这样反而会影响自己的发挥.同时看中的应该不止薪资,还要看你 ...
- 程序员Java架构师多线程面试题和回答解析
当我们在Java架构师面试的过程中常见的多线程和并发方面的问题肯定是必不可少的一部分.那么在面试之前我们更应该多准备一些关于多线程方面的问题. 面试官只是想确信面试者有足够的Java线程与并发方面的知 ...
- 从程序员到CTO的Java技术路线图(我爱分享)
在技术方面无论我们怎么学习,总感觉需要提升自已不知道自己处于什么水平了.但如果有清晰的指示图供参考还是非常不错的,这样我们清楚的知道我们大概处于那个阶段和水平. Java程序员 高级特性 反射.泛型. ...
- 对 Linux 初级、中级、高级用户非常有用的 60 个命令
对 Linux 初级.中级.高级用户非常有用的 60 个命令 初级篇: 你打算从Windows换到Linux上来,还是你刚好换到Linux上来?哎哟!!!我说什么呢,是什么原因你就出现在我的世界里了. ...
随机推荐
- python之地基(三)
一.引用计数和垃圾回收机制 当一个执行程序完毕后,回收变量所占据的内存. 当引用计数变为0的时候,回收变量所占据的内存. a=100 print(id(a)) a=input('==>:') # ...
- jdbc连接数据库以及crud(简单易懂,本人亲测可用 有源代码和数据库)
今天呢!重新整理了一边jdbc的相关操作:现在来说对于很多框架都使用mybatis和hibernate来操作数据库 ,也有很多使用自己简单封装的ssm或者是其他的一些框架来操作数据库,但是无论使用哪一 ...
- maven中运行java程序
从命令行运行1.运行前先编译代码,exec:java不会自动编译代码,你需要手动执行mvn compile来完成编译.mvn compile2.编译完成后,执行exec运行main方法. 不需要传递参 ...
- Echarts折线图案例
公司要求做个累计收益图,没用过Echarts,再这里记录一下 html页面 <!DOCTYPE html> <html> <head> <meta chars ...
- ELK配置
安装logstash docker pull logstash docker run -it --rm logstash -e 'input { stdin { } } output { stdout ...
- javafx由浅到深的 认识(一)
javafx是一款比较新兴的语言框架,随着javafx越来越实用,估计许多程序员也会慢慢接触它,故我在这里对它由浅到深进行介绍一下. 首先,要了解javafx,就应该先知道.xml文件的布局软件,以往 ...
- c++ 开源库介绍和安装
1 BLAS库 BLAS(Basic Linear Algebra Subprograms)是一组线性代数计算中通用的基本运算操作函数集合.BLAS Technical (BLAST) Forum负责 ...
- 原生js触碰到底部触发函数;
/** function __morebook(){ console.log(123) } ScrollBottom(function(){__morebook();}); **/ //如果直接写一个 ...
- tomcat指定运行jdk
set JAVA_HOME=D:\Program Files\Java\jdk7\jdk1.7.0_51 set JRE_HOME=D:\Program Files\Java\jdk7\jre7路径根 ...
- AnjularJs教程
原文地址:https://www.angular.cn/guide/quickstart#step-1-install-the-angular-cli