--------1、java基础
--------2、MVC框架基础
--------3、前端基础
--------4、数据库基础
--------5、linux基础命令
--------6、jdk1.8的新特性
1、java基础
1.1编译的程序占用的内存分为以下几个部分
1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。
2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。
3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。 - 程序结束后有系统释放
4、文字常量区—常量字符串就是放在这里的。 程序结束后由系统释放
5、程序代码区—存放函数体的二进制代码。
2、String、StringBuffer、StringBuilder之间的区别?
1、String表示不可修改的字符串,StringBuffer和StringBuilder可以动态构造字符数据
2、String重写了equals方法,StringBuffer和StringBuilder并没有
3、StringBuffer是线程安全的,StringBuilder是线程不安全的
final、finally、finalize的区别
final修饰变量,表示不是被修改;修饰对象表示对象的引用不可以被修改,但是对象的内容可以修改;修改方法,表示不可以被重写;修改类表示该类不能被继承
finally是异常处理语句的一种
finalize是Object类中的一个方法,在垃圾收集器执行的时候就会调用被回收对象的此方法,可以重写此方法
java集合有几种?
有三种,list,set,map
list和set是单列集合,且他们都有个上层接口是Collection。
list是有序可重复的,有ArrayList(查询快增删慢、线程不安全)、LinkedList(查询慢增删快,线程不安全)、Vector(查询快增删慢,线程安全);
set是无序不可重复的,有HashSet(通过HashCode和equals方法实现不可重复,是无序的)、TreeSet(通过CompareTo或者Compare方法保证不可重复,是有序的)
Map是双列集合,key是不可以重复的,value是可重复的,key和value是可以为null,有HashMap(无序的)和TreeMap(key是有序的)
HashMap和Hashtable的区别
(条理上还需要整理,也是先说相同点,再说不同点)
一样的:
1、HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口
2、Hashtable和HashMap采用的hash/rehash算法都大概一样,所以性能不会有很大的差异。
不同点:
1、Hashtable继承自Dictionary类,而HashMap是Java1.2引进的Map interface的一个实现。
2、Hashtable线程安全,HashMap线程不安全
3、HashMap允许将null作为一个entry的key或者value,而Hashtable不允许。
4、HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因为contains方法容易让人引起误解。
多线程有几种实现的方法?同步有几种实现方法?
多线程有两种实现方法:继承Theard类,实现Runnable接口
同步实现有两种:同步代码块,同步方法(使用Synchronized关键字,以及使用的是同一个锁定就可以了)
启动一个线程是用run()还是start()? .
启动一个线程使用的是start方法,是线程处于就绪状态,以后可以被调度成运行状态。而run()方法只是职称该线程所关联的代码
sleep和wait有什么区别?
1、sleep能在任何地方使用,wait只能是同步方法或代码块中使用
2、sleep是Tread线程类中的方法,而wait是Object类中的方法
3、sleep和wait都能够暂停当前线程并让出CPU,但是sleep并不会释放当前持有的锁定,到时间后会继续执行,而wait会放弃所有锁定并需要通过notify/notifyAll获取到对象锁定后才能执行
4、sleep需要捕获或者抛出异常,而wait/notify/notifyAll并不需要
单例模式怎么写?一个类Class只有一个实例存在
饿汉模式:
public class SingleTon {
private SingleTon(){}
private static final SingleTon singleTon = null;
public static SingleTon getInstance(){
if(singleTon == null){
singleTon = new SingleTon();
}
return singleTon;
}
}
饱汉模式
public class SingleTon {
private SingleTon(){}
private static final SingleTon singleTon = new SingleTon();
public static SingleTon getInstance(){
return singleTon;
}
}
递归算法:
第1个人10,第2个比第1个人大2岁,依次递推,请用递归方式计算出第8个人多大?
package cn.itcast;
import java.util.Date;
public class A1 {
public static void main(String [] args)
{
System.out.println(computeAge(8));
}
public static int computeAge(int n)
{
if(n==1) return 10;
return computeAge(n-1) + 2;
}
}
spirng是什么?
spring就是一个轻量级的IOC和AOP的开源框架
IOC:将对象的创建以及维护对象之间的关系交给Spring容器进行管理,而不是由程序猿手动的创建和维护了
AOP:将一些例如安全、日志、事务等逻辑相对独立的部分,独立出来作为切面,通过spring的配置文件,插入到目标对象的方法中,实现了方面组件和目标对象之间的解耦
spring和springBoot之间的区别
109页