自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 spring注解---@Autowired自动装配实现原理

@Autowired就是spring提供的注解之一,是用来替换之前写在xml文件里autowired属性的。它默认是按照类型进行匹配,自动注入一个符合要求的bean,通过set方法注入,且set方法可以省略。@Autowired可以修饰在属性以及方法上...

2022-10-24 23:16:27 944 1

原创 传输层协议——TCP协议的拥塞控制

所谓拥塞控制,就是为了避免某一时间段网络的数据流量过大,而使网络形成过大的负载而导致网络性能过低的问题。与流量控制不同的是,拥塞控制是对整个网络的操作,包括所有的主机、路由等,而流量控制针对的是发送方与接收方的数据传输量。拥塞控制的实现主要依靠四个方算法:慢开始、拥塞避免、快重传、快恢复......

2022-10-08 19:32:24 791

原创 当你浏览网站时都发生了什么?

1.用户在浏览器界面输入要访问的域名地址后,通过应用层协议DNS解析将域名解析为对应的IP;2.浏览器向服务器发送TCP连接请求,服务器接收请求,并通过三次握手建立连接;3.浏览器将请求数据打包为HTTP的数据包发送给服务器......

2022-09-27 18:52:27 449

原创 传输层协议---TCP与UDP有哪些区别

TCP协议主要适用于要求通信数据可靠的场景,例如文件、邮件传输;UDP主要用于要求通信速度快的场景,例如视频、音频、直播等....

2022-09-23 16:04:22 1173

原创 Java内存模型——创建对象在堆区如何分配内存

首先会在Eden区中分配空间,若内存空间足够,则为该对象分配内存;当Eden中内存不足时,会执行一次YGC(minor GC)回收没有被引用的对象,将被引用的对象(未被回收的对象)存入from幸存者区,此时再判断Eden区的内存是否足够,足够则分配内存;不足,则判断老年代是否放得下,若放得下则在老年代为该对象分配内存;若老年代还放不下,则会执行FGC(major GC)清理堆区垃圾(未被引用的对象),结束后再判断是否能存下......

2022-09-18 21:13:38 404

原创 关于线程安全集合CopyOnWriteArrayList部分源码分析

CopyOnWriteArrayList是一种用于集合的并发访问的优化策略。在实现写操作时,不会直接在原数组上进行修改,而是会创建一个新数组,并复制原数组内容至新数组再进行写操作。这样做的好处就是,多线程并发时,其中一个线程在对数组进行修改的同时,不会被别的线程影响,并且不会影响其他线程对原数组进行“读”的操作......

2022-09-17 22:05:15 283

原创 进程与线程的区别??

一个进程就是程序的一次执行,它是系统运行程序的基本单位,当操作系统开始运行程序时到结束程序的运行,就是一个进程从创建到消亡的过程...... 线程是CPU执行的最小单元,是进程划分的更小的执行单位......

2022-09-08 19:05:06 239

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

我们把这种基于唯一ID识别用户身份的机制称为 Session 。 每个用户第一次访问服务器后,会自动获得 一个 Session ID 。如果用户在一段时间内没有访问服务器,那么 Session 会自动失效(可以理解为身份证的有效期限),下次即使带 着上次分配的 Session ID 访问,服务器也认为这是一个新用户,会分配新的 Session ID (办理新的身份证)。一次 Session 会话中往往包含着若干次 request ...

2022-08-26 12:21:00 80

原创 浅谈Servlet 生命周期

servlet生命周期可分为以下四个阶段:实例化,初始化,服务,销毁

2022-08-21 23:43:30 127

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

首先判断数组table是否为空,如果为空进行初始化;如果不为空,使用hash方法计算key的hashCode,通过(n- 1) & hash计算应当存放在数组中的下标index ;查看tablet[index]是否存在数据;如果没有数据,就构造个Node 节点,存放在table[index]中.........

2022-08-14 22:54:55 339 1

原创 String为什么要定义成final???

众所周知,String类在java.lang包中被定义成了final类型,那么这时候就有个疑问,为什么它要被定义为final呢?首先,我们先聊final修饰符的作用:...

2022-08-11 21:18:38 2829

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

FTP(File Transfer Protocol)即文件传输协议,是一种基于TCP的协议,采用客户/服务器模式。支持FTP协议的服务器就是FTP服务器。与大多数 Internet服务一样,FTP也是一个 客户机/服务器系统。用户通过一个支持FTP协议的客户机程序,连接到在远程主机上的FTP服务器程序。用户通过客户机程序向服务器程序发出命令,服务器程序执行用户所发出的命令,并将执行的结果返回到客户机。...

2022-08-07 21:11:15 3734 6

原创 常见哈希算法 && 对称加密算法与非对称加密算法

哈希算法,又称摘要算法,它的作用是对任意一组数据进行计算,得到一组固定长度的输出摘要,可以用来验证原始数据是否被篡改。特点:相同的输入一定得到相同的输出,不同的输入大概率得到不同的输出......对称加密算法就是传统的用一个密码进行加密和解密,就是使用一个函数,即用来接收明文输出密文又用它接收密文输出明文。 非对称加密算法中,加密和解密使用不同的密钥,但是是同一对公钥--私钥........

2022-07-21 20:01:06 1973 2

原创 JavaEmail电子邮件传输

Email即为电子邮件,在生活很常见,那它是怎样进行传输的呢,例如Outlook,是从用户电脑的邮件软件发送到邮件服务器,可能会经过若干个邮件服务器中转,最终到达对方邮件服务器上,收件方就可以用软件接收邮件;...

2022-07-18 01:09:53 346 1

原创 Java实现TCP编程

在了解TCP编程前,先来了解了解计算机网络计算机网络是指两台或更多的计算机组成的网络,在同一个网络中,任意两台计算机都可以直接通信,因为所有计算机都需要遵循同一种网络协议。互联网是网络的网络(internet),即把很多计算机网络连接起来,形成一个全球统一的互联网。如果计算机网络各自的通讯协议不统一,就没法把不同的网络连接起来形成互联网。因此,为了把计算机网络接入互联网,就必须使用TCP/IP协议。TCP/IP协议泛指互联网协议,其中最重要的两个协议是TCP协议和IP协议。...

2022-07-18 00:44:48 325

原创 Java 解析 /生成 Excel文件

在程序的开发过程中,通常会使用Excel文件来进行数据的导入和导出,在使用Java实现此类需求时也要经理Excel文件的解析或生成在Java技术中,能实现此类需求的技术主要有ApachePOI,AlibabaEasyExcel和JXL。其中,JXL只支持Excel2003以下版本,所以现在不太常见,那简单学习一下另外两种技术吧。...

2022-07-17 15:17:05 12029 4

原创 Java IO 中 FileInputStream与BufferedInputStream的区别

一. 在类的定义上,FileInputStream是读文件的字节内容输入流,直接继承自InputStream,而BufferedInputStream继承自FilterInputStream包装器类,而不是直接继承InputStream,可见BufferedInputStream具有自己独特的功能。二. 从读取方式上1. FileInputStream自己有读取功能,读取文件时直接访问内存进行读取InputStream in = new FileInputStream("C:\\Us.

2022-05-26 15:40:53 294 1

原创 基于Java实现密勒编码

用Java语言模拟密勒编码图形跳变1 .密勒编码实现原理: 对原始符号“1”码元起始不跃变,中心点出现跃变来表示,即用10或01表示。信息码连“1”时,后面的“1”要交错编码;信息码中的“0”编码为双极非归零码“00”或者“11”,即码元中间不跳变;信息码单个“0”时。其前沿、中间时刻、后沿均不跳变;信息码连续“0”时,两个“0”码元的间隔跳变。2 .代码实现思路: 根据密勒编码的跳变规则,用字符串模拟出基本跳变图形;创建标记,根据原始信号是“1”或者“0”来匹配对应...

2022-05-14 08:00:00 1881 2

原创 Java语言 用栈模拟实现队列

先了解清楚栈和队列分别具有什么特点:(1)队列:FIFO( First In First Out)即 先进先出,最先入队的最先出队(2)栈:LIFO(Last In Last Out)后进先出,最后入栈的最先出栈基于它们的特点不难得出,要想用栈模拟实现队列,需要使用两个栈分别模拟入队(入队栈)和出队(出队栈)操作:如图所示,当存入一组数据“a,b,c,d”时,由于先入栈的元素会被压入栈底,所以从“入队栈”中弹出的数据顺序为“d,c,b,a”,满足不了先入队的先出队的原则,所以...

2022-05-13 14:14:57 263

原创 字符串的常见方法

普通方法构造方法静态方法

2022-02-24 18:55:06 1403

原创 String,StringBuffer与StringBuilder

1.

2022-02-22 20:31:08 175 2

原创 Integer存储

1.

2022-02-22 20:17:16 459

原创 Java 抽象类 与 接口

"抽象类"与"接口"及区别

2022-02-16 20:12:49 2070

原创 Java中的“重载“与“重写“

Java中"的重载"与"重写"及区别

2022-02-16 19:15:35 492

原创 Java语法中“==”与“.equals”的区别

Java语法中“==”与“.equals”的区别

2022-02-11 20:47:15 297

空空如也

空空如也

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

TA关注的人

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