自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 资源 (1)
  • 收藏
  • 关注

原创 悲观锁 乐观锁

乐观锁 悲观锁是一种思想。可以用在很多方面。比如数据库方面。悲观锁就是for update(锁定查询的行)乐观锁就是 version字段(比较跟上一次的版本号,如果一样则更新,如果失败则要重复读-比较-写的操作。)JDK方面:悲观锁就是sync乐观锁就是原子类(内部使用CAS实现)本质来说,就是悲观锁认为总会有人抢我的。乐观锁就认为,基本没人抢。CAS 乐观锁乐观锁是一种思想,即认为读多写少,遇到并发写的可能性比较低,所以采取在写时先读出当前版本号,然后加锁操作(比较跟上一次

2021-07-20 16:31:47 128

原创 Redis缓存击穿、缓存穿透和缓存雪崩以及解决方案

缓存击穿一个存在的key,在缓存过期的一刻,同时有大量的请求,这些请求都会击穿到DB,造成瞬时DB请求量大、压力骤增。解决方案设置二级缓存如果应用中,某个功能中的较多业务链条上的数据都放在缓存中,注意设置不同的key的过期时间不同,确保这些缓存不会同时过期。加锁具体的业务逻辑想必大家都遇见过,比如先查redis再查库,然后设置到缓存,单机下这样没问题,分布式环境下高并发请求过来时,采用分布式锁,但是加锁一定程度上会带来性能问题,需要取舍。缓存穿透缓存穿透是指查询一个一定不.

2021-04-13 14:07:50 122

原创 StackOverflow和OutOfMemory区别

1 StackOverflow每当java程序启动一个新的线程时,java虚拟机会为他分配一个栈,java栈以帧为单位保持线程运行状态;当线程调用一个方法时,jvm压入一个新的栈帧到这个线程的栈中,只要这个方法还没返回,这个栈帧就存在。如果方法的嵌套调用层次太多(如递归调用),随着java栈中的帧的增多,最终导致这个线程的栈中的所有栈帧的大小的总和大于-Xss设置的值,而产生StackOverflowError溢出异常。2 OutOfMemory2.1 堆内存溢出java堆用于存放对象的实例,当

2021-03-25 15:18:21 534

转载 jdk8中接口的默认方法

在jdk8以前,接口中只允许存在抽象方法,在jdk8之后,接口中可以存在实现方法体的方法,但是这种方法必须被default修饰,称为默认方法。public interface TestInterface { default void test(){ System.out.println("default method"); } defa...

2020-05-08 10:50:16 337

原创 Java队列Queue使用

对于Queue来说,就是一个FIFO(先进先出)的队列,添加元素只能在队尾,移除只能在队首。对于这一组方法,成功返回true,在操作失败时抛出异常,这是与下面一组方法的主要区别。add(E e):添加一个元素到队尾remove():获取队首的元素,并从队列中移除element():获取队首的元素,但不从队列中移除这一组,成功返回true,失败时返回一个特殊值(取决于操作,...

2020-04-28 20:06:14 393

原创 Java中Math函数的基本使用

昨天看了一个面试题:Math.round(11.5) 少 等 于 多 少 ? Math.round(-11.5) 等于多少? 答案:Math 类中提供了三个与取整有关的方法:ceil、floor、round,这些方法的作用与它们的英文名称的含义相对应,例如,ceil 的英文意义是天花板,该方法就表示向上取整,Math.ceil(11.3)的结果为12,Math.ceil(-11.3)的...

2020-04-22 15:16:27 511

原创 快速安装和配置工作(Java)常用的开发工具

上周工作时,电脑突然出现问题,不断卡死和蓝屏,重装系统后才发现自己好多配置和工具安装在C盘,只能重新来过了,我却用了一个下午时间才解决(好多东西只能边百度边配置),为了防止下次再出现这样的问题,我把上周安装过程中出现的问题都记录下来。1.JDK第一步肯定是安装jdk,这一步一般不会出现什么问题,傻瓜式安装,只是不要忘记配置环境变量(JAVA_HOME和PATH)。2.IDEA我工作...

2019-12-09 15:33:32 111

原创 Java HashMap 初始化赋值

1、HashMap 初始化的文艺写法看完这段代码,很多人都会觉得这么写太啰嗦了,文艺青年一般这么来了:HashMap<String, String> map = new HashMap<String, String>() { { map.put("name", "test"); map.put("age", "20");...

2019-10-18 14:11:32 539

原创 (计算机网络)HTTP和HTTPS的区别

基本区别 1、https协议需要到CA申请证书,一般免费证书较少,因而需要一定费用。2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl/tls加密传输协议。3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。4、http的连接很简单,是无状态的;HTTPS...

2019-09-20 10:28:00 111

原创 IDEA的debug console消失

今天早上用IDEA开启项目,不小心把debug的console窗口点掉了,后来找了好久,终于找到了恢复console的方法。debug的左边栏有个按钮,可以重置视图,点击后就能恢复console窗口。...

2019-09-19 09:27:22 1350 1

原创 lombok基本使用

1Lombok1.1 简介官方介绍Project Lombok is a java library that automatically plugs into your editor and build tools, spicing up your java.Never write another getter or equals method again, with one ann...

2019-09-06 10:36:15 208

转载 OOP与AOP的区别与联系

OOP是面向对象编程,核心思想是将客观存在的不同事物抽象成相互独立的类,然后把与事物相关的属性和行为封装到类里,并通过继承和多态来定义类彼此间的关系,最后通过操作类的实例来完成实际业务逻辑的功能需求。AOP是面向切面编程,核心思想是将业务逻辑中与类不相关的通用功能切面式的提取分离出来,让多个类共享一个行为,一旦这个行为发生改变,不必修改类,而只需要修改这个行为即可。1、区别:面向领域不同A...

2019-05-07 16:14:03 526

原创 Java基础入门

eclipse中的快捷键https://blog.csdn.net/chengly0129/article/details/49248881Switch用法switch语句,case后值相对应,则输出每个后面的syso;如果输入的不是case后的值,则需要一个default,吧所有不符合的值输出一个syso。. do-while语句和while的区别do-while语句是一种后测试...

2018-10-13 15:52:08 284

vue2-elm-master.zip

vue仿饿了么前台系统 学习vue的小伙伴可以拉下来练手。 -技术栈 vue2 + vuex + vue-router + webpack + ES6/7 + fetch + sass + flex + svg

2020-04-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除