1.类和对象的区别
 答:类是一个独立的程序单位,他应该有个类名,它的内部包含了属性和服务两个主要部分
       对象其实就是构成系统的一个基本单位 ,一个对象由一组属性和一组服务组成的
       说白了,类就像一台机器,而对象就是类身上的零件
1.1接口
 答:接口只能具有抽象方法,一个类可以实现多个接口,当类实现了接口以后就必须
 实现接口中的所有的抽象方法
2.JAVA中类的六种关系
 1.继承关系 2.聚合关系 3.依赖关系  4.组合关系 5.实现关系 6.关联关系
3.为什么要用spring
 答:基于POJO的轻量级,通过依赖注入和面向接口实现松耦合
 面向切面编程(aop 不修改源代码的情况下对系统动态统一添加功能的一种技术,扩展性)
4.为什么要有控制反转
 答:控制反转是将组件之间的依赖关系从程序内部提到外部来管理 
 就是把创建对象的控制权进行转移,以前都是由自己来把控,而现在是交给第三方进行管理
 就比如说转移给了IOC(Spring)容器进行管理,你要什么对象它就给你什么对象
5.堆,栈,Hash结构
 5.1答:栈是后进先出的,类似于计算机的Ctrl+z撤回一样的
 5.2答:队列是先进先出的,类似于自助冰淇淋机的蛋筒一样的
 5.3答:Hash是一个KV结构字符串,key不可重复,唯一的Key对应一个自己的value
6.sql优化
 1.查询SQL尽量不要使用select * ,而是具体字段
 2.避免在where中使用or来连接条件
 3.查询尽量避免返回大量数据
 4.优化like语句
 6.索引不要太多,一般5个以内
 等等
7.什么是进程,什么是线程 串行并行
 答:电脑中会运行很多程序,每个程序有一个独立的进程,而进程之间是相互独立存在的
 线程是进程中最小的执行单位,并且一个进程至少有一个线程
 串行:比如说电脑要下载多个文件,串行是先开始下载A再去下载B 它们在时间上市不可
 能发生叠加的。
 并行:下载多个文件,开启多条线程,多个文件同时进行下载,是同一时刻发生的,并行
 在时间上是叠加的
8.线程安全
 答:
 8.1加synchronized同步锁,加Lock释放锁
 线程安全就是多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行
 保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。
9.HashMap的数据结构
 答:可以用指定Key找到指定的Value,是一个数组加链表的结构,
 9.1整体是一个数组
 9.2数组的每一个位置是一个链表
 9.3链表每个节点的Value即我们存储的Object
10.单点登录实现
 答:用户访问浏览器,但是你又想保护服务器中的资源,就可以限制浏览器的请求,响应
 合法的请求,忽略非法的请求,浏览器每次请求服务器,服务器创建一个会话id,后面第
 二次 第三次请求都会带上会话id,服务器就知道这个会话id是不是同一个用户了
 登录状态:假设浏览器第一次请求需要输入账号密码。服务器拿着用户的密码去数据库对比
 正确的话就是合法用户,会给这个会话标记已登录的状态
11.SpringMVC流程
 11.1.用户发送请求至前端控制器
 11.2前端控制器收到请求去调用处理器映射器
 11.3处理器映射器找到具体的处理器,生成处理器对象及处理器拦截器 返回
 11.4前端控制器调用处理器适配器
 11.5处理器适配器调用具体的后端处理器
 11.6后端控制器返回模型和视图
 11.7处理器适配器将后端控制器执行结果返回给前段控制器
 11.8前端控制器将模型和视图传给视图解析器
 11.9视图解析器解析后返回具体的视图
 11.10前端控制器根据视图进行渲染视图
 11.11前端控制器返回用户
  










