-
分布式和微服务有啥区别?
答:
-
分布式
的意思是多个模块共同完成一件事情(也可以是一个模块分多个部署),每个节点可以单独完成任务;(分开不同机器部署) -
微服务
的意思也是多个模块共同完成一件事情,(不管应用部署在哪里) -
微服务和分布式都是拆分单体应用的产物,可以理解为,微服务只是对服务拆分的形容词,分布式是对服务部署方面的考量,微服务是可以包含分布式的,但是分布式不一定是微服务;
-
-
spring为啥要final修饰?
答:为了实现字符串池,不同的字符串变量都指向池中同一个字符串,如果变了就乱了;为了线程安全同一个字符串实例,可能被多个线程共享,所以不能让她变;为了实现String可以创建hashcode的不可变性,
-
Java的线程池都有啥?
答:可缓存线程池,定长线程池等
-
线程的生命周期是啥
答:五个阶段:从上往下:
-
新建状态(new对象的时候)
-
就绪状态(调用start方法之后)
-
运行状态(获得了cpu使用权,开始执行行run方法里面的内容)
-
阻塞状态(执行过程中终止执行,则进入该状态,之后可以进入就绪状态)
-
死亡状态(调用stop方法或者是抛出异常或者是错误时,会出现这种状态)
-
-
rpc咋调用啊
答:服务消费者通过代理对象发起远程调用。网络客户端将序列化之后的请求发送给服务提供者Server。
-
Java中的锁有啥?
答:共享锁排他锁,乐观锁悲观锁,可重复入锁非可重入锁,公平锁非公平锁,自旋锁适应性自旋锁
-
redis的持久化方法有啥
答:两种
-
RDB:自动备份也可以手动备份。在指定时间间隔内,将内存中的数据集存入磁盘
-
AOF:以日志的形式记录每个写操作,只许追加,不许改写文件,AOF比RDB保存的更加完整
-
-
dubbo和springloud的有啥区别
答:dubbo:基于RPC调用,使用tcp协议,效率相对较高,体系组件不全,组装滴
springclould:使用http协议,生态好,一站式服务,品牌机
-
gateway网关咋实现限流啊?
-
答:基于 Filter(定义过滤器对请求过 滤,完成一些功能) 链的方式提供了网关基本的功能,例如:鉴权、流量控制、熔断、路径重写、日志监控等。在核心配置文件中配置即可是实现
-
登陆时,权限咋控制啊?
答:可以使用拦截器
-
各个微服务之间咋通信呐?
答:Feign,编写一个接口,就跟调用本地方法一样去调用他
-
springboot和springclould你知道吗你
答:springclould是一系列框架的有序集合,是一套规范 ,很多组件一起完成任务,springboot简化了springclould的开发,帮我们快速把这个微服务起来
-
springboot的启动类注解底层是啥逻辑?
答:@SpringBootApplication注解是一个组合注解,前面 4 个是注解的元数据信息, 我们主要看后面 3 个的三个核心注解:@SpringBootConfiguration、@EnableAutoConfiguration、 @ComponentScan,
-
@SpringBootConfiguration:@SpringBootConfiguration注解的作用与@Configuration注解相同,都是 标识一个可以被组件扫描器扫描的配置类,只不过@SpringBootConfiguration是被Spring Boot进行 了重新封装命名而已
-
@EnableAutoConfiguration:开启自动配置功能,它是一个组合注解,借助
@Import来收集所有符合自动配置条件的bean定义,并加载到IoC容
-
@AutoConfigurationPackage注解的功能是由@Import注解实现的,它是
spring框架的底层注解,它的作用就是给容器中导入某个组件类。它的主要作用就是将主程序类所在包及所有子包下的组件到扫描到spring容器中。 因此要求,包的定义要特别规范
-
@Import(AutoConfigurationImportSelector.class)
-
-
@ComponentScan
-
-
springboot常用注解有啥,根据自己的印象瞎说点
答:@Bean:将反回值对像添加到spring容器中;@Value:单个注入,将yml配置文件中的属性注入到实体类;@ConfigurationProperties :批量注入;@PropertySource 指定自定义配置文件的路径;@Configuration:自定义配置类
-
做项目的时候有没有啥问题啊,说自己的哈
答:
-
有一次dao层,service层contro都通了,但是用postman测试的时候查不出数据。找了半天,是sql语句出现问题了,我查的时候起了别名,但是在映射的时候没有写。
-
有一次从报内存溢出的异常,断点查找以后发现,一着急,servce层调用错了,应该调用dao,
-
还有一次是数据库连接不上,他需要一个ssl的属性,
-
还有zookeeper注册不上,防火墙没有关闭,
-
安装Linux在线安装MySQL时,有一个协议好像过期了重新下载一个。
-
sqlyog连接linux数据库时连不上,我总结哈,第一要去看防火墙,第二要去看权限,是不是允许都让连。
-
vmware搭建虚拟机的时候电脑总是自动关机,是centos7和VMware虚拟机的版本不对应,下载一个最新的VMware就可以了
-
大问题没有,小问题不断,不如spring接受前台传过来的参数的时候@Para那个注解引错,将服务注册到equreka的时候,标注当前为客户端有两个注解,一不小心就搞错了。上面出现一串红色的英文字母,原理是自动出发euraka自我保护机制,服务挂了一半或者是大部分长时间没有反应,就会这
-
-
为啥要这么拆分微服务,你根据啥拆的
答:我是根据业务进行的拆分,当然还可以更小的颗粒,把用户再分成那么多,但是没有那么大的并发访问量,拆的太多也不行,越多越难管理。
-
依赖注入和控制反转有啥区别么,这哥俩是一回事么
答:
-
bean实例化到Spring容器,依赖注入到类中
-
控制反转:反转:对象的控制权由原来的开发人员,交给spring管理
-
控制反转是一种思想,依赖注入是这种思想的核心实现方法
-
-
ORM对象关系映射,你知道么,谁映射到谁
答:对象映射到数据库
-
MVC设计模式,这个M是指啥
答:MVC设计模式一般指 MVC 框架
-
M(Model)指数据模型层(Web中指实体类),
-
V(View)指视图层(用户界面),
-
C(Controller)(获取请求后如何解析用户的输入,并执行相关处理逻辑,最终跳转至正确的页面显示反馈结果 )指控制层
-
-
集合用的多不?,集合你说一下都有哪些集合
-
公司主要用springclould,常用组件你知道不
答:把学的组件都说上得了
-
get和post的有啥区别?
-
给你一个应用场景,表关系要如何设计,用户,角色
-
map如何遍历咋实现
答:将map集合转为set集合去遍历,利用map里面的两个方法keySet和entySet
-
方法一:将map中的key放进set:keyset;将map中的value放入set:values;将map中的键值对放入set:entySet
-
//3.获取所有的键到一个Set集合里面去 Set<Object> keySet = hashMap.keySet(); //把键值对放到set里面去 Set<Map.Entry<Object, Object>> e2 = hashMap.entrySet();
-
-
方法二:利用connection中的迭代器:
-
//Iterator接口的next();用于获取序列中的下一个元素 //Iterator接口的hasNext();用于检查序列中是否还有元素 //Iterator接口的remove();用于删除迭代器返回的元素 Iterator<Map.Entry<Object, Object>> iterator = hashMap.entrySet().iterator(); while (iterator.hasNext()){ Map.Entry<Object, Object> next = iterator.next(); System.out.println(next.getKey()); System.out.println(next.getValue()); }
-
-
-
http的请求报文都有啥
答:
-
GET 方式的请求报文
-
POST 方式的请求报文
-
一个HTTP请求报文可以由请求行、请求头、空行和请求体4个部分组成。
-
-
数据库咋实现倒序
答:通过 ” order by“实现,语法 :order by 字段 asc/desc。 sql:select * from tablename order by filename1 desc;
-
数据路limit关键字是干啥的
答:在mysql中,limit关键字主要用于指定查询结果从哪条记录开始显示,一共显示多少条记录;它有3种使用语法“LIMIT 初始位置,记录数”、“LIMIT 记录数”和“LIMIT 记录数 OFFSET 初始位置”。
-
说说你最熟悉的框架,用过没
答:就把上面说的一堆说出来就可以了
-
mysql咋优化
答:
-
底层硬件
-
使用索引
-
使用explain关键字调优
-
主从复制读写分离,搭建mysql集群
-
-
给你一个需求,现场直编,咋解决,想要你解决问题的能力
-
你这个项目上线运行了吗
学一个东西三步走:
- 他是啥
- 咋用
- 唠明白