![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
居明明
这个作者很懒,什么都没留下…
展开
-
IO流练习之随机权重算法
同时下一次再抽取的时候会重新设置抽取权重,将抽取到的权重降低。注意:我们每次都会计算总权重,用每个人的权重/总权重,计算出来的结果才是被抽取的概率。假设十个人占据了一条直线,分化成等份的十块,每次抽取时会随机出一个数字,利用二分查找找到抽取出数字的位置,如此来获取位置。由于作者之前偷懒有一些代码没敲完,所以现在继续补基础老老实实敲代码。假设又十个人,每次随机抽取一个人,抽取一次就让这个人下一次抽中的几率减小。技术栈:Arrays,集合,IO流。原创 2023-04-17 20:22:01 · 55 阅读 · 0 评论 -
动态代理之概念
直接修改代码称作侵入式修改,在一个成熟的项目中为了减少bug的产生我们一般不会使用侵入式修改,而是使用动态代理的方式去修改代码。对象将自身的事情通过代理来转移职责可以降低程序的耦合。代理可以无侵入式的给对象增加其他的功能。原创 2023-04-11 19:37:43 · 42 阅读 · 0 评论 -
反射之成员方法
1、获取字节码文件对象2、获取字节码文件对象中的方法对象3、通过方法对象获取这个对象的属性4、创建对象,利用实例获取对象中的各部分元素注意:如获取private修饰的构造方法,成员变量,成员方法时,需要使用setAccessible()方法暂时跳过权限检测。原创 2023-04-11 18:53:37 · 489 阅读 · 0 评论 -
反射之构造方法和成员变量
反射允许对成员变量,成员方法和构造方法的信息进行编程访问。Class类中获取构造方法的方法Constructor类中创建对象的方法setAccessible() -- 临时取消权限校验。原创 2023-04-11 17:16:39 · 481 阅读 · 0 评论 -
网络编程之三次握手和四次挥手
原创 2023-04-10 21:09:14 · 35 阅读 · 0 评论 -
网络编程之TCP通信协议
TCP是一种可靠的网络通信协议,它在通信的两端各建立一个Socket对象。通过Socket使用IO流进行网络通信。通信之前需要保证连接已经建立。原创 2023-04-10 21:02:23 · 79 阅读 · 0 评论 -
网络编程之协议
计算机网络中链接和通信的规则。原创 2023-04-10 16:52:11 · 38 阅读 · 0 评论 -
网络编程之端口号
其中0-1023之间的端口号应用于一些知名网络服务或应用。端口号:由两个字节组成的整数,取值范围0-65535。我们自己使用1024以上的端口号,一个端口号只能被一个应用程序使用。在设备中唯一的标识。原创 2023-04-09 21:21:55 · 148 阅读 · 0 评论 -
网络编程之InetAddress
InetAddress用来创建一个IP对象,也可以看做是一台电脑的对象。由于类为提供构造方法,所以我们只能调用静态方法创建对象。原创 2023-04-09 21:12:05 · 114 阅读 · 0 评论 -
网络编程三要素
IP、端口号、协议。原创 2023-04-09 20:47:43 · 601 阅读 · 0 评论 -
网络编程初探
计算机和计算机之间通过网络进行数据传输。原创 2023-04-06 21:19:09 · 547 阅读 · 0 评论 -
线程池多大比较合适
原创 2023-04-06 21:09:20 · 385 阅读 · 0 评论 -
多线程之最大并行数
4核8线程,采取超线程技术,将一个核心模拟成两个线程。原创 2023-04-06 21:08:20 · 396 阅读 · 0 评论 -
多线程之自定义线程池
临时服务员一旦空闲超过一定时间就会被辞退。如果排队的人数过多,会赶走超出的顾客让他们下次再来。假设开一家饭店,每一个服务员只能服务一个客户,有永久服务员和临时招聘服务员。原创 2023-04-06 20:58:21 · 458 阅读 · 0 评论 -
多线程之线程池
每当我们需要一个线程的时候就创建一个线程,不需要的时候就销毁,这样的方式会浪费操作系统的资源。就好像吃饭吃完饭就把饭碗摔掉一样,所以我们需要一个碗柜(线程池)来节约资源。原创 2023-04-06 20:07:13 · 430 阅读 · 0 评论 -
多线程之阻塞队列机制
分为阻塞和队列两个词。阻塞:对于消费者,没有吃的需要等待成为阻塞。对于生产者,放入管道中的食物满了,无法放入,成为阻塞。队列:先进先出的数据结构。原创 2023-04-04 20:12:26 · 57 阅读 · 0 评论 -
多线程之等待唤醒机制
核心思想:利用桌子来控制线程的执行。原创 2023-04-04 19:19:23 · 493 阅读 · 0 评论 -
多线程之死锁
死锁是一种多线程的常见错误,指的是两个线程互相调用时,两个线程都被锁住,两个线程卡死的情况。具体:当A锁住后打印“拿到了A锁,准备拿B锁”,这个时候cpu的执行资格被B抢走了(注意是执行资格不是执行权,锁的意思是里面的代码全部执行完,线程出来,锁自动打开B进行代码,走else if部分B线程被锁住,同时B尝试调用A线程,但A线程被卡死,A线程又尝试调用B线程,从此代码卡死。原创 2023-04-03 21:43:35 · 43 阅读 · 0 评论 -
多线程之lock锁
lock锁可以让我们更清晰的表达如何加锁和释放锁。原创 2023-04-03 21:30:02 · 191 阅读 · 0 评论 -
多线程之同步方法
先写同步代码块,再抽取成方法。原创 2023-04-03 14:44:11 · 35 阅读 · 0 评论 -
多线程之同步代码块(线程安全)
为了保护线程的安全,举个例子在统计的时候,如果说一个线程计数到了100,在这个线程即将打印数据的时候cpu的使用权被抢走,另一个线程将计数加1,等待原本的线程抢夺回cpu使用权时,打印的数据已经是错误的了。原创 2023-04-03 14:34:35 · 125 阅读 · 0 评论 -
多线程之线程的生命周期
sleep()让线程睡眠结束后,线程需要先抢夺cpu使用权,才可以执行下面的代码。状态,没有执行资格,也没有执行权,等待阻塞完毕后才会变成就绪状态。特别注意:sleep()方法使线程陷入。原创 2023-04-03 14:06:44 · 35 阅读 · 0 评论 -
多线程之守护线程
final void setDaemon(boolean on) 设置为守护线程。原创 2023-04-02 17:07:17 · 42 阅读 · 0 评论 -
多线程之线程的优先权
非抢占式调度:每条线程顺序的使用cpu的使用权。抢占式调度:每条线程随机的争抢cpu的使用权。线程的调度分为抢占式调度和非抢占式调度。原创 2023-04-02 16:59:16 · 94 阅读 · 0 评论 -
多线程的实现方式
多线程的三种实现方式原创 2023-04-03 14:02:14 · 76 阅读 · 0 评论 -
多线程之并发和并行
有多少条线程代表计算机可以同时运行多少条线程。并行:在同一个时刻,有多个指令在cpu上。并发:在同一时刻,有多个指令在cpu上。并发和并行是有可能同时存在的。执行(在不同线程同时执行。执行(在不断抢夺线程。原创 2023-04-02 14:26:30 · 96 阅读 · 0 评论 -
多线程概念
线程是操作系统能够运算调度的最小单位,它被包含在进程内,是进程的实际运作单位。原创 2023-04-02 14:21:59 · 31 阅读 · 0 评论 -
Commons-io和HuTool工具包
2、将jar包粘贴复制进lib文件夹。1、在项目里创建一个文件夹:lib。3、点击jar包选择添加进目录。4、使用方法的时候需要倒包。原创 2023-03-30 19:52:53 · 93 阅读 · 0 评论 -
IO流之压缩流
【代码】IO流之压缩流。原创 2023-03-30 14:49:00 · 108 阅读 · 0 评论 -
IO流之压缩解压流
如果是文件,通过解压缩流读取每个entry对象,同时使用字节流将数据写出,字节流会自动创建文件对象。获取到zip压缩包内的每一个ZipEntry对象,遍历所有entry对象。解压:把每一个ZipEntry按照层级拷贝到本地另一个文件夹中。压缩:把每一个文件变成ZipEntry对象存储到本地。如果是文件夹,创建同名文件夹。原创 2023-03-30 14:44:47 · 312 阅读 · 0 评论 -
IO流之字符打印流
【代码】IO流之字符打印流。原创 2023-03-29 17:02:16 · 61 阅读 · 0 评论 -
IO流之打印流
打印流只负责打印出数据,不操作数据源。原创 2023-03-29 16:52:15 · 76 阅读 · 0 评论 -
序列化流之读写不确定个数对象
将所有的对象放到一个集合里,随后将集合通过序列化流写到本地。再反序列化这个集合,打印出集合里面所有的对象。原创 2023-03-29 16:29:45 · 35 阅读 · 0 评论 -
IO流之反序列化流
这就导致如果你通过序列化流将对象边写到本地,修改javabean类后版本号改变,再使用反序列化流读取时会出现异常。javabean类中,java会根据成员方法自动生成一个版本号,如果你修改了其中的方法,版本号也会改变。解决该问题的方法为,手动设置该javabean类的版本号。解决方案:使用transient关键字。原创 2023-03-28 23:17:17 · 50 阅读 · 0 评论 -
IO流之序列化流
将对象保存到本地的时候会出现异常,这是因为保存到本地的对象需要一个标记性接口Serializable。这个标记性接口就像一个合格证书,只有这个证书你才可以将其保存到本地。解决方法:给Javabean类实现serializable接口。序列化流可以使用本地保存的对象内容变得不可编辑,增强数据的安全性。序列化流可以将对象写到本地,(专门对对象进行操作)原创 2023-03-28 23:05:15 · 66 阅读 · 0 评论 -
IO流之转换流
一:(在jdk11之前)指定字符集读写,比如UTF-8,GBK。字节流想要使用字符流的方法,可以使用转换流进行包装。转换流是字节流和字符流之间的桥梁。二:字节流想要使用字符流的方法。原创 2023-03-28 22:38:20 · 66 阅读 · 0 评论 -
IO流之字符缓冲流
【代码】IO流之字符缓冲流。原创 2023-03-28 17:31:37 · 60 阅读 · 0 评论 -
字节缓冲流
字节缓冲流提供了缓冲区使数据快速传输,字符流虽然存在8192字节的缓冲区,但java依然设计了字符缓冲流,并在字符缓冲流中提供了一些高效的方法。为了完善基本流的操作,java中提供了包装基本流的高级流,高级流就是基本流的衣服,但本质还是基本流。之前学习的四种字节输入输出流,字符输入输出流统称为基本流,他们实现了io流最主要且最基本的操作。原创 2023-03-28 16:56:18 · 63 阅读 · 0 评论 -
字符流原理解析
3、关流的时候,虚拟机会将剩余的数据输出。1、在数据装满缓冲区的时候自动输出。在何时数据会从缓冲区转换进数据源。2、手动flush刷新。原创 2023-03-27 20:29:45 · 39 阅读 · 0 评论 -
IO流之字符输出流
void writer(String str,int off,int len) 写出字符串的一部分。void writer(char[] chars,int off,int len) 写出一个字符数组的一部分。public FileWriter(String str,boolean append) 创建字符流关联对象,开启续写。原创 2023-03-27 20:12:41 · 54 阅读 · 0 评论