自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 【ThreadLocal】源码分析

强引用:使用最普遍的引用,一个对象具有强引用,不会被垃圾回事器回收。当内存空间不足,Java虚拟机宁愿OutMemoryError错误,使程序异常终止,也不回事这种对象。弱引用:JVM进行垃圾回收时,无论内存是否充足,都会回收被弱引用关联的对象。每一个Thread维护一个ThreaLocalMap,key为使用弱引用的ThreaLocal实例,value为线程变量的副本。如果想取消强引用和某个对象的之间的关联,可以显式地将引用赋值为null,这样可以使JVM在合适的时机就会回收该对象。

2023-05-07 20:00:47 99

原创 HashMap扩容机制

HashMap的底层有数组 + 链表(红黑树)组成,数组的大小可以在构造方法时设置,默认大小为16,数组中每一个元素就是一个链表,jdk7之前链表中的元素采用头插法插入元素,jdk8之后采用尾插法插入元素,由于插入的元素越来越多,查找效率就变低了,所以满足某种条件时,链表会转换成红黑树。(如开始创建HashMap集合后,数组长度为16,临界值为16 * 0.75 = 12,当加入元素后元素个数超过12,数组长度扩容为32,临界值变为24)核心扩容的方法resize()

2023-05-07 13:45:01 349

原创 如何解决IDEA中JDK版本变到5了

哎,

2023-04-16 11:49:15 685

原创 registryResult:ReturnT [code=500, msg=The access token is wrong., content=null]

调度器默认token是:default_token。执行器也需要对应上token,否则一直注册不上去。在项目集成xxl-job发现执行器一直注册不上去,心跳报错。application.properties文件。微信公众号:一只Java程序猿。重启项目就不会出现这个错误。我自己的工程中xxl配置。xxl-job项目中。

2023-04-09 11:40:09 6216 2

原创 @PostConstruct注解详解

@PostConstruct注解详解

2023-03-27 23:32:07 67

原创 SpringBoot整合Dubbo:注册失败问题 [DUBBO] BeanNameGenerator bean can‘t be found in BeanFactory with name

SpringBoot整合Dubbo:注册失败问题 [DUBBO] BeanNameGenerator bean can't be found in BeanFactory with name

2023-03-26 17:46:39 712 1

原创 Lock和synchronized有一下几点不同

synchronized在发生异常时,会自动释放线程占有的锁,因此不会导致死锁现象发生,而Lock在发生异常时,如果没有主动通过unLock()去释放锁,则很可能造成死锁现象,因此使用Lock时需要在finally块中释放锁;Lock可以让等待锁的线程响应中断,而synchronized却不行,使用synchronize时,等待的线程会一直等待下去,不能够响应中断;Lock是一个接口,而synchronized是Java中的关键字,synchronized是内置的语言实现。

2023-01-31 13:29:28 82

原创 抽象类的应用:模板方法的设计模式

【代码】抽象类的应用:模板方法的设计模式。

2023-01-15 10:07:46 61

原创 【答辩问题】计算机专业本科毕业设计答辩详细指导

下面是总结的一些答辩期间的问题(结合论文中出现过的整理)

2023-01-14 11:02:29 873

原创 一文搞懂单例设计模式之饿汉式和懒汉式

一文搞懂单例设计模式之饿汉式和懒汉式

2023-01-14 10:48:52 64

原创 面试题 == 和 equals()区别

说明Object类中定义的equals()和==的作用是相同的,比较两个对象的地址值是否相同,即两个引用是否指向同一个对象实体。* 4.像String,Date,File,包装类等都重写了Object类中的equals()方法,是否相同。* 重写以后,比较的不是两个引用地址是否相同,而是比较两个对象的“实体内容”* 如果比较的是引用数据类型变量,即两个引用是否指向同一个对象实体。* 2.如果比较的是基本数据类型变量,比较两个变量保存的数据是否相等。* 2.只能适用于引用数据类型。

2023-01-08 19:43:08 49

原创 面向对象特征之三:多态性

对于编译器而言,这些同名的方法就成了不同的方法。Java重载是可以包括父类和子类的,即子类可以重载父类的同名不同参数的方法。子类定义了与父类同名同参数的方法,在多态情况下,将此时父类的方法称为虚拟方法,父类根据赋给它不同子类对象,动态调用属于子类的该方法。编译时e为Person类型,而方法调用是在运行时确定的,所以调用的是Student类的getInfo()方法-----动态绑定。有了对象的多态性以后,我们在编译期,只能调用父类种声明的方法,但在运行期,我们实际执行的是子类重写父类的方法。

2023-01-08 14:22:36 87

原创 实现一个自旋锁

自旋锁的好处:循环比较获取没有类似wait的阻塞。

2022-12-28 21:26:12 48

原创 为什么会有公平锁/非公平锁的设计

1.恢复挂起的线程到真正锁的获取还是有时间差的,从开发人员来看这个时间微乎其微,但是从CPU的角度来看,这个时间差存在的还是很明显的。所以非公平锁能够充分的利用CPU的时间片,尽量减少CPU空虚状态时间。2.使用多线程很重要的考量点是线程切换的开销,当采用非公平锁时,当1个线程请求获取同步状态,然后释放同步状态,所以刚释放锁的线程此刻再次获取同步状态的概率就变得非常大,所以就减少了线程的开销。为什么会有公平锁/非公平锁的设计?

2022-12-26 20:36:41 74

原创 【强制】高并发时,同步调用应该去考量锁的性能损耗。能用无锁数据结构,就不要用锁;能 锁区块,就不要锁整个方法体;能用对象锁,就不要用类锁。

【强制】高并发时,同步调用应该去考量锁的性能损耗。能用无锁数据结构,就不要用锁;能 锁区块,就不要锁整个方法体;能用对象锁,就不要用类锁。说明:尽可能使加锁的代码块工作量尽可能的小,避免在锁代码块中调用 RPC方法。锁的是实例对象本身,就是new出来的具体实例对象本身。锁的是类对象本身,就是唯一模板class。

2022-12-26 20:28:26 393

原创 List集合线程不安全

List集合线程不安全Exception in thread "64" java.util.ConcurrentModificationException运行结果: 查看ArrayList 添加方法源码解决方案3种第一种 VectorList list = new Vector();第二种 Collections解决List list = Collections.synchronizedList(new ArrayList());第三种CopyOnWrit

2022-12-24 11:23:57 118

原创 多线程编程步骤

4. 防止虚假唤醒问题 (wait()方法要放在循环里)3. 创建多个线程,调用资源类的操作方法。

2022-12-24 10:08:30 94

原创 双亲委派机制

jwm

2022-10-12 20:40:04 84

原创 1. 两数之和

你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。整数,并返回它们的数组下标。你可以按任意顺序返回答案。,请你在该数组中找出。

2022-10-12 20:27:11 64

原创 分布式系统唯一ID生成方案汇总

系统唯一ID是我们在设计一个系统的时候常常会遇见的问题,也常常为这个问题而纠结。生成ID的方法有很多,适应不同的场景、需求以及性能要求。所以有些比较复杂的系统会有多个ID生成的策略。下面就介绍一些常见的ID生成策略。

2022-10-01 10:31:50 185

原创 【JUC】高并发编程

【代码】【JUC】高并发编程。

2022-09-24 22:31:30 42

原创 单链表代码实现

【代码】单链表代码实现。

2022-08-22 14:43:01 115

原创 数组模拟队列代码实现

【代码】数组模拟队列代码实现。

2022-08-19 14:30:40 95

原创 二维数组转稀疏数组的思路分析

二维数组转稀疏数组的思路分析

2022-08-18 12:29:58 37

原创 go语言:简单的聊天系统之socket编程

TCP/IP(Transmission Control Protocol/Internet Protocol) 即传输控制协议/网间协议,是一种面向连接(连接导向)的、可靠的、基于字节流的传输层(Transport layer)通信协议,因为是面向连接的协议,数据像水流一样传输,会存在黏包问题。...

2022-07-31 10:15:50 524

原创 PC寄存器常见的问题(1)使用PC寄存器存储字节码指令地址有什么用

使用PC寄存器存储字节码指令地址有什么用因为CPU需要不停的切换各个线程,这时候切换回来以后,就得知道接着从哪开始继续执行。JVM的字节码解释器就需要通过改变PC寄存器的值来明确下一条应该执行什么样的字节码。 微信公众号:一只Java程序猿 欢迎点赞关注哦...

2022-06-24 21:57:45 161

原创 详细讲解ThreadLocal内存泄漏

实线代表强引用,虚线代表弱引用每一个Thread维护一个ThreadLocalMap, key为使用弱引用的ThreadLocal实例,value为线程变量的副本。强引用,使用最普遍的引用,一个对象具有强引用,不会被垃圾回收器回收。当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不回收这种对象。如果想取消强引用和某个对象之间的关联,可以显式地将引用赋值为null,这样可以使JVM在合适的时间就会回收该对象。弱引用,JVM进行垃圾回收时,无论内存是否充足,都会回收

2022-06-18 09:26:27 89

原创 【解决】org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.hejun.blog

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):

2022-05-22 13:09:08 92

原创 Java小程序之可视化日历

Java小程序之可视化日历

2022-05-15 11:30:43 161

原创 面向对象的内存分析

面向对象和面向过程的总结都是解决问题的思维方式,都是代码组织的方式 解决简单问题可以使用面向过程 解决复杂问题:宏观上使用面向对象把握,微观处理上仍然是面向过程面向对象思考方式遇到复杂问题,先从问题中找名词,然后确立这些名词哪些可以作为类,再根据问题需求确定类的属性和方法,确定类之间的关系....

2022-03-05 10:09:03 129

空空如也

空空如也

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

TA关注的人

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