- 博客(36)
- 收藏
- 关注
原创 为什么会有websocket(由来)
用户在使用淘宝、京东这样的网站的时候,每当点击一个按钮其实就是发送一个http请求。那我们先来回顾一下http请求的请求方式。但是有的时候我们在玩一些单机游戏的时候,游戏上的人物总是能将供给数据发送给我们,那么像是这种服务器主动给浏览器不断发送数据的场景是怎么实现的呢?
2024-05-28 21:24:12
1189
原创 java死锁
System.out.println(Thread.currentThread().getName()+"获取了资源A的锁");try {System.out.println(Thread.currentThread().getName()+"获取了资源B的锁");}).start();System.out.println(Thread.currentThread().getName()+"获取了资源A的锁");try {
2024-04-19 00:11:55
616
原创 并发执行一定比串行执行快吗?
在多线程编程中一般线程的个数都大于cpu的核心数,而一个cpu核心在任意时刻都只能被一个线程使用,CPU通过时间片分配算法来循环执行线程,当前线程执行完一个时间片后会切换到下一个线程。但是,在切换前会需要保存上一个线程的状态,以便下次切换回这个线程时,可以再加载这个线程的状态。所以线程从保存到再加载的过程就是一次上下文切换。CPU分配给各个线程的时间非常短,所以CPU通过不停地切换线程执行,让我们感觉多个线程是同时执行的,时间片一般是几到几十毫秒(ms)。
2024-04-19 00:07:21
1471
原创 synchronized到底锁住的是谁?
我们使用synchronized关键字是用来实现线程同步的,当多个线程同时去争抢同一个资源的时候在资源上边加一个synchronized关键字,能够使得线程排队去完成操作。
2024-04-04 19:44:22
954
原创 java的 static和this关键字
类当中只有关于信息的定义而对象有这些信息的值类是对象的模板,我们可以将类想象成制作小甜饼的切割机,将对象想象成小甜饼,由类构造对象的过程叫做类的实例化。
2024-03-24 08:00:00
908
原创 计算机底层结构
人类的祖先从树上下来以后开始了一轮新的生存挑战。与其他动物相比人类没有尖牙厉爪,只能去发展大脑,随着大脑的发展人类逐渐的站在了食物链的顶层。但是受制于人类活动和自然因素的发展,许多大型动物越来越少,所有人类从最开始的狩猎生活逐步发展成了定居的生活,人类开始种植粮食和养殖一些动物,那么统计和记录这些动物的方式就出现了。
2024-03-24 00:15:24
1318
原创 线程和进程的区别和联系
一个线程就是一个指令流,将指令集合中的一条条的指令以一定的顺序交给CPU去执行。线程指的是进程中一个单一顺序的控制流。线程是进程中真正执行任务的基本单位。线程是操作系统进行运算调度的最小单元,它是进程的子任务,用于保证程序的实时性,实现进程内部的并发,它不能独立拥有系统资源,但它可与同属一个进程的其他线程共享该进程所拥有的全部资源。
2024-03-20 00:23:46
1233
原创 深入学习NIO三大核心:缓冲区 Buffer、通道Channel、Selector选择器
通道(Channel)是java.nio的第二个创建概念。Channel用于在缓冲区和位于通道另一侧的实体(通常是一个文件或者是一个套接字)之间有效的传输数据。只不过Channel本身不能直接访问数据,Channel只能和Buffer进行交互。NIO的通道和流的区别通道可以同时进行读写,但是流只能读或者只能写通道可以实现异步读写数据通道可以从缓冲读取数据,也可以写数据到缓冲区;BIO中的stream是单向的,
2024-03-19 00:47:37
1638
原创 mysql5.6---windows和linux安装教程和忘记密码怎么办
解压完成之后将其放到你喜欢的地址当中去,这里我默认放在了D盘,这是我的根目录。
2024-03-12 08:48:53
1822
原创 哈夫曼树和哈夫曼编码
一、在通讯领域中信息处理的方式(1)定长编码我们要传输一条数据:i like like like java do you like a java //共40个字符通过Ascii码将其转化为对应的二进制形式http://tool.alixixi.com/ascii2/按照二进制来传递数据,总长度为359(包括空格)通常我们不会这么去做,主要是因为我们要传输的数据太长了,很不划算(2)变长编码我们要传输一条数据:i like like like java do you like a
2021-06-25 17:45:41
1188
1
原创 B树的简介
一、认识2-3查找树二叉排序树简单的实现在多数情况能够达到预期的查找效率,但是每个节点只能存储一个元素和只能有两个孩子,使得在大量数据下会造成二叉排序树的深度特别大,那么在进行查找时多次的访问会造成查找效率的下降,同时,在对二叉查找树进行插入时,可能会破坏二叉查找树的平衡。为了降低对于树的访问次数,实现树的平衡,我们需要新的数据结构来处理这样的问题。2-3查找树的定义2-节点包含一个键(及其对应的值)和两条链,左连接指向2-3树中都小于该节点,右链接所指向的值都大于该节点。3-节点包含两个键(及
2021-06-24 17:12:19
496
原创 linux安装Nginx并实现反向代理和负载均衡
一、linux安装Nginx首先准备2台linux虚拟机,安装jdk和tomcat(略),并保证tomcat处于开启状态下载完成之后,把它上传到服务器上,我这里上传到服务器的/opt这个位置上.开始安装Nginx1. 使用命令 tar -zxvf nginx-1.14.2.tar.gz 进行解压nginx 得到2.Nginx 安装环境Nginx是C语言开发,建议在linux上运行,本教程使用Centos7.0作为安装环境.1)gcc安装nginx需要先将官网下载的源码进行编译,编译依
2021-01-01 18:07:14
234
原创 认识jdk、jre和JVM
首先我们新建一个名为Hello.java的文件,然后进行运行首先我们需要键盘上的windows键 + R键,然后输入cmd这里边我们用到了两个java命令分别是 javac和java这两个命令javac命令:编译命令,生成 .class文件java命令:执行命令,执行 .class文件下图是我们java文件的加载流程不同的操作系统上有不同的虚拟机,JVM屏蔽了底层运行平台的差别,实现了“一次编译,到处运行”。JDK 和 JRE和JVM的联系JDK 它包含JRE,还包括编译器(ja
2020-12-17 17:53:49
363
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人