springboot与springmvc有啥区别?
springmvc只是一种mvc框架,springboot是在原来的spring,springmvc,mybatis等这些框架的基础上进行了一些优化,进行了一些配置,
springboot最大的特点?(俩个)
(1)起步依赖,就是那些start的jar包
(2)自动装配,自动配置,自动配置的原理
**SpringBoot 自动装配原理:**SpringBoot启动的时候通过@EnableAutoConfiguration注解找到META-INF/spring.factories文件中的所有自动配置类,并对其加载,它会经过exclude和filter等操作,最终确定要装配的类
八大数据结构?
哈希表(Hash)、数组(Array)、队列(Queue)、栈(Stack)、树(Tree)、图(Graph)、堆(Heap)、链表(Linked List)
数据类型
1.八大基本数据类型?
- 数值型:
- 整数:byte(位)、short(短整数)、int(整数)、long(长整数)
- 浮点型:float(单精度)、double(双精度)
- 字符型:char(字符)、
- 布尔型:boolean(布尔值)
2.引用数据类型?
-
String类型,String是项目中必不可少且使用最多的数据类型,它属于引用数据类型中“类”的范畴。
-
基本数据类型的封装类:class(Byte、Short、Integer、Long、Float、Double、Character、Boolean)
-
接口:interface
-
数组
Java集合框架
1.Collection集合主要有List和Set两大接口
- List:有序(元素存入集合的顺序和取出的顺序一致),元素都有索引。元素可以重复。
- List的主要实现:ArrayList, LinkedList, Vector。
- List是元素有序并且可以重复的集合。
- Set:无序(存入和取出顺序有可能不一致),不可以存储重复元素。必须保证元素唯一性。
MySQL数据优化:
- 最大化利用索引;
- 尽可能避免全表扫描;
- 减少无效数据的查询;
存储过程:
- 定义
存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中,经过第一次编译后调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象。
-
存储过程的特点
1、能完成较复杂的判断和运算
2、可编程行强,灵活
3、SQL编程的代码可重复使用
4、执行的速度相对快一些
5、减少网络之间的数据传输,节省开销
触发器
触发器与函数、存储过程一样,触发器是一种对象,它能根据对表的操作时间,触发一些动作,这些动作可以是insert,update,delete等修改操作。
SpringCloud核心组件
- Eureka:注册中心,主要作用是服务的注册与发现,各个服务启动时,Eureka Client会将服务注册到Eureka Server中去,并且Eureka Client反过来拉取注册表,从而知道其他服务在哪里
- Ribbon:负载均衡,主要作用就是,将请求通过轮询算法的方式均匀分配到每一个服务器上,从1开始到n,由从1开始到n,类推
- Feign:动态代理,主要作用就是通过添加#FeignClient注解给接口加上动态代理,当请求请求到接口时,动态代理通过@RequestMapping注解中的url,拼接Url地址,然后,发送请求,解析响应
- Hystrix:服务熔断,主要作用就是当众多服务中的某一个服务挂掉之后,不会影响其他服务的运行,比如说这个服务需要添加一条记录,但是挂掉了,其他服务正常运行,当用上Hystrix时,记录下来,就可以事后通过手动的方式添加,这也就是服务降级
- Zuul:服务网关,主要作用就是不管后端多少个服务,前端的请求都要进入网关来,通过网关来转发请求给对应的服务,而且有一个网关之后,还有很多好处,比如可以做统一的降级、限流、认证授权、安全,等等。
线程五大状态
创建,就绪,运行中,阻塞/睡眠/等待,死亡
创建线程三种方法:
- 继承Thread类
- 优点
简单,访问当前线程只需要使用this关键字 - 缺点
线程已经继承Thread类,因此不可以再继承其他类
- 优点
- 实现Runable接口与实现Callable接口
- 优点
1.线程实现了Runnable和Callable接口,,因此还可以继承其他父类
2.多个线程可以共享一个对象,因此可以使多个线程来处理同一个资源对象,可以将代码和数据分开。 - 缺点
编程复杂,访问当前线程使用Thread.currentTHread()方法
- 优点