自定义博客皮肤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)
  • 收藏
  • 关注

原创 Mybatis 整合Spring扫描

Mybatis 整合Spring 其主要的原理是通过了 @import()

2023-10-15 20:37:08 194 1

原创 自旋锁的原理

思路:每当有线程获取锁的时候,就给该线程分配一个递增的id,我们称之为排队号,同时,锁对应一个服务号,每当有线程释放锁,服务号就会递增,此时如果服务号与某个线程排队号一致,那么该线程就获得锁,由于排队号是递增的,所以就保证了最先请求获取锁的线程可以最先获取到锁,就实现了公平性。可以想象成银行办理业务排队,排队的每一个顾客都代表一个需要请求锁的线程,而银行服务窗口表示锁,每当有窗口服务完成就把自己的服务号加一,此时在排队的所有顾客中,只有自己的排队号与服务号一致的才可以得到服务。Java如何实现自旋锁?

2023-09-25 11:42:09 117 1

原创 Spring Bean的完整生命周期

很简单,使用Java关键字 new 进行Bean 的实例化,然后该Bean 就能够使用了。一旦bean不再被使用,则由Java自动进行垃圾回收。————————————初始化————————————————————————销毁————————————在传统的Java应用中,Bean 的生命周期概括起来就是。

2023-09-18 08:48:04 346

原创 BeanFactory,ApplicationCotext,FactoryBean

BeanFactory,ApplicationCotext,FactoryBean特点以及区别

2023-09-10 21:40:49 243 1

原创 动态代理详解

刨析动态代理底层源码

2023-09-03 22:40:41 921

原创 volatile和synchronized的区别

(a非long和double类型) 这个操作是不可分割的,那么我们说这个操作时原子操作。这个变量a具有可见性,但是a++ 依然是一个非原子操作,也就是这个操作同样存在线程安全问题。Java 语言提供了 volatile 和 synchronized 两个关键字来保证线程之间操作的有序性,volatile 是因为其本身包含“禁止指令重排序”的语义,synchronized 是由“一个变量在同一个时刻只允许一条线程对其进行 lock 操作”这条规则获得的,此规则决定了持有同一个对象锁的两个同步块只能串行执行。

2023-08-06 20:54:23 201

原创 Servlet和生命周期

Servlet(Server Applet),全称Java Servlet,未有中文译文。是用Java编写的服务器端程序。其,生成动态Web内容。,一般情况下,人们将Servlet理解为后者。Servlet运行于支持Java的应用服务器中。从实现上讲,Servlet可以响应任何类型的请求,但绝大多数情况下。

2023-07-26 20:40:48 108 1

原创 HTTP和HTTPS的区别

HTTP和HTTPS的区别

2023-07-23 19:33:44 280

原创 哈希表的底层原理

这个代码中这个扩容部分我们要仔细的说一说,但负载因子大于0.75的时候,我们需要降低哈希冲突,因为我们的元素个数是一定的,所以我们就需要增大散列表的大小,但是当我们扩容的时候,我们会打乱原来的散列表,比如原来4和14都是在节点4的位置,当我们二倍扩容的时候我们就需要将14放到节点14的位置。:开散列又叫链地址法(开链法),首先对关键码集合用哈希函数计算出哈希地址,具有相同的地址的关键码归于同一子集合,每一个子集称作一个桶,各个桶中的元素通过一个单链表连接器起来,各链表的头节点都存储在哈希表中。

2023-07-16 13:05:20 394 1

原创 26.删除有序数组中的重复项

nums[i] 说明该值是一个新出现的值 将它放到新数组中。// 由于X是从 nums[0]开始的 故返回pos需要加上nums[0] 故需要加一!// 如果 新数组的最后一个值等于原本数组的值 说明重复 继续遍历下一个值。//每次找到数组中一个新的值, 就将它赋给X 进行下一次的判断。// 长度正确的期望答案。// 遍历数组的每一个值 因为题目给的条件是。

2023-07-09 20:46:35 464 1

原创 String类的特性

1)字符串,使用 “ ” 来表示2)string声明为final的,不可被继承3)string实现了,serializable接口,表示字符串是支持序列化的4)string内部定义了value用以存储字符串数据5)通过字面量的方式(区分于new的方式)创建字符串时,此时字符串值声明在字符串常量池中;其实new也是,只不过是间接引用。

2023-06-04 10:18:14 92 1

原创 ==与euqals的区别

另外,equals()方法存在于Object类中,而Object类是所有类的直接或间接父类,所以说所有类中的equals()方法都继承自Object类,在没有重写equals()方法的类中,调用equals()方法其实和使用==的效果一样,也是比较的是引用类型的变量所指向的对象的地址,不过,Java提供的类中,有些类都重写了equals()方法,重写后的equals()方法一般都是比较两个对象的值,比如String类。其实==比较的不管是基本数据类型,还是引用数据类型的变量,比较的都是值,只是。

2023-05-21 18:02:15 149 1

原创 基于TCP网络编程的聊天室的实现

思路:服务器提供ServerSocket 配置好端口号 8088serverSocket.accept 进行侦察有没有客户端进行连接 同时还需要进行已经接受到的客户端的信息交换的功能故需要开辟一个服务器的子线程进行数据的交换 同时 serverSocket.accept 在主线程中进行侦察连接。

2023-05-14 20:39:21 243 2

MySql复习的思维导图

整理的MySql的复习思维导图

2023-05-14

空空如也

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

TA关注的人

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