java知识点总结,理解HashSet及使用,hashMap、hashTable、treeMap的区别,Java中数组复制的几种方法,Java数组扩容算法及Java对它的应用,[转]JVM运行时内存结构,JVM系列三:JVM参数设置、分析,Spring Bean的生命周期(非常详细),Spring BeanFactory与FactoryBean的区别及其各自的详细介绍于用法,Spring中FactoryBean与BeanFactory的区别,Spring AOP详解,TCP的三次握手(建立连接)和四次挥手(关闭连接),OSI七层模型与TCP/IP五层模型,MySql存储引擎特性对比,四种mysql存储引擎,Java中的锁分类,MySql存储引擎特性对比,MySQL锁详解,聚集索引和非聚集索引(整理),【MySQL】索引长度的一些限制,第五章 ReentrantLock源码解析1--获得非公平锁与公平锁lock(),B树、B-树、B+树、B*树

一、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总结

    原文作者:code.world
    原文地址: http://www.cnblogs.com/sunjf/p/7519411.html
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞