Java面试题--SpringCloud篇 微服务架构就是将单体的应用程序分成多个应用程序,这多个应用程序就成为微服务,每个微服务运行在自己的进程中,并使用轻量级的机制通信这些服务围绕业务能力来分,并通过自动化部署机制来独立部署,这些服务可以使用不同的编程语言,不同数据库,以保证最低限度的集中式管理Eureka 作为 SpringCloud 的服务注册功能服务器,他是服务注册中心,系统中的其他服务使用Eureka 的客户端将其连接到 EurekaService 中,并且保持心跳,这样工作人。
Java 面试题--SpringBoot篇 Spring Boot 是 Spring 开源组织下的子项目,是 Spring 组件一站式解决方案,主要是简化了使用 Spring 的难度,简省了繁重xml的配置,提供了各种启动器,在运行过程中自定配置,,开发者能快速上手。
Java面试题--设计模式 单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例在计算机系统中,线程池、缓存、日志对象、对话框、打印机、显卡的驱动程序对象常被设计成单例,选择单例模式就是为了避免不一致状态工厂设计模式就是用来生产对象的,在java 中,万物皆对象,这些对象都需要创建,如果创建的时候直接 new 该对象,就会对该对象耦合严重,假如我们要更换对象,所有 new 对象的地方都需要修改一遍,这显然违背了软件设计的开闭原则,如果我们使用工厂来生产对象,
面试题--redis篇 Redis持久化一般的缓存系统,都是按照 key 去缓存查询,如果不存在对应的 value,就应该去后端系统查找 (比如 DB)一些恶意的请求会故意查询不存在的 key,请求量很大,就会对后端系统造成很大的压力,这就叫做缓存穿透如何避免?① 对查询结果为空的情况也进行缓存,缓存时间设置短一点,或者该 key 对应的数据 insert 了之后清理缓存② 对一定不存在的 key 进行过滤,可以把所有的可能存在的 key 放到一个大的Bitmap 中,查询时通过该 bitmap过滤。
MySQL 面试题 第一范式 (1NF):字段(或属性)是不可分割的最小单元,即不会有重复的列,体现原子性第二范式 (2NF):满足 1NF 前提下,存在一个候选码,非主属性全部依赖该候选码,即存在主键,体现唯一性,专业术语则是消除部分函数依赖第三范式 (3NF):满足 2NF 前提下,非主属性必须互不依赖,消除传递依赖范式是符合某一种级别的关系模式的集合;构造数据库必须遵循一定的规则,在关系数据库中,这种规则就是范式范式优缺点优点:范式化的表减少了数据冗余,数据表更新操作。
Linux 命令篇 tail -f 1.txt #查看文件1.txt的最新内容,tail -f 一般用来查看日志文件。scp -r 用户名@ip[:port]:远程文件路径 用户名@ip[:port]:远程文件路径。scp -r 本地文件路径 用户名@ip[:port]:远程路径。scp -r 用户名@ip[:port]:远程文件路径 本地路径。的配置防火墙,如果没有/etc/iptables文件可以使用。wc 是word count的缩写,它是查看文件的单词个数。-f 参数,指定列-d 参数指定列和列之间的分隔符,
Java八股--多线程篇 当一个线程被剥夺 cpu 使用权时,切换到另外一个线程执行死锁指多个线程在执行过程中,因争夺资源造成的一种相互等待的僵局AQS 是一个抽象类,可以用来构造锁和同步类,如 ReentrantLock,Semaphore,AQS 的原理是,AQS 内部有三个核心组件:①state 代表加锁状态初始值为 0②获取到锁的线程③阻塞队列当有线程想获取锁时,会以 CAS 的形式将state 变为 1,CAS 成功后便将加锁线程设为自己当其他线程来竞争锁时会判断。
Java 八股--java 基础篇 反射是通过获取类的class 对象,然后动态的获取到这个类的内部结构,动态的去操作类的属性和方法应用场景:要操作权限不够的类属性和方法时、实现自定义注解时、动态加载第三方 jar 包时、按需加载类,节省编译和初始化时间;获取 class 对象的方法有:① class.forName(类路径)② 类.class()③ 对象的 getClass()
idea 中的 pom.xml 文件变为灰色 可能是新建 Module 之前创建了同名 Module,idea 中的 pom.xml 文件变为灰色被忽略掉了。并进行删除,idea 自动认为该排除此 Module。
微服务保护 (1) 修改 OrderService 的 application.yml 文件,④ 修改 com.alibaba.csp.sentinel.dashboard.(3) 在 feing-api 项目中的 UserClient 接口中。(3) 修改 Sentinel-dashboard 源码, 修改前端。在 order-service 中整合 Sentinel,并且连接。在 Sentinel 中,该接口的 parseOrigin 方法。(2) 修改 Sentinel-dashboard 源码,配置。
分布式搜索 (二) 查询到的结果,返回给用户。的每个文档都是一个json对象。发生改变时,es 也必须跟。方法一:利用 kibana 的 DevTools 创建索引库。例如:按 price 排序后,获取 from = 990,2) es 运行需要修改一些 linux 系统权限,默认情况下,每个节点都是 master eligible。割成词条 (term),例如 keyword,就。Elasticsearch 提供了基于 JSON 的。会随着词频增加而越来越大。的相关性算分 (query score),根据新得到。
分布式搜索--elasticsearch ② elasticsearch 结合 kibana、Logstash、③ elasticsearch 是elastic stack的核心,(2) Lucene 与 elasticsearch 的区别。kibana 可以提供一个 elasticsearch 的。数值:long、integer、short、byte、① elasticsearch 是一款非常强大的开源。(1) mapping 是对索引库中文档的约束,常。一个相同 id 的文档。个 ik 分词器目录中的 config 目录中的。
RabbitMQ ① 在 publisher 服务中编写 application.yml,(2) 在 publisher 服务中利用 RabbitTemplate。① 在 consumer 服务中编写 application.yml,(3) 在 publisher 中编写测试方法,向 itcast.(3) 在 publisher 中编写测试方法,向 itcast.(2) 编写两个消费者,都监听 simple.queue。发送消息到 simple.queue 这个队列。(1) 生产者循环发送消息到 simple.queue。
Docker 理 Docker 指令,管理镜像、容器等。1) docker run 的命令中通过 -v 参数挂载。Docker 服务端发送指令,可以在。通过命令:docker images 查看拉取到的镜像。服务端(server):Docker 守护进程,负责处。当我们要修改 Nginx 的 html 内容时,(docker tag)镜像,以镜像仓库地址为。镜像仓库(Docker Registry)有公共的和。私服采用的是 http 协议,默认不被 Docker。在没有指定 tag 时,默认是 latest,代表。
Spring Cloud 在 user-service 和 order-service 的 application.yml。然后在 user-service 和 order-service 中的 pom。在 order-service 的 application.yml 文件中,添。修改 order-service 的 application.yml 文件,修改 order-service 的 application.yml 文件,例如,修改 order-service 的 application.yml。
Linux 常用命令 tar -zxvf hello.tar.gz:将 hello.tar.gz 文。tar -xvf hello.tar:将 hello.tar 文件进行。find /happy -name "*.java":在 /happy。tar -zcvf hello.tar.gz ./* :将当前目录下。到当前目录,并改名为 hi.txt。tar -cvf hello.tar ./*:将当前目录下所。hello.tar.gz 文件进行解压,并将解。happy/hello.txt:将 hi.txt 移动。
SpringBoot 基础 ② spring-boot-starter-parent中定义了若干个依赖管理。SpringBoot用来简化Spring应用的初始搭建和开发过程,@Controller 与 @ResponseBody 两个注解。SpringBoot提供,除非SpringBoot未提供对应。其中 @RequestBody、@RequestParam、如发生坐标错误,再指定Version(小心版本冲突)(2) SpringBoot 提供了多种属性配置方式。@PathVariable 用于接收路径参数,使用。
MyBatis-Plus 功能等同于UpdateWrapper,提供了Lambda表达式的语法可以避免填错列名。MyBatis-Plus 简称 MP,是 MyBatis 的。表是否被删除字段的状态。不到此条被删除的数据。建),将mybatis_plus库的 product。② 创建 UserService 的实现类并继承。在实体类中 uid 属性上通过 @TableId。己的实现类中实现自己的 Service 并继承。(2) @TableId 的 value 属性。只在属性 id 上添加注解 @TableId,
Java8新特性--Lambda表达式 Java 8 为了使现有的函数更加友好地。式接口,此时将该接口转换为 Lambda。返回语句,那么在省略第3种情况的。作为函数式接口的意图,Java 8增加。置函数式接口,也是 Java 8 伴随。是 Lambda 运算符,英文名是。支持 Lambda 表达式,引入了。数、参数类型和返回值都对的上),那。允许把函数作为一个方法的参数 (可以达到同样的效果,匿名内部类在。函数式接口在实际使用过程中很容易。了另一个方法,则该接口不再是函数。的脆弱性,并且能够明确声明接口是。认方法和静态方法不属于抽象方法,