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

原创 CopyOnWriteArrayList核心代码逐步阅读

LinkedTransferQueue类的transfer()方法是Java中的内置函数,通常用于将元素传输到正在等待接收的线程中,如果没有线程等待,则它将等待直到线程尽快进入等待状态等待线程到达的元素将被转移到其中。当一个对象被序列化的时候,transient型变量的值不包括在序列化的表示中,然而非transient型的变量是被包括进去的。if (h == t || t.isData == isData) { //只有一个节点,在指定位置替换元素时,是将旧的数组切割成两份,赋值给新数组。

2023-07-17 19:30:41 91 1

原创 Java多线程的4种创建方式

/ 方式3 : 通过实现Callable接口。// 方式2:通过实现Runnable接口。// 方式1: 通过继承Threa类。// 方式: 通过创建线程池对象。

2023-07-14 16:43:31 96 1

原创 Java多线程模拟窗口售票系统

/ 注意:休眠过程中,当前线程不会让出持有的"this锁",此处为引发错误的原因。// wait会释放锁,一个线程用完后会释放锁,让别人抢占,自己休眠1000毫秒,休眠结束继续跟别的线程一起抢占。// sleep休眠时不会释放锁,还会把锁抱着休眠,休眠结束还是有锁,因此一直是一个窗口在卖票。// 创建3个线程,用于模拟3个不同的售票窗口,共同卖出公共票池中的20张门票。// 当前线程休眠1000毫秒,模拟延迟。// 公共票池,默认门票数量为20张。// 创建公共票池时,传入默认总门票数。

2023-07-14 14:49:37 487 1

原创 Java--多线程基础

在Windows系统中,每一个正在执行的exe文件或后台服务,都是一个进程,由操作系统统一管理并分配资源,因此进程是动态的。例如:正在运行中的浏览器就是一个进程,正在运行中的音乐播放器是另一个进程,同理,正在运行中的QQ和WPS等都是进程。简单来说,一个进程就是一个执行中的程序,它在计算机中一个指令接着一个指令地执行着, 同时,每个进程还占有某些系统资源如 CPU时间,内存空间,文件,输入输 出设备的使用权等。线程可以看做轻量级的进程,每个线程都有自己独立的运行栈和程序计数器,线程之间切换,资源开销小;

2023-07-13 19:38:18 83 1

原创 Java反射reflect总结

Java反射机制是在系统运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为Java的反射机制。

2023-07-12 19:32:12 47 1

原创 密钥交换算法

密钥加密技术用于加密和解密数据。密钥是与加密算法一起用于加密某些输入(称为明文)的值。输出称为密文。密钥本质上是非常非常大的数。密钥的尺寸用位(bit)来衡量,1024位密钥代表的数是非常巨大的。在公开密钥加密方法中,密钥的尺寸越大,密文就越安全。假定有相同的输入和相同的算法,不同的密钥会生成不同的密文。

2023-07-11 19:31:26 189

原创 IO流复习--字节流

第2步: 读取文件的所有字节。

2023-07-11 19:18:44 24

原创 基于FTP协议,进行同局域网下用户间的文件上传

FTP 是基于客户—服务器(C/S)模型而设计的,在客户端与 FTP 服务器之间建立两个连接,使得两个用户之间可以进行基本文件的传输。

2023-07-08 16:45:30 568

原创 ArrayList扩容方式的理解

首先去扩容,扩大1.5倍。但是,扩容后的容量可能还是不够我们需要的容量,那么这时候就直接赋值成我们需要的容量大小。另外,可能扩容后,可能扩的太大了,所以我们需要通过hugeCapacity方法来保证扩容的大小是比较合理的。ArrayList的扩容机制,当我们在执行add操作时,发现当前集合容量大小不够了,会扩容到原容量的1.5倍,也就是增加原容量的0.5倍大小,比如大小为10,扩容后为15。​ 由图可知,arrayList有三个构造方法。

2023-04-26 16:33:49 91 1

原创 LinkedList源代码阅读

(6) 通过增强for循环遍历数组a,定于一个Node类型的新变量newNode,通过Node构造函数,设置每个遍历元素的值,如果pred前驱的值为null,则说明该结点是链表的第一个结点,否则设置pred的next域为newNode。(2)定义一个新的Node类型的变量newNode,通过Node类的带参数构造函数将插入的元素的值放在变量中,因为头插法,所以新结点的prev域为null。(2)如果指定结点为null,则for循环直到找到链表中为空的结点,返回结点的下标,否则index值自加。

2023-04-26 15:53:31 42 1

原创 题目:将相同key的value值进行累加并合并

/题目:将相同key的value值进行累加并合并// 提示用户想创建几组entry(键值对),并保存到t中System.out.println("请输入想创建几组key与value:");// 创建HashMap,因为key唯一// 提示用户输入t对:key和value,保存到str字符串中System.out.println("请输入key和value,中间用空格隔开");i < t;i++) {

2023-04-26 01:30:50 1503 1

原创 <HashMap>输入字符串,查找字符串中出现次数最多的字母和出现的次数

输入字符串,查找字符串中出现次数最多的字母和出现的次数

2023-04-26 01:26:22 172 1

原创 请你基于「队列」, 实现一个「数字乘积类」ProductofNumbers ( 基础代码如下所示) , 要求支持下述两种方法

/ 主函数调用类和方法输入变量。// 创建类的有参无参。

2023-04-26 01:13:43 34 1

空空如也

空空如也

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

TA关注的人

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