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前端控制器返回用户