- 博客(19)
- 资源 (1)
- 收藏
- 关注
原创 Java反射使用总结
Java反射使用总结Class对象检查一个类之前,必须获取到java.lang.Class对象,java中的所有类型,包括long,int,数组等基本数据类型,都和Class对象有关系。我们很多人去医院参加体检的时候,都做过B超检查,医生只需把一个探头在我们身上滑动就可以将我们体内的肝、胆、肾等器官反射到B超设备上显示。Class类对象就相当于B超的探头,将一个类的方法、变量、接口、类名、类修饰符等信息告诉运行的程序。Java提供了两种方式获取Class对象,一种是使用.class,另外一种是使用
2021-09-20 19:53:48
224
原创 Redis缓存穿透、缓存击穿、缓存雪崩解决方案
Redis缓存穿透、缓存击穿、缓存雪崩解决方案缓存穿透指查询一个一定不存在的数据,如果从存储层查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到 DB 去查询,可能导致 DB 挂掉。解决方案:i. 查询返回的数据为空,仍把这个空结果进行缓存,但过期时间会比较短ii. 布隆过滤器:将所有可能存在的数据哈希到一个足够大的 bitmap 中,一个一定不存在的数据会被这个 bitmap 拦截掉,从而避免了对 DB 的查询。缓存击穿对于设置了过期时间的 key,缓存在某个时间点过期的时候,恰
2021-09-20 19:53:19
175
原创 常用4种限流算法介绍及比较
常用4种限流算法介绍及比较计数器计数器限流方式比较粗暴,一次访问设置一次计数,在系统内设置每秒的访问量,超过访问量的访问直接丢弃,实现访问限流.这种算法的弊端就是,在开始的时间,访问量被使用完后,1S内会有长时间的真空期是处于接口不可用的状态的.实现方式和拓展方式很多.比如可以使用redis进行1S的100次访问计数,来一个流量100-1当数量到达0时,拒绝后续的访问.也可以不拒绝而是将请求放入缓存队列,根据实际业务情况选择不同的实现方式.漏斗在计数器算法中我们看到,当使用了所有的访问量后,接口会
2021-09-20 19:52:43
893
原创 12个操作系统知识点
12个操作系统知识点问题一、操作系统的基本特征1、并发并发指一段时间内能同时运行多个程序,并行指同一时刻能运行多个指令。操作系统通过引入进程和线程,使得程序能够并发运行。2、共享共享是指系统中的资源可以被多个并发进程共同使用。它主要有两种共享方式:互斥共享和同时共享。多个应用并发执行的时候,宏观上要体现出它们在同时访问资源的情况,而微观上要实现它们的互斥访问。比如说我们说到的内存。3、虚拟虚拟技术把一个物理实体转换为多个逻辑实体。利用多道程序设计技术(程序的交替运行),让每个用户都觉得有一个计
2021-09-20 19:52:07
376
原创 Spring 循环依赖
Spring 循环依赖一、创建循环类@Servicepublic class UuServive { @Autowired IiServive iiServive; public UuServive (){ System.out.println("UuServive 实例化成功--------"); }}@Servicepublic class IiServive { @Autowired UuServive uuSe
2021-06-07 10:35:46
142
原创 Spring Bean 的生命周期
Spring Bean 的生命周期Spring启动,查找并加载需要被Spring管理的bean,进行Bean的实例化Bean实例化后对将Bean的引入和值注入到Bean的属性中如果Bean实现了BeanNameAware接口的话,Spring将Bean的Id传递给setBeanName()方法如果Bean实现了BeanFactoryAware接口的话,Spring将调用setBeanFactory()方法,将BeanFactory容器实例传入如果Bean实现了ApplicationContext
2021-06-07 10:35:01
98
原创 Spring MVC 的工作流程
Spring MVC 的工作流程文字描述1)用户发送请求到前端控制器DispatcherServlet2)DispatcherServlet 收到请求调用 HandleMapping处理器映射器3)处理器映射器找到具体的处理器(可以根据xml配置文件、注解进行查找),生成处理器及处理器拦截器(如果有则生成)一并返回给DispatcherServlet4)DispatcherServlet 调用HandleAdapter处理器适配器5)HandleAdapter经过适配器调用具体的处理器(Cont
2021-06-07 10:34:29
108
原创 字符串操作的三个类
字符串操作的三个类字符串操作有String 、 StringBuilder、StringBuffer三个类StringString 所维护的数组是一个final修饰的数组,是不可变的,所以String字符串的每次修改操作都会新建一个字符串对象,非常的耗资源。StringBuilderStringBuilder 是一个继承了一个 AbstractStringBuilder 类这个类中维护的是一个普通的char数组,他的操作是通过appand()方法进行操作的 只有在最后toString的时候
2021-06-07 10:33:17
349
原创 Map集合
Map集合HashMaphashMap维护的是一个数组+Entry链表 或者 红黑树的结构数组是经过hash散列得到的存储下标,将数据尾插入对应数组下标所维护的链表里当链表长度大于8时就升级变成红黑树来优化查询效率,当长度小于6时又会降级变成链表Entry链表能否可以使用LinkList替换?当然可以。hashMap的扩容机制( resize() )/** * Initializes or doubles table size. If null, allocates in
2021-06-07 10:32:25
121
原创 ArraryList与LinkList
ArraryList与LinkListArraryListArraryList本类中维护的是一个数组,这对于查询来说效率很高,并且支持下标查询,但是对于经常做插入删除的操作来说效率比较低。private static final int DEFAULT_CAPACITY = 10;ArraryList的初始大小(未指定的情况下,无参构造)是0个,当我们添加元素的时候public boolean add(E e) { ensureCapacityInternal(size + 1); /
2021-06-07 10:31:30
492
原创 12个操作系统知识点
12个操作系统知识点问题一、操作系统的基本特征1、并发并发指一段时间内能同时运行多个程序,并行指同一时刻能运行多个指令。操作系统通过引入进程和线程,使得程序能够并发运行。2、共享共享是指系统中的资源可以被多个并发进程共同使用。它主要有两种共享方式:互斥共享和同时共享。多个应用并发执行的时候,宏观上要体现出它们在同时访问资源的情况,而微观上要实现它们的互斥访问。比如说我们说到的内存。3、虚拟虚拟技术把一个物理实体转换为多个逻辑实体。利用多道程序设计技术(程序的交替运行),让每个用户都觉得有一个计
2021-06-07 10:29:04
818
原创 == 与equals的区别
== 与equals的区别首先我们的jvm的内存结构,jvm 基本可分为两个区域,一个是共享内存区,一个是非共享内存区,共享内存区有虚拟机栈 本地方法栈,程序计数器,共享内存区有堆和方法区。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JQ3jroD9-1623032778734)(https://ftp.bmp.ovh/imgs/2021/06/428f1daec89c8d7c.png)]栈帧中有局部变量表,操作数栈,动态连接,返回地址四个模块。而我们的每一个线程的
2021-06-07 10:27:26
85
原创 IDEA 导入 jbolt项目(实验室非公开项目)
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录准备一、准备数据库二、IDEA导入jbolt项目准备在实验室群文件中下载jbolt.zip和mysql.sql两个文件将其解压到自己的目录下一、准备数据库打开Navicat新建一个jbolt数据库(字符集为utf8)导入mysql.sql文件数据库导入完毕二、IDEA导入jbolt项目点击打开一个项目选择jbolt文件夹以Maven形式打开打开pom.xml 在里面添加jetty-server依赖
2020-09-27 21:57:53
868
1
原创 IDEA 安装Maven及配置仓库
文章目录准备1、解压并配置Maven2、配置IDEA总结准备下载maven:http://maven.apache.org/download.cgi下载本人repository:百度云盘:43sd1、解压并配置Maven将Maven压缩包和repository压缩包解压打开maven里conf文件夹中的setting.xml添加阿里云maven地址<mirrors> <mirror> <id>alimaven</id>
2020-09-27 21:27:53
419
原创 Windows JDK8 安装
Windows JDK8 安装准备步骤安装完成准备准备jdk8官网下载:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html根据自己的系统下载对应的jdk下载完成步骤双击打开安装程序一直点击下一步直到结束,使用默认安装路径!!安装完成查看自己计算机中是否有jdk C:\Program Files\Java...
2020-09-27 20:39:28
268
原创 关于Ajax使用后还是跳转的问题
今天用Ajax该一个学长项目的时候发生了这样子的事情明明使用了异步提交,可是还是页面跳转。弄得我满头大汗。。。先上代码function checkUsername(){ //alert("用户名校验"); //获取用户名 var username = $("#username").val(); //正则定义...
2019-09-27 21:26:07
393
1
原创 c语言中的指针函数问题
c语言中的指针函数问题先看一个小例子:#include &lt;stdio.h&gt;#include &lt;stdlib.h&gt;#include &lt;string.h&gt;int *add(int *a) //建立一个指针函数,使输入的数加10//{ int *p; p=a; *p+=10; return p;}int
2018-12-29 23:37:34
289
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人