java 需要准备的知识(转摘)
需要准备的知识
以下为在近期面试中比较有印象的问题,也就不分公司了,因为没什么意义,大致分类记录一下,目前只想起这么多,不过一定要知道这些问题只是冰山一角,就算都会了也不能怎么样,最最重要的,还是坚实的基础,清醒的头脑。
Java基础
- HashMap的源码,实现原理,JDK8中对HashMap做了怎样的优化。
- HaspMap扩容是怎样扩容的,为什么都是2的N次幂的大小。
- HashMap,HashTable,ConcurrentHashMap的区别。
- 极高并发下HashTable和ConcurrentHashMap哪个性能更好,为什么,如何实现的。
- HashMap在高并发下如果没有处理线程安全会有怎样的安全隐患,具体表现是什么。
- java中四种修饰符的限制范围。
- Object类中的方法。
- 接口和抽象类的区别,注意JDK8的接口可以有实现。
- 动态代理的两种方式,以及区别。
- Java序列化的方式。
- 传值和传引用的区别,Java是怎么样的,有没有传值引用。
- 一个ArrayList在循环过程中删除,会不会出问题,为什么。
- @transactional注解在什么情况下会失效,为什么。
数据结构和算法
- B+树
- 快速排序,堆排序,插入排序(其实八大排序算法都应该了解
- 一致性Hash算法,一致性Hash算法的应用
JVM
- JVM的内存结构。
- JVM方法栈的工作过程,方法栈和本地方法栈有什么区别。
- JVM的栈中引用如何和堆中的对象产生关联。
- 可以了解一下逃逸分析技术。
- GC的常见算法,CMS以及G1的垃圾回收过程,CMS的各个阶段哪两个是Stop the world的,CMS会不会产生碎片,G1的优势。
- 标记清除和标记整理算法的理解以及优缺点。
- eden survivor区的比例,为什么是这个比例,eden survivor的工作过程。
- JVM如何判断一个对象是否该被GC,可以视为root的都有哪几种类型。
- 强软弱虚引用的区别以及GC对他们执行怎样的操作。
- Java是否可以GC直接内存。
- Java类加载的过程。
- 双亲委派模型的过程以及优势。
- 常用的JVM调优参数。
- dump文件的分析。
- Java有没有主动触发GC的方式(没有)。
多线程
- Java实现多线程有哪几种方式。
- Callable和Future的了解。
- 线程池的参数有哪些,在线程池创建一个线程的过程。
- volitile关键字的作用,原理。
- synchronized关键字的用法,优缺点。
- Lock接口有哪些实现类,使用场景是什么。
- 可重入锁的用处及实现原理,写时复制的过程,读写锁,分段锁(ConcurrentHashMap中的segment)。
- 悲观锁,乐观锁,优缺点,CAS有什么缺陷,该如何解决。
- ABC三个线程如何保证顺序执行。
- 线程的状态都有哪些。
- sleep和wait的区别。
- notify和notifyall的区别。
- ThreadLocal的了解,实现原理。
数据库相关
- 常见的数据库优化手段
- 索引的优缺点,什么字段上建立索引
- 数据库连接池。
- durid的常用配置。
计算机网络
- TCP,UDP区别。
- 三次握手,四次挥手,为什么要四次挥手。
- 长连接和短连接。
- 连接池适合长连接还是短连接。
设计模式
- 观察者模式
- 代理模式
- 单例模式,有五种写法,可以参考文章单例模式的五种实现方式
- 可以考Spring中使用了哪些设计模式
分布式相关
- 分布式事务的控制。
- 分布式锁如何设计。
- 分布式session如何设计。
- dubbo的组件有哪些,各有什么作用。
- zookeeper的负载均衡算法有哪些。
- dubbo是如何利用接口就可以通信的。
缓存相关
- redis和memcached的区别。
- redis支持哪些数据结构。
- redis是单线程的么,所有的工作都是单线程么。
- redis如何存储一个String的。
- redis的部署方式,主从,集群。
- redis的哨兵模式,一个key值如何在redis集群中找到存储在哪里。
- redis持久化策略。
框架相关
- SpringMVC的Controller是如何将参数和前端传来的数据一一对应的。
- Mybatis如何找到指定的Mapper的,如何完成查询的。
- Quartz是如何完成定时任务的。
- 自定义注解的实现。
- Spring使用了哪些设计模式。
- Spring的IOC有什么优势。
- Spring如何维护它拥有的bean。
一些较新的东西
- JDK8的新特性,流的概念及优势,为什么有这种优势。
- 区块链了解
- 如何设计双11交易总额面板,要做到高并发高可用。
一些小建议
- 可以去leetcode上刷题换换思路。
- 八大排序算法一定要手敲一遍(快排,堆排尤其重要)。
- 了解一些新兴的技术。
- 面试之后面试官都会问你有没有什么问题,千万不要没问题,也别傻乎乎的问一些敏感问题。
- 了解你要面试的公司的产品及竞争产品。
几个链接
java 需要准备的知识(转摘)的更多相关文章
- Java 代码的基本知识(摘)
(摘自:Java经典入门教程) http://wenku.baidu.com/link?url=IoWI58cD5vzeHN-NL4pN7Gren-RfzydrhjDlETAByC9L-9ANinyL ...
- 【Java面试】基础知识篇
[Java面试]基础知识篇 Java基础知识总结,主要包括数据类型,string类,集合,线程,时间,正则,流,jdk5--8各个版本的新特性,等等.不足的地方,欢迎大家补充.源码分享见个人公告.Ja ...
- 第76节:Java中的基础知识
第76节:Java中的基础知识 设置环境,安装操作系统,安装备份,就是镜像,jdk配置环境,eclipse下载解压即可使用,下载tomcat 折佣动态代理解决网站的字符集编码问题 使用request. ...
- JAVA 变量 数据类型 运算符 知识小结
---------------------------------------------------> JAVA 变量 数据类型 运算符 知识小结 <------------------ ...
- Java面试题-基础知识
参考文章:Java面试题-基础知识 基础能力 什么是值传递和引用传递 线程状态有哪些,它们之间是如何转换的 进程与线程的区别,进程间如何通讯,线程间如何通讯? HashMap的数据结构是什么?如何实现 ...
- JAVA核心技术I---JAVA基础知识(工具类Arrays和Collections类)
一:工具类 –不存储数据,而是在数据容器上,实现高效操作 • 排序 • 搜索 –Arrays类 –Collection类 二:Arrays类(处理数组) (一)基本方法 –排序:对数组排序, sort ...
- JAVA核心技术I---JAVA基础知识(static关键字)
一:static特殊关键字用处 –变量 –方法 –类 –匿名方法 二:静态变量:类共有成员 –static变量只依赖于类存在(通过类即可访问),不依赖于对象实例存在. –所有的对象实例,对于静态变量都 ...
- Java JDBC的基础知识(三)
在前面的Java JDBC的基础知识(二)和(三)中,主要介绍JDBC的原理和简单的应用过程.尤其在(二)中,可以发现代码进行多次try/catch,还有在前面创建连接等过程中好多参数我都给写定了. ...
- Java JDBC的基础知识(二)
在我的上一篇Java JDBC的基础知识(一)中,最后演示的代码在关闭资源的时候,仅仅用了try/catch语句,这里是有很大的隐患的.在程序创建连接之后,如果不进行关闭,会消耗更多的资源.创建连接之 ...
随机推荐
- Let's Encrypt,免费好用的 HTTPS 证书
很早之前我就在关注 Let's Encrypt 这个免费.自动化.开放的证书签发服务.它由 ISRG(Internet Security Research Group,互联网安全研究小组)提供服务,而 ...
- C#配置文件config的使用
做程序的时候总会有一些参数,可能会调整,这时候一般情况下我都会写在配置文件里,这样方便一点. 配置文件的读取 <?xml version="1.0" encoding=&qu ...
- [LeetCode] Zuma Game 祖玛游戏
Think about Zuma Game. You have a row of balls on the table, colored red(R), yellow(Y), blue(B), gre ...
- 持久化 XSS:ServiceWorkers 利用
来源:http://www.mottoin.com/95058.html 来源:https://www.owasp.org/images/3/35/2017-04-20-JSONPXSS.pdf Se ...
- codeforces 888G Xor-MST
You are given a complete undirected graph with n vertices. A number ai is assigned to each vertex, a ...
- [HEOI2015]兔子与樱花
Description 很久很久之前,森林里住着一群兔子.有一天,兔子们突然决定要去看樱花.兔子们所在森林里的樱花树很特殊.樱花树由n个树枝分叉点组成,编号从0到n-1,这n个分叉点由n-1个树枝连接 ...
- BZOJ 4260 Codechef REBXOR
Description Input 输入数据的第一行包含一个整数N,表示数组中的元素个数. 第二行包含N个整数A1,A2,…,AN. Output 输出一行包含给定表达式可能的最大值. Sample ...
- [JLOI2015]城池攻占
题目描述 小铭铭最近获得了一副新的桌游,游戏中需要用 m 个骑士攻占 n 个城池.这 n 个城池用 1 到 n 的整数表示.除 1 号城池外,城池 i 会受到另一座城池 fi 的管辖,其中 fi &l ...
- [AH/HNOI2017]大佬
题目描述 人们总是难免会碰到大佬.他们趾高气昂地谈论凡人不能理解的算法和数据结构,走到任何一个地方,大佬的气场就能让周围的人吓得瑟瑟发抖,不敢言语. 你作为一个 OIER,面对这样的事情非常不开心,于 ...
- ●UOJ58 [WC2013]糖果公园
题链: http://uoj.ac/problem/58题解: 树上带修莫队. 每个块的大小为$n^{\frac{2}{3}}$,在dfs时,把点集分为若干块. 然后类似序列带修莫队,三个关键字:be ...