- 博客(5)
- 收藏
- 关注
原创 Java多线程
下面看一个经典的问题,关于银行取钱的问题:假设你的银行账户有5000元,并且你和你的妻子两人都知道账户密码。某一天,你去银行取3000元,银行系统会先查看你的账户够不够3000元,明显你是满足条件的,但是,如果此时你的妻子也需要去取3000元,并且你的取钱线程刚好因为某些状况被打断了(这时系统还来不及修改你的账户余额),所以你的妻子去取钱时也满足条件,所以她完成了取钱动作,而你取钱线程恢复之后,你也将完成取钱动作。【示例】通过代码模拟取钱的过程// 银行账户上默认是:5000元。
2023-08-17 08:22:20
41
1
原创 Java IO流
IO流根据功能划分,可以分为:节点流和包装流(处理流)。节点流: 可以从或向一个特定的地方(节点)读写数据,例如:FileOutputStream、FileInputStream、FileWriter和FileReader等。包装流:对一个已存在的流的连接和封装,通过所封装的流的功能调用实现数据读写,例如:缓冲流、转换流和合并流等。
2023-08-08 20:51:57
22
原创 双列集合&数据结构
给 HashMap 中存放自定义对象时,如果自定义对象作为 key 存在,这时要保证对象唯一,必须重写对象的 hashCode 和 equals 方法,建立自己的比较方式,才能保证 HashMap 集合中的对象唯一。注意:当自定义对象作为HashMap的key时,一定得重写自定义类的 hashCode 和 equals 方法,建立自己的比较方式,才能保证 HashMap 集合中的对象唯一.LinkedHashMap是 HashMap 集合的子集合,它的底层采用“哈希表+链表。
2023-08-07 08:19:42
43
原创 泛型&数据结构
后进先出或先进后出。栈的一个最重要的特征就是栈的插入和删除只能在栈顶进行,所以每次删除的元素都是最后进栈的元素,故栈也被称为后进先出(Last In First Out)的线性表,简称LIFO表。Java中有一个类Stack,用于表示栈,但这个类已经过时了。方法名描述入栈,在头部添加元素,栈的空间可能是有限的,如果栈满了,会抛出异常。E pop();出栈,返回头部元素,并且从栈中删除,如果栈为空,会抛出异常。E peek();查看栈头部元素,不修改栈,如果栈为空,返回null。
2023-08-03 23:28:39
741
原创 单列集合&链表
开发和学习中需要时刻和数据打交道,如何组织这些数据是我们编程中重要的内容。我们一般通过 “容器”来容纳和管理数据。事实上,数组就是一种容器,可以在其中放置对象或基本类型数据。是一种简单的线性序列,可以快速的访问数组元素,通过索引获取元素效率非常高。不灵活!容量事先定义好,不能随着需求的变化而扩容,并且插入和删除操作效率非常低。比如:我们在一个用户管理系统中,要把今天注册的所有用户取出来,那么这个用户有多少个?我们在写程序时是无法确定的。因此,也就不能使用数组。
2023-08-03 08:32:16
41
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人