目录
一 Java 基础
1.Java 基础 知识
1.1 面向对象的特征(了解)
1.2 Java 的基本数据类型有哪些(了解)
1.3JDK JRE JVM 的区别 (必会)
1.4 重载和重写的区别(必会)
1.5 Java 中==和 equals 的区别(必会)
1.6 String、StringBuffer、StringBuilder 三者之间的区别(必会)
1.7 接口和抽象类的区别是什么?(必会)
1.8 string 常用的方法有哪些?(了解)
1.9 什么是单例模式?有几种?(必会)
1.10 反射(了解)
1.11 jdk1.8 的新特性(高薪常问)
1.12 Java 的异常(必会)
1.13 BIO、NIO、AIO 有什么区别?(高薪常问)
1.14 Threadloal 的原理(高薪常问)
1.16 同步锁、死锁、乐观锁、悲观锁 (高薪常问)
1.17 说一下 synchronized 底层实现原理?(高薪常问)
1.18 synchronized 和 volatile 的区别是什么?(高薪常问)
1.19synchronized 和 Lock 有什么区别? (高薪常问)
1.20 手写冒泡排序?(必会)
2.集合(必会)
2.1 常见的数据结构(了解)
2.2 集合和数组的区别(了解)
2.3List 和 Map、Set 的区别(必会)
2.4 List 和 Map、Set 的实现类(必会)
2.5Hashmap 的底层原理(高薪常问)
2.6 Hashmap 和 hashtable ConcurrentHashMap 区别(高薪常问)
3.多线程(必会)
3.1 什么是线程?线程和进程的区别?(了解)
3.2 创建线程有几种方式(必会)
3.3Runnable 和 Callable 的区别?(必会)
3.4 如何启动一个新线程、调用 start 和 run 方法的区别?(必会)
3.5 线程有哪几种状态以及各种状态之间的转换?(必会)
3.6 线程相关的基本方法?(必会)
3.7 wait()和 sleep()的区别?(必会)
4. 线程池
4.1 为什么需要线程池(了解)
4.2 线程池的分类(高薪常问)
4.3 核心参数(高薪常问)
4.4 线程池的原理(高薪常问)
4.5 拒绝策略(了解)
4.6 线程池的关闭(了解)
5. Jvm
5.1 JDK1.8 JVM 运行时内存(高薪)
5.2 JDK1.8 堆内存结构(高薪常问)
5.3 Gc 垃圾回收(高薪常问)
5.4 JVM 调优参数(了解)
二、 Web
1.网络通讯部分
2.cookie 和 session 的区别?(必会)
3.Jsp 和 Servlet(了解)
4.Ajax 的介绍(必会)
三、 数据库
1.连接查询(必会)
2.聚合函数(必会)
3.SQL 关键字(必会)
4. SQL Select 语句完整的执行顺序: (必会)
5. 数据库三范式(必会)
6. 存储引擎 (高薪常问)
6.1.MyISAM 存储引擎
6.22.InnoDB 存储引擎
7.数据库事务(必会)
8.索引
9.数据库锁(高薪常问)
9.1.行锁和表锁
9.2.悲观锁和乐观锁
10.MySql 优化(高薪常问)
1) 定位执行效率慢的 sql 语句.(了解)
2) 优化索引(高薪)
3) Sql 语句调优(高薪)
4) 合理的数据库设计(了解)
四. 框架
1. Mybatis 框架
2. Spring 框架
3.SpringMVC 框架
3. Dubbo
4. Zookeeper
6.SpringBoot
7. SpringCloud
五.技术点
1. Redis
2. RocketMQ
3. MongoDb
4. Nginx
5. FastDFS
6. JWT
7. Kafka
一、Java基础
1.Java基础知识
1.1面向对象的特征(了解)
面向对象的特征:封装、继承、多态、抽象
封装:就是把对象的属性和行为结合为一个独立的整体,并尽可能的隐藏对象的内部实现细节,就是把不想告诉别人或者不该告诉别人的进行隐藏,把可以告诉别人的进行公开,别人只能用我提供的功能实现需求,而不知道是如何实现的,主要是增加了安全性。
继承:子类继承父类的数据属性和方法,并且能根据自身需求扩展出新的行为,继承主要是提高了代码的复用性。
多态:指允许不同的对象对同一消息做出响应,即同一消息可以根据发送对象的不同而采用的多种不同的行为方式(发送消息就是函数调用)。封装和继承几乎都是为多态而准备的,在执行期间判断引用对象引用对象的引用类型,根据其实际的类型调用其相应的方法。
抽象:表示对问题领域进行分析、设计中得出的抽象的概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象,在Java中抽象用avstract关键字来修饰,用abstract修饰类时,此类就不能被实例化,从这里可以看出,抽象类(接口)就是为了继承而存在的。
1.2Java的基本数据类型有哪些(了解)
整数型 bayte short int long float double boolear char
字节数 1 2 4 8 4 8 1 2
1.3.JDK JRE JVM 的区别(必会)
JDK(Java Development kit)是整个java的核心,是java开发工具包,包括了java运行环境 JRE,Java工具和 Java基础类库
JRE (Java Runtime Environment)是运行Java程序所必须的环境的集合,包含Java虚拟机和java程序的一些核心类库。
JVM 是Java VirtualMachine(Java虚拟机)的缩写,是整个java实现跨平台最核心的部分,能够运行以Java语言写作的软件程序
1.4重载和重写的区别(必会)
重载:发生在同一个类中,方法名必须相同。参数类型不同,个数不同,顺序不同,访问修饰符和方法返回值可以不同,发生在编译时。
重写:发生在父子类中,方法名,参数列表必须相同,返回值范围小于父类,输出异常范围小于父类,访问修饰符大于等于父类,访问修饰符范围大于父类;需要注意的是:如果父类方法访问修饰符为private,则子类就不能重写该方法
1.5java中==和equals的区别(必会)
1.Java基础知识 1.1面向对象的特征(了解) 面向对象的特征:封装、继承、多态、抽象 封装:就是把对象的属性和行为结合为一个独立的整体,并尽可能的隐藏对象的内部实现细节,就是把不想告诉别人或者不该告诉别人的进行隐藏,把可以告诉别人的进行公开,别人只能用我提供的功能实现需求,而不知道是如何实现的,主要是增加了安全性。 继承:子类继承父类的数据属性和方法,并且能根据自身需求扩展出新的行为,继承主要是提高了代码的复用性。 多态:指允许不同的对象对同一消息做出响应,即同一消息可以根据发送对象的不同而采用的多种不同的行为方式(发送消息就是函数调用)。封装和继承几乎都是为多态而准备的,在执行期间判断引用对象引用对象的引用类型,根据其实际的类型调用其相应的方法。 抽象:表示对问题领域进行分析、设计中得出的抽象的概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象,在Java中抽象用avstract关键字来修饰,用abstract修饰类时,此类就不能被实例化,从这里可以看出,抽象类(接口)就是为了继承而存在的。 1.2Java的基本数据类型有哪些(了解) 整数型 bayte short int long float double boolear char 字节数 1 2 4 8 4 8 1 2
==的作用 基本类型:比较的是值是否相同 引用类型:比较的就是地址值是否相同 equals的作用 只能比较引用数据类型,默认是比较的地址值, 重写后,比较的就是内容而不是地址! 面试题:请解释字符串比较之中 “==” 和 equals()的区别? 答:== 比较的是两个字符串的堆内存地址值是否相等,属于数值比较;
equals():比较的是两个字符串的内容,属于内容比较 注:因为String是引用类型所以所以==比较的是地址值
因为String重写过并且继承自Object中的equals(),所以比较的是字符串中的内容。 1.6 String、StringBuffer、StringBuilder三者之间的区别(必会) String 字符串常量 StringBuffer 字符串变量(线程安全) StringBuilder 字符串变量(非线程安全) String 中的String 类中使用 final 关键字修饰字符数组来保存字符串,
private final char value[] , String 对象是不可变的,也就可以理解为常量,线程安全 AbstractStringBuilder 是 StringBuilder 与 StringBuffer 的公共父类,定义了一些字符串操作,如 expandCapacity、append、insert、indexOf 等公共方法. StringBuffer 对方法加了同步锁或者对调用的方法加了同步锁,所以是线程安全的 StringBuilder 并没有对方法进行加同步锁,所以是非线程安全的.但是运行效率会高很多 1.7 抽象类和接口类的区别是什么?(必会) 实现: 抽象类的子类使用 extends 来继承;接口必须使用 implements 来实现接口 构造函数: 抽象类可以有构造方法;接口不能有构造方法 main方法:抽象类可以有 main 方法,并且我们能够运行它;接口中是不能有 main 方法. 实现数量: 类可以实现很多接口;但是只能继承一个抽象类. 访问修饰符: 接口中的方法默认使用 public 修饰;抽象类中的方法可以是任意访问修饰符 补充: a.抽象类继承于Object接口;接口不继承 b.抽象类中可以有普通成员变量和常量;接口中只能有常量,而且只能是public static final 不写也是默认的 c. 抽象类中可以有抽象方法也可以有普通方法;接口中只能有抽象方法而且修饰符只能是public abstract 不写也是默认的 d. 抽象类中是可以有final方法的;接口中不能有final的方法 e. 抽象类只能是单继承多实现;接口是可以多继承其他接口,但是不能实现接口,和不能继承其他类 f: 抽象类中可以有静态的方法,接口中不能有 1.8 String 常用的方法有哪些?(了解) indexOf():返回指定字符的索引 charAt(): 返回指定索引处的字符 replace(): 字符串替换 trim(): 去除字符串两端空白. split(): 分割字符串,返回一个分割后的字符串数组. getBytes(): 返回字符串的 byte 类型数组 lenth(): 返回字符串长度. toLowerCase(): 将字符串转成小写字母. toUpperCase(): 将字符串转成大写字母 substring(): 截取字符串 equals(): 字符串比较



