
java
文章平均质量分 94
沙发斯蒂芬大大
这个作者很懒,什么都没留下…
展开
-
多线程基础
多线程基础/** 多线程* 创建线程任务两种方式* 1.继承Thread 类 重写run方法。此方法内容为多线程任务。* 2.通过d实现Runnable接口实现run方法。创建d对象 Ticket d = new Ticket(); 更常用。* 创建多线程* Thread t1 = new Thread(); 方式一*...原创 2018-09-14 10:51:43 · 126 阅读 · 0 评论 -
@RequestBody和@RequestParam区别
@RequestParam注解@RequestParam接收的参数是来自HTTP请求体或请求url的QueryString中。RequestParam可以接受简单类型的属性,也可以接受对象类型。@RequestParam有三个配置参数:required表示是否必须,默认为true,必须。 defaultValue可设置请求参数的默认值。 value为接收url的参数名(相当于key值)。@RequestParam用来处理Content-Type为applicatio...原创 2021-02-10 12:34:33 · 310 阅读 · 0 评论 -
WebApplicationInitializer启动分析
WebApplicationInitializer启动分析从Servlet 3.0 开始Tomcat已经支持注解式的配置。了解下,在注解的配置方式下,Web是怎样启动起来的。通过注解配置一个Web应用下面是一个通过注解实现一个简单的Web应用public class SpringWebInitializer extend AbstractAnnotationConfigDispatcherServletInitializer { //这里可以配置servlet,filter,转载 2021-01-08 13:06:32 · 463 阅读 · 0 评论 -
Redis Cluster
Redis Cluster是Redis官方提供的Redis集群功能1.为什么要实现Redis Cluster1.主从复制不能实现高可用2.随着公司发展,用户数量增多,并发越来越多,业务需要更高的QPS,而主从复制中单机的QPS可能无法满足业务需求3.数据量的考虑,现有服务器内存不能满足业务数据的需要时,单纯向服务器添加内存不能达到要求,此时需要考虑分布式需求,把数据分布到不同服务器上4.网络流量需求:业务的流量已经超过服务器的网卡的上限值,可以考虑使用分布式来进行分流5.离线计算,需要中间原创 2020-11-17 16:01:47 · 164 阅读 · 0 评论 -
Redis 的主从同步,及两种高可用方式
一、Redis 介绍Redis是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类key/value存储的不足,在.原创 2020-11-16 20:45:03 · 251 阅读 · 0 评论 -
redis详解
1.redis是什么2.redis的作者何许人也3.谁在使用redis4.学会安装redis5.学会启动redis6.使用redis客户端7.redis数据结构 – 简介8.redis数据结构 – strings9.redis数据结构 – lists10.redis数据结构 – 集合11.redis数据结构 – 有序集合12.redis数据结构 – 哈希13.聊聊redis持久化 – 两种方式14.聊聊redis持久化 – RDB15.聊聊redis持久化 – AOF16.聊聊原创 2020-11-11 16:16:31 · 221 阅读 · 0 评论 -
spring 配置 使用 redis
第二步:使用 Redis 连接池跟数据库连接池相同,Java Redis也同样提供了类redis.clients.jedis.JedisPool来管理我们的Reids连接池对象,并且我们可以使用redis.clients.jedis.JedisPoolConfig来对连接池进行配置,代码如下:JedisPoolConfig poolConfig = new JedisPoolConfig();// 最大空闲数poolConfig.setMaxIdle(50);// 最大连接数pool.原创 2020-11-11 15:48:56 · 920 阅读 · 0 评论 -
代理
Java的三种代理模式Java的三种代理模式1.代理模式代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能.这里使用到编程中的一个思想:不要随意去修改别人已经写好的代码或者方法,如果需改修改,可以通过代理的方式来扩展该方法举个例子来说明代理的作用:假设我...原创 2018-09-28 17:10:31 · 137 阅读 · 0 评论 -
LinkedHashMap
LRU实现LRU的原理使用双链表 + HashMap 来实现 LRU访问结点 get(key), 首先根据key 在map 中获取 结点的 引用, 然后把该结点由当前位置调整到链表尾部。插入结点 put(key,val) 首先尝试获取 key结点,若存在则修改节点值,且类似于访问,把结点调整到链表尾部。 若不存在该key, 则若LRU还有容量,则将该结点直接插在尾部,且插入到map中。 ...原创 2020-10-26 19:19:42 · 284 阅读 · 0 评论 -
PriorityQueue优先队列的使用
优先队列的本质就是一个堆。 本质是一个数组维护的堆结构。所以其继承自List.需要注意的是:publicPriorityQueue(intinitialCapacity) 中只是限制了他的初试容量。 但是,只要加入新的元素,该容器就可能会扩容。 所以 java中, 优先队列不能直接限制容量。比如: 我们要在n 个 数中找到 前k大的数。 若不加以其他限制,最终容器中会有n个元素,而不是K个。手动限制优先队列大小(无法通过某参数直接限制大小)找前 K 大 : 用小顶堆...原创 2020-09-07 18:44:09 · 283 阅读 · 0 评论 -
同步异步阻塞非阻塞
一、什么是同步?什么是异步? 同步和异步的概念出来已经很久了,网上有关同步和异步的说法也有很多。以下是我个人的理解: 同步就是:如果有多个任务或者事件要发生,这些任务或者事件必须逐个地进行,一个事件或者任务的执行会导致整个流程的暂时等待,这些事件没有办法并发地执行; 异步就是:如果有多个任务或者事件发生,这些事件可以并发地执行,一个事件或者任务的执行不会导致整个流程的暂时等待。这就是同步和异步。举个简单的例子,假如有一个任务包括两个子任务A和B,对于同步来说,当A...原创 2020-08-26 09:47:19 · 164 阅读 · 0 评论 -
IO印象笔记
File File 对象 * * //可以将一个已存在的,或者不存在的文件或者目录封装成file对象。 * 是对文件和目录本身和其包含文件和目录基本信息的描述。 创建对象只是在内存中,需要中creatnewfile 方法在外存中创建。 * * * File f1 = new File("c:\\a.txt"); * File...原创 2018-10-27 15:25:32 · 164 阅读 · 0 评论 -
单例模式大全
饿汉式// 饿汉式单例public class Hungry { // 可能会浪费空间 private byte[] data1 = new byte[1024*1024]; private byte[] data2 = new byte[1024*1024]; private byte[] data3 = new byte[1024*1024]; private byte[] data4 = new byte[1024*1024]; private原创 2020-08-24 09:40:09 · 164 阅读 · 0 评论 -
JUC(2)
JMMJava内存模型,不存在的东西,概念!约定!关于JMM的一些同步的约定1、线程解锁前,必须把共享变量立刻刷回主存。2、线程加锁前,必须读取主存中的新值到工作内存中!3、加锁和解锁是同一把锁解释: 该锁是jvm 层面的同步机制。jvm内存交互8种操作内存交互操作有8种,虚拟机实现必须保证每一个操作都是原子的,不可在分的(对于double和long类 型的变量来说,load、store、read和write操作在某些平台上允许例外)lock (锁定)...原创 2020-08-23 18:07:36 · 205 阅读 · 0 评论 -
JUC
目录Lock1. 监视器实现精准唤醒2.公平锁3.synchronized 和 Lock 的区别4. 8锁问题集合类不安全1.HashSet的本质就是一个HashMap2.List 不安全的解决3. Set不安全解决注意:CopyOnWriteArraySet 内部由CopyOnWriteArrayList构成4.Map 不安全的解决Callable1.与Runnable差别同一个FutureTask 实例, 只能被线程执行一次...原创 2020-08-20 19:37:34 · 211 阅读 · 0 评论