一、java

1、容器

  1)List

    Java中ArrayList和LinkedList区别

  2)Set

    理解HashSet及使用

  HashMap和HashSet的区别

  3Map

    HashMap的容量与扩容

  HashMap扩容机制、线程安全

  hashMap、hashTable、treeMap的区别

2、字符串

  1)String

    java中String类为什么要设计成不可变的

  为什么String对象不可变,而StringBuffer可变?

  2)Stringbuffer

  3)StringBuilder(线程安全的)

3、数组

  1)数组复制(Arrays.copyOf、System.arraycopy、for)

    Java中数组复制的几种方法

  2)数组扩容(Arrays.copyOf、System.arraycopy)

    Java数组扩容算法及Java对它的应用

  3)数组合并(Arrays.copyOf、System.arraycopy)

  4)数组排序(冒泡排序、插入排序、选择排序、快速排序、Arrays.sort)

  5)数组查找(二分法、Arrays.binarySearch)

4、多线程(生命周期、线程池)

  1)线程的创建(Thread、Runnable)

  2)线程声明周期

    创建、就绪、运行、阻塞、结束

    阻塞原因:线程阻塞的原因

  3)线程池

    Java四种线程池的使用

  4)ThreadLocal

    彻底理解ThreadLocal

  5)线程同步方式

    synchronized、Lock(重入锁)、ThreadLocal

  6)volatile

5、设计模式

  1)代理模式

    jdk

    cglib:CGLIB介绍与原理

6、jvm及gc

  jvm:计数器、栈、堆(新生代(Eden-E、From Survivor-S0、To Survivor-S1)、老年代-O、永久代-P)、方法去(老年代)

  gc算法:标记-清理、复制、标记-整理、分代

  gc方式:Minor GC(新生代)、Full GC(老年代、永久代)

  [转]JVM运行时内存结构      jvm中的新生代Eden和survivor区

  Java虚拟机(JVM)参数配置说明   JVM系列三:JVM参数设置、分析

  新生代如何转移到老年代

二、spring

1、IOC

  1)bean加载(BeanFactory和ApplicationContext区别)

  2)bean注入(设值、构造)

  3)scope(singleton、prototype、request、session、global session)

  4)bean生命周期

   Spring Bean的生命周期(非常详细)

  5)bean的自动装配(no、byName、byType、construct、autodetect)——开发中通过注解@Autowired实现

   Spring的自动装配Bean的三种方式

  6)BeanFactory和FactoryBean区别

   Spring BeanFactory与FactoryBean的区别及其各自的详细介绍于用法

   Spring中FactoryBean与BeanFactory的区别

2、AOP

  1)自定义类如何用spring实现AOP

    使用Spring的注解方式实现AOP

Spring AOP详解

  2)代理(jdk、cglib)

    在需要代理类而不是代理接口的时候,spring会自动切换为使用cglib代理。但spring推荐使用面向接口编程,因此业务对象通常都会实现一个或多个接口,此时默认将使用JDK动态代理,但也可以强制使用cglib代理。

      Spring AOP中强制使用CGLIB代理

Spring强制使用CGLIB代理事务

3、事务

  1)隔离性(Serializable、Repeatable read、Read committed、Read uncommitted)

    解决脏读、不可重读、泛读问题

  2)传播性

    解决事务创建时机问题

    PROPAGATION_REQUIRED--支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。 
    PROPAGATION_SUPPORTS--支持当前事务,如果当前没有事务,就以非事务方式执行。 
    PROPAGATION_MANDATORY--支持当前事务,如果当前没有事务,就抛出异常。 
    PROPAGATION_REQUIRES_NEW--新建事务,如果当前存在事务,把当前事务挂起。 
    PROPAGATION_NOT_SUPPORTED--以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。 
    PROPAGATION_NEVER--以非事务方式执行,如果当前存在事务,则抛出异常。

  注:事务的隔离级别及传播方式可通过下面方式配置(propagation配置传播方式默认为REQUIRED;isolation配置隔离级别,默认为DEFAULT,用的为数据库的默认隔离级别,大部分数据库默认隔离级别为READ_COMMITTED,mysql为REPEATABLE_READ)

  3)事务的实现原理

4、资源访问(Resource)

5、spring配置线程池

三、mysql

1、索引(唯一索引与其它索引的区别、索引原理、左优先)

  普通索引和唯一索引的区别、性能差异,以及其他索引简介

四、网络

1、tcp/ip

  1)tcp三次握手和四次握手

    TCP的三次握手(建立连接)和四次挥手(关闭连接)

2、http头信息

  http请求方式、host(服务器域名)、User-agent(客户端系统及浏览器信息)、Accept(浏览器接收内容类型)、Accept-language(浏览器语言)、Accept-Encoding(压缩编码类型)、Accept-Charset(字符编码集)、Content-Type(内容类型)、cookie

  HTTP消息中header头部信息的讲解

1、手写ArrayList

2、手写进制转换算法、求一个数的二进制的1的个数

3、spring类加载方式、反射、热部署

  Tomcat热部署的三种方式

4、tcp/ip五层模型(应用层(表示层、会话层)、传输层、网络层、数据链路层、物理层)、restful接口规范(get、post、put、delete)OSI七层模型与TCP/IP五层模型

5、get、post区别,长度,安全

  http://www.w3school.com.cn/tags/html_ref_httpmethods.asp

6、两个同一网络的主机,如何获取对方的mac地址

7、mysql引擎区别、索引原理(底层实现)、b+树原理

  MySql存储引擎特性对比    四种mysql存储引擎

8、海量数据中找一个单词,分布式计算mapreduce

9、写一个设计模式

10、写一个生产者消费者

11、子网掩码将某个ip划分成网络地址和主机地址两部分。

12、数据库连接池作用(减少建立和关闭连接的开销)

13、tomcat配置,堆的初始化大小

14、缓存与内存的区别

  缓存和内存的区别

15、长字符串中出现两次的字符

16、spring aop怎么实现的

17、排序算法最快的是那种,说出原理

18、synchronized和lock的区别(主要相同点:Lock能完成synchronized所实现的所有功能。主要不同点:synchronized是java的关键字,Lock是一个接口。Lock有比synchronized更精确的线程语义和更好的性能。synchronized会自动释放锁,而Lock一定要求程序员手工释放,并且必须在finally从句中释放)Lock和synchronized比较详解

  有哪些lockJava中的锁  Java中的锁分类

  不同的锁如何实现

  volatile   内存可见性和原子性:Synchronized和Volatile的比较

19、mysql存储引擎(myisam、innodb、memory、bdb、archive )MySql存储引擎特性对比

  锁(表锁、行锁innodb、页锁dbd)MySQL锁详解

  聚集索引(适用范围搜索)和非聚集索引 聚集索引和非聚集索引(整理)

  索引长度  【MySQL】索引长度的一些限制  mysql 二级索引

  索引原理

20、jdk的并发包(java.util.concurrent) Java 并发工具包 java.util.concurrent 用户指南

21、线程池的使用流程(客户端封装task提交ExecutorService,执行execute和submit,execute没有返回值,submit会返回future,客户端可通过future的get获取执行结果)、

  达到线程池线程数怎么处理(在没达到线程池数时,即使有空闲线程也会新创建,没有空闲线程,新提交的任务将会暂存缓存队列 ) Java多线程总结(6)— 线程池的基本使用和执行流程分析

22、什么情况下会被复制到老年代(from中年龄达到阈值的对象移动到老年代、to满全部移动到老年代、对象大小大于阈值直接存放老年代),

  gc流程(minor gc会将eden中存活的对象复制到to中,from中对象年龄大于阈值的转移到old中,其余的复制到to中,此时to和from角色互换,如果to满,将to中所有对象转移到old中,old会不定时执行full gc,full gc是面向整个堆的,包括年轻代和老年代。年轻代使用复制算法,老年代使用标记-整理算法。minor gc触发条件为eden空间不足,full gc触发条件为执行System.gc()或old空间不足)GC详解及Minor GC和Full GC触发条件总结   ,jvm8结构 JVM8(4)java虚拟机内部结构

23、jdk7和jdk8(永久内存从堆内存中移到了本地内存)的内存结构  JDK8中JVM堆内存划分

24、用那种设计模式对hashmap实现线程安全(代理模式,给每个方法加sychronized)

25、String的hashCode方法(new String("abc")和new String("abc")的hash值相等,因为是通过值计算的,与引用无关)

26、String值如何手动放入常量池  String.intern()方法与常量池存入时的疑惑!

27、为什么hashmap的初始大小为2的整数次幂?(之所以hashmap的初始值取得是2的整数次幂,是为了减少h & (length-1)的碰撞,length-1确保每一位都是1,这样h的每一位都参与&运算,如果length-1有一位为0,那么h相同的那一位无论是0或1都没有参与的必要,因为都是0。所以length-1是为了确保h所有的为都参与运算,减少碰撞值)

28、spring面试题

29、equals和hashcode(区别联系、重写一个不重写另一个出现的情况) hashCode与equals的区别与联系

30、乐观锁和悲观锁(通过增加类似版本号的字段实现,更新时将版本号作为条件,如果之前查到的版本号和数据库中的不一致,则更新失败,一致就更新这条记录并更改版本号)   Java 中的悲观锁和乐观锁的实现

31、公平锁和非公平锁(所谓公平锁指的是哪个线程先运行,那就可以先得到锁。非公平锁是不管线程是否是先运行,都是随机获得锁的) ReentrantLock之公平锁与非公平锁浅析    第五章 ReentrantLock源码解析1--获得非公平锁与公平锁lock()

32、读写锁(读锁可以多个线程同时持有,写锁只能一个线程持有,有读锁需要等待释放才能获得写锁)  轻松掌握java读写锁(ReentrantReadWriteLock)的实现原理

33、b、b-、b+树  B树、B-树、B+树、B*树

34、FanctoryBean   FactoryBean的使用

35、ConcurrentHashMap(每个位置相当于一个hashTable,锁的粒度只为当前位置,而不会像HashTable锁住整张表,当前位置用的ReentrantLock) ConcurrentHashMap实现原理  操作介绍

36、ThreadPoolExecutor  JAVA进阶----ThreadPoolExecutor机制

37、servlet  JSP/Servlet 工作原理(转载)

38、show profiles;查看做了哪些查询     show  profile for query index;查看指定index的查询所用时间时间

39、hibernate先关问题?Hibernate的10个常见面试问题及答案  java面试常见问题之Hibernate总结

java知识点总结的更多相关文章

  1. 学Android开发,入门语言java知识点

    学Android开发,入门语言java知识点 Android是一种以Linux为基础的开源码操作系统,主要使用于便携设备,而linux是用c语言和少量汇编语言写成的,如果你想研究Android,就去学 ...

  2. 给Java新手的一些建议----Java知识点归纳(Java基础部分)

    写这篇文章的目的是想总结一下自己这么多年来使用java的一些心得体会,主要是和一些java基础知识点相关的,所以也希望能分享给刚刚入门的Java程序员和打算入Java开发这个行当的准新手们,希望可以给 ...

  3. java知识点梳理

    网络搜索结果,出处不详,仅供参考 对于刚刚接触Java的人,java基础知识技术点繁多,那么gkstk小编为大家汇总最全java知识点如下,仅供大家参考学习! 1. JVM相关(包括了各个版本的特性) ...

  4. 自己整理的所有java知识点(不断迭代中)

    1. 自己整理的所有java知识点(不断迭代中) 画图工具注册 https://www.processon.com/i/599d35fae4b00d97d7f9bb17 1.1. Java整体知识架构 ...

  5. Java知识点-判断null、空字符串和空格

    Java知识点-判断null.空字符串和空格 // 判断headerKey是否为null,空字符串或者空格 if (headerKey != null && headerKey.len ...

  6. typora中文版官方免费快速下载以及Markdown的一些常用语法、Java知识点

    typora下载 链接:https://某度云盘的域名/s/1geD1APxnyV3gogYW3E08bQ 密码:8fdp 把某度云盘的域名进行替换 1.标题 # 标题1 ## 标题2 ### 标题3 ...

  7. 给Java新手的一些建议——Java知识点归纳(Java基础部分)

    原文出处:CSDN邓帅 写这篇文章的目的是想总结一下自己这么多年来使用java的一些心得体会,主要是和一些Java基础知识点相关的,所以也希望能分享给刚刚入门的Java程序员和打算入Java开发这个行 ...

  8. 给Java新手的一些建议——Java知识点归纳(Java基础部分)

    写这篇文章的目的是想总结一下自己这么多年来使用java的一些心得体会,主要是和一些java基础知识点相关的,所以也希望能分享给刚刚入门的Java程序员和打算入Java开发这个行当的准新手们,希望可以给 ...

  9. Java知识点脑图

    做服务器开发有十几年了,其中大部分用到的都是Java服务器开发,从JDK1.4到现在的JDK1.8,从基本的Java Application到 J2EE(JBOSS,Glassfish),OSGI,到 ...

  10. 给Java新手的一些建议----Java知识点归纳(J2EE and Web 部分)

    J2EE(Java2 Enterprise Edition) 刚出现时一般会用于开发企业内部的应用系统,特别是web应用,所以渐渐,有些人就会把J2EE和web模式画上了等号.但是其实 J2EE 里面 ...

随机推荐

  1. 编写shell脚本一键启动zookeeper集群!!

    踩了一个多小时坑终于解决了: 这里分享给大家,更主要的目的是记住这些坑,避免以后重复走!!! 首先,这里采用ssh秘钥方式进行集群主机之间免密登录执行启动命令 这里简单说下原理: 通过ssh去另外一台 ...

  2. JavaScript新手学习笔记(一)

    1.JavaScript 对大小写敏感. JavaScript 对大小写是敏感的. 当编写 JavaScript 语句时,请留意是否关闭大小写切换键. 函数 getElementById 与 getE ...

  3. linux查看内存、CPU占用资源最多的进程

    [内存占用] #利用ps命令,默认使用ps参数会显示的结果 ps -aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 ...

  4. C++模板(Templates)

    模板(template)是泛型编程的基础,"泛型"的含义就是没有不依赖具体的数据类型.模板的引入是为了创建一般性的类(模板类)或者函数(模板函数).典型的容器比如迭代器/算法等是泛 ...

  5. git —— 异常1,index.lock

    git提交过程中出现的问题 解决方法:找到 index.lock文件将其删除 一般 index.lock 在.git下面, 有时 .git 是隐藏的,但是无论怎样, 可以通过 everything 找 ...

  6. 客户端使用less方法

    <link rel="stylesheet/less" type="text/css" href="/css/style.less"& ...

  7. LongAdder类学习笔记

    优秀原文 LongAdder | LongAccumulator简介 源码阅读:全方位讲解LongAdder 说到LongAdder,不得不提的就是AtomicLong.AtomicLong是JDK1 ...

  8. 汇编看C函数调用

    http://blog.csdn.net/wishfly/article/details/5022008   简单的函数调用,通过简单的函数调用反汇编可以清楚了解如下 1.栈到底是什么,如何操纵栈的? ...

  9. Robust Mesh Watermarking

    之前看了一篇题为"Robust Mesh Watermarking"的论文,查阅资料的时候发现了一篇与之很相似的名为"三维模型数字水印系统的设计与实现"的中文论 ...

  10. MAC下安装MAMP后,mysql server无法启动

    用MAC下载安装了MAMP,之前使用是很好没问题的,但是突然无法启动mysql server,检查日志,提示InnDB出错,然后删掉了/Application/MAMP/db/mysql56目录下的i ...