体制内考试
四川事业编德阳职测(A类)试卷组成:
常识判断:主要测查应试人员应知应会的基本知识以及运用这些知识进行分析判断的基本能力,重点测查综合管理基本素质,涉及国情、政治、经济、文化、法律、科技等方面
语言理解与表达:主要测查应试人员准确理解和把握文字材料内涵、进行思考和交流的能力,包括理解语句之间的逻辑关系,概括材料主旨,把握主要信息及重要细节,准确和得体地遣词用字、表达观点等
文章单选:
段落结构:
总分
分总
总分总
分总分
转折关键词
然而。。。
问题描述,然后接入总分结构
总结:
文章结构入手:段首,段尾
段落排序
对比选项,确定首句
寻找线索,确定捆绑
承前启后
段落分析
标题
文章结构,分总从最后一段找
文段理解
仔细阅读
上下文章衔接
后续部分需要包含主题
选词填空
单个词
多个词
文字表达上可以排除选项
过于绝对的
无中生有
数量关系:主要测查应试人员理解、把握事物间量化关系和解决数量关系问题的能力,主要涉及数据关系的分析、运算和推断等
判断推理:
图形推理
定义判断
类比推理
逻辑判断:每道题给出一段陈述,这段陈述被假设是正 ...
Spring-Security(一) 基础理论部分
SpringSecuritySpringSecurity是Spring官方提供的安全访问控制解决方案,功能强大,高度定制,不需要配置特殊的Java认证和授权服务,通常的使用它就可以了。
SpringSecurity是通过一系列Servlet的Filter来完成权限认证的,它可以运行在任何的Servlet的应用中,它可以不是Spring的应用。
架构FilterChain客户端发送请求到服务器,mvc应用中,Servlet作为DispatchServlet的实现,它能够处理一个的HttpServletRequest和HttpServletResponse,同时,这期间会有若干个Filters。它们有如下作用:
防止下游过滤器被调用。在这种情况下,过滤器通常会写入HttpServletResponse。
修改使用到下游Filters和Servlet的HttpServletRequest和HttpServletResponse
过滤器只影响下游的过滤器和servlet,因此调用每个过滤器的顺序非常重要
DelegatingFilterProxy它是作为Spring容器和Servlet容器 ...
SpringBoot源码系列(三)
Spring中的核心类我们从之前的启动流程中,已经分析了很多启动中的代码,但是,对于部分地方我们还是比较简略的,现在我们就根据启动的流程,进一步探索一下SpringBoot中的一下比较重要的类,并了解他们的作用
EnvironmentApplicationContextAwareBeanPostProcessorBeanFactoryFactoryBean
SpringBoot实现接口加密和解密
SpringBoot实现接口加密和解密日常使用不可避免一些特别的业务场景,需要我们对数据进行保密控制,一般使用aop对接口进行加密&解密比较耦合,不利用后续服用,我们可以创建一个starter项目,提供加密解密功能
核心点
自定义starter功能
拦截请求进行解密
拦截响应进行加密
请求数据流多次读取
项目创建
advice目录: 拦截响应或者请求并更具注解进行加密&解密
config目录:自动配置及其额外的自定义配置项
entity目录: 定义两个实体类,在starter引入的项目中的,对加密和解密进行一些特殊字段的定义
request请求流处理
问题: 在接口调用链路中,request的请求流只能调用一次,处理之后,如果后续还想用到请求流,就会发现数据为空。
为什么会这样: 传统的http请求流中,请求流是一个单向流动的过程,一旦读取之后,就不能再次重复读取了。这是由于http协议的设计和工作原理所决定的
解决方法: 既然http只能读取一次,我们可以将它缓存到另一个可以重复读取的流中,让我们任意时刻进行读取
具体解决方法如下:
继承HttpServletR ...
ByteBuffer使用
ByteBuffer为了避免操作一下字节数组的繁琐和避免重复造轮子,jdk推出了bytebuffer作为载体操作字节数组。netty是一个网络框架,也推出了类似的载体netty.ByteBuf
前置知识已知NIO的主要包括三个组件: Buffer, Channel, Selector。Buffer就是作为一个消息的载体,在Channel中进行传递,用户可以从中获取消息,也可以把消息放入其中进行传递。
ByteBuffer就是Buffer的子类,是字节缓冲区,特点如下:
大小不可变
读写灵活
支持堆上内存分配和直接内存分配
Buffer缓冲区是特定的基本类型元素的线性有限序列。出去内容,和包含三个重要的元素: capacity, limit, position
capacity: 元素集包含的数量。它不会为负数也不会变
limit: 不能读写的第一个元素的索引。它不会为负数也不会比capacity大
position: 下一个读写的元素的索引。它不会为负数也不会比limit大
线程安全在多线程环境下,buffer不是线程安全的。如果多线程访问,需要进行同步控制
只读情况
每个b ...
大文件断点续传
大文件上传–分片上传分片上传,就是将所要文件,按照一定的大小,将整个文件分割为多个数据块来进行分别上传,上传完再由服务端对所有上传的文件进行汇总成原始的文件。
主要使用场景:
网络不好:上传失败的时候,可以对失败的part进行独立的重试,而不需要上传其他部分
断点续传:中途上传暂停,可以从上次上传的part继续
加速上传:上传的文件很大时,可以分part加速上传
流式上传:不确定上传文件大小时候开始上传
文件较大:文件大,默认采用分片上传
大致流程:
将上传的文件按照规则进行分割成大小统一的数据块
初始化一个上传任务,返回本次分片上传唯一标识
按照一定的策略发送各个分片数据
发生完成后,服务端根据判断上传数据是否完整,如果完整,则组合得到原始文件,并返回上传路径
准备采用前后端分离完成上传功能
前端部分后端部分
方案一:RandomAccessFile读取文件,通过设计偏移量进行文件拼装
123456789101112// 更具参数创建或者获取已经上传过分片的文件File tmpFile = super.createTmpFile(param);// 创建随机文件流Rand ...
面试问题汇总
面试问题汇总个人遇到的比较有意义的面试题总结
MySQL
b树和b+树的区别
b树和b+树数据结构
索引的分类
常见的数据库优化方式(非索引): 分库分表,主从同步…
数据库查询的执行过程
数据库事务的执行过程
分库分表之后如何进行跨表查询
Redis
常见的数据类型: String, Hash, 列表list,无序集合set,有序集合ZSet
redis数据类型的底层结构
redis如何保证并发安全
redis的持久化方式及其区别: rdb, aof。默认的是哪一种? rdb + aof(4.0之后是混合模式)
redis的线程模型
多种模式的区别和特点:单机,主从,哨兵,集群 一文读懂Redis的四种模式,单机、主从、哨兵、集群
Java基础JVM
JVM调优的方法
JVM堆三个部分
新生代之间老生代变化过程
新生代年龄到多少变化为老生代: 15岁
15岁这个年龄变化是如何确定的
元空间(永久代)的存放数据包含哪些
集合
HashMap的负载因子是多少?
HashMap的负载因子为什么设定为0.75
HashMap的链表阀值
多线程
线程池的生命周期
线程池的原理
线程的 ...
Sentinel + Nacos + Gateway 整合
SpringCloud Alibaba Sentinel + SpringCloud Alibaba Nacos + SpringCloud Gateway 整合这套组合,它们兼具了网关,熔断限流,还包括配置中心,注册中心,是作为一个微服务的基础。现在我们就来是用下这套组合,分析下优劣情况。
引入jar包12345678910111213141516171819202122232425262728293031323334353637<dependencies> <!-- gateway网关 --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-gateway</artifactId> </dependency> <!-- nacos注册中心 --> <dependency> ...
Sentinel (一)
Sentinelsentinel是面向分布式、多语言异构化服务架构的流量治理组件,主要以流量为切入点,帮助开发者保障微服务的稳定性。它包括如下几个纬度:
流量路由
流量控制
流量整形
熔断降级
系统自适应过载保护
热点流量防护
Sentinel的基础概念
资源: 代表被sentinel保护的对象,可以是Java程序中的任意内容。大部分情况下可以uri,签名等
规则: 对资源进行条件设定,可以动态调整的规则
核心功能流量控制根据系统的处理能力对流量进行控制。控制面有如下几个角度:
资源的调用关系: 调用链路,系统间调用
运行指标: qps,线程池,系统负载等
控制的效果: 限流,冷启动,排队
熔断降级如果某个资源发生异常,并堆积了很多请求,那么可能会影响到其它系统的稳定性。如果异常比例升高,则对这个资源进行限制,并让其快速请求失败
设计的理念:
并发线程数进行限制: 请求堆积,线程数就会越来越多,对其进行限制,超出上限之后,对其它的请求进行拒绝
通过响应时间对资源进行降级: 当依赖的资源出现响应时间变长,所有对该资源的访问就会拒绝
sentinel于hystrix对比: ...


