自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 TCP协议的拥塞控制

TCP协议的拥塞控制

2022-10-08 19:28:05 269 1

原创 线程的状态及常见方法总结

线程的状态和方法总结

2022-09-26 19:25:47 257

原创 浏览一个网站时的整个过程

浏览一个网站时的整个过程

2022-09-22 19:54:45 737

原创 TCP协议和UDP协议的区别

TCP协议和UDP协议的区别。

2022-09-22 18:58:20 214

原创 CopyOnWriteArrayList源码分析

机制实现的并发集合容器,它们是CopyOnWriteArrayList。集合容器写入操作时的线程安全,但同时并不影响进行并发的读取操作。复制新数组,并将新元素添加至新数组,最后替换原数组。,是一种用于集合的并发访问的优化策略。实现,允许多个线程并发读取,但只能有一个线程写入。add(),添加新元素至集合时,会将当前数组。加锁,保证线程安全,避免多个线程复制数组。和CopyOnWriteArraySet。remove(),通过下标删除元素。容器也是一种读写分离的思想。set(),传入下标修改值。

2022-09-18 21:30:09 148 1

原创 创建对象在堆区是如何分配内存的

Heap堆是JVM所管理的内存中最大的一块区域,被所有线程共享的一块内存区域,堆中存放着对象实例,几乎所有的对象实例以及数组都在这里分配内存,从JDk1.7开始默认开启逃逸分析,如果某些方法中的对象引用没有被返回或者未被外面使用(也就是未逃逸出去),那么对象可以直接在栈上分配内存。堆区划分为新生代和老年代,新生代占堆区的1/3,而新生代中又分为Eden区(占新生代区的8/10),和Survivor区(由from和to两块内存区域组成,分别占新生代区的1/10),老年代占堆区的2/3。

2022-09-18 12:59:52 188

原创 Session会话追踪的实现机制

除了这个名称外,其他名称的Cookie。我们把这种基于唯一ID识别用户身份的机制称为。每个用户第一次访问服务器后,会自动获得一个。访问,服务器也认为这是一个新用户,会分配新的。如果用户在一段时间内没有访问服务器,那么。的关键就是依靠一个名为JSESSIONID。,最后通过resp.addCookie()调用了setPath("/user/"),然后通过一个名为JSESSIONID。时,除了指定名称和值以外,通常需要设置。会自动失效,下次即使带着上次分配的。,那么浏览器只有在请以/user/

2022-08-25 17:16:48 79

原创 简述Servlet生命周期

GET 请求来自于一个 URL 的正常请求,或者来自于一个未指定 method 的 HTML 表单,它由 doGet() 方法处理。(此处说明了请求方式,如果没有说明请求方式,默认也是Get请求)POST 请求来自于一个特别指定了 method 为 POST 的 HTML 表单,它由 doPost() 方法处理。实例创建和使用的过程,被称为Servlet的生命周期。方法,在父类的方法实现中,返回一个。请求的过程中,其本质是在调用执行。方法,则调用子类重写后的。

2022-08-21 19:13:32 1078

原创 学习Mybatis框架中遇到的问题,和启发。

通常出现这种情况,是主配置文件中的路径写错!这里的配置路径应该和映射文件中的namaspace名称一致!只需要将id改成与接口中对应抽象方法名相同的即可。下图是Mybatis框架所需要的jar包,创建。文件夹,所有jar包都放置。输入正确的账户和密码。...

2022-08-18 20:24:37 214

原创 当添加一个键值对元素时,hashMap发生了什么?

每次存储元素( Entry对象)时,根据使用key值进行hash后计算hash值,通 过(长度- 1 ) & hash得到这个元素在数组中的位置下标,如果数组该位置 上已经存放有其他元素(产生哈希冲突), 那么在这个位置上的元素将以链表 的形式存放,使用next指向新添加的元素形成链表,当链表长度大于阈值(默认为8)并且数组长度大于64,将链表转化为红黑树。int i4.ndex = (数组长度 - 1) & key的hash值。(2).如果不是,则加入链表尾部。(1).如果是,则加入红黑树。...

2022-08-14 18:28:30 180 1

原创 基于FTP协议的文件上传与下载

一.什么是FTPFTP 是File Transfer Protocol(文件传输协议)的英文简称,用于Internet上的控制文件的双向传输。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。在FTP的使用当中,用户经常遇到两个概念:"下载"(Download)和"上传"(Upload)。"下载"文件就是从远程主机拷贝文件至自己的计算机上;"上传"文件就是将文件从自己的计算机中拷贝至远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上传(下载)

2022-08-07 12:33:33 881

原创 常见哈希算法总结、对称式加密与非对称式加密的对比。

Hmac算法总是和某种哈希算法配合起来用的,例如,我们使用MD5,算法,对应的就是HmacMD5算法,它就相当于“加盐”的MD5,因此hmac可以看作是一个更安全的MD5,首先创建KeyGenerator实例调用getInstance()方法,并传入参数。例如小卢要加密一个文件给小吴,他应该首先向小吴索取他的公钥,然后用索取的公钥加密,然后把加密的文件发给小吴,此文件只有小吴的私钥解开,因为小吴的私钥在自己手里,所以,除了了小吴,没有人能解开此文件。1.相同的输入一定得到相同的输出。...

2022-07-22 20:41:06 942 5

原创 Java中的网络编程

在了解网络编程前,我们首先认识一下Socket,那么什么是Socket呢,Socket在计算机的世界中扮演者远程建立连接的角色,而Socket内部通过Tcp/Ip协议将数据传至网络。在Java中提供了几个Socket相关的类封装在操作系统提供的接口SeverSocket类和Socket类。一个Socket就是由IP地址和端口号(范围在0~65535)之间组成,其中小于1024的端口为特权端口。Tcp连接,双方后续就可以随时发送和接受数据。因此,当Socket连接成功地在服务器端和客户端之间建立后,...

2022-07-21 19:18:10 805

原创 Excel文件解析方式

将输入流传入Workbook中,使用XSSFWorkbook(Workbook的实现类)。调用该对象的getNumberOfSheets()方法得到工作簿的数量通过getSheet()方法,按照传入的名称获取工作簿,getSheetAt()按照工作簿下标获取工作簿。将输入流传入Workbook中,使用XSSFWorkbook(Workbook的实现类)。 Workbook workbook = new XSSFWorkbook(out);通过createSheet()方法创建工作簿通过Sheet调用

2022-07-13 19:49:52 1686 3

原创 如何用栈表示队列

首先我们应该知道什么是栈,什么是队列以及各自的特点。栈:Stack栈,它仅允许在一端进行插入和删除操作,这一端被称为栈顶,相对地,另一端位栈 底。向一个栈插入新元素叫做进栈(push),他是把元素放入栈顶元素的上面,使之成为新的栈顶元素:从一个栈中删除元素叫做出栈(pop),它是把栈顶元素删除掉,使其下一位成为栈顶元素。栈的特点:后进先出(先进栈的被压进栈底,后进栈的依次为栈顶元素)。下图所示。...

2022-05-13 13:59:56 281 1

空空如也

空空如也

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

TA关注的人

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