自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 TCP协议的三次握手及其原因

TCP协议的三次握手,以及TCP协议必须是三次握手的原因:建立tcp连接的前两次握手,一个是客户端向服务器发出建立连接的请求,另一次是服务器向客户端确认收到这个请求,这两次只能证明客户端与服务器之间的网络是通畅的,最后一次握手是为了让客户端确认收到服务器发送的数据,避免服务器等待造成资源浪费 。如果过于频繁会导致服务器停止响应。

2022-09-28 16:38:27 4524 2

原创 JavaScript中的常见事件

JavaScript中常用的事件有:点击事件、表单事件、鼠标事件、键盘事件、焦点事件、加载事件和改变事件

2022-11-20 18:10:23 463 1

原创 @Autowired 自动装配的原理

介绍什么是@Autowired以及如何使用;介绍@Autowired和@Resource的区别

2022-10-24 20:23:05 477

原创 ClassLoder类加载机制

是由编译器自动收集类中所有类变量的赋值动作和静态语句块中的语句合并产生的,编译器收集的顺序由语句在源文件中出现的顺序决定。所以,静态语句块只能访问到定义在它之前的类变量,定义在它之后的类变量只能赋值,不能访问。该模型要求除了顶层的启动类加载器外,其它的类加载器都要有自己的父类加载器(注:应该注意到,实例化不是类加载的一个过程,类加载发生在所有实例化操作之前,并且类加载只进行一次,实例化可以进行多次。一个类加载器首先先将请求发送到父类的加载器,只有当父类的加载器无法完成才尝试自己完成。

2022-10-19 23:07:13 594

原创 TCP的拥塞控制

介绍了拥塞控制的概念以及拥塞控制的四个算法

2022-10-08 19:15:25 1813

原创 数据库中的三大范式

介绍数据库中的第一范式,第二范式,第三范式,并且通过举例形象的描述如何去应用这三大范式。

2022-10-05 22:35:21 817

原创 TCP与UDP的区别

了解什么是TCP和UDP,以及TCP与UDP的区别

2022-09-22 19:44:19 499

原创 当我们浏览一个网站时整个过程发生了什么?

简述浏览网站时,浏览器和网站服务器之间总流程,并且了解一下什么是HTTP协议。

2022-09-22 19:17:08 744

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

对于 Java 程序员来说,在虚拟机自动内存管理机制下,不再需要像C/C++程序开发程序员这样为每一个new操作去写对应的delete/free操作,不容易出现内存泄漏和内存溢出问题。正是因为 Java 程序把内存控制权利交给JVM虚拟机。一旦出现内存泄漏和溢出方面的问题,如果不了解虚拟机是怎样使用内存的,那么排查错误将会是一个非常艰巨的任务。

2022-09-18 23:24:39 190 1

原创 CopyOnWriteArrayList源码分析

1.这样做的好处:实现对集合容器写入操作时的线程安全,但同时并不影响进行并发的读取操作。所以容器也是一种读写分离的思想。从JDK1.5开始Java并发包里提供了两个使用机制实现的并发集合容器,它们是和。相当于线程安全的ArrayList,内部存储结构采用Object[]数组,线程安全使用实现,允许多个线程并发读取,但只能有一个线程写入。

2022-09-18 17:16:58 133

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

一、引言一、引言:在Web应用程序中,我们经常要跟踪用户身份。例如:当一个用户登录成功后,如果他继续访问其他页面,Web 程序如何才能识别出该用户身份?当一个用户在操作自己的购物车时,Web 程序如何才能识别出该用户身份?:因为HTTP协议是一个无状态协议,即Web应用程序无法区分收到的两个HTTP请求是否是同一个浏览器发出的。为了跟踪用户状态,服务器可以向浏览器分配一个唯一ID,并以Cookie的形式发送到浏览器,浏览器在后续访问时总是附带此Cookie,这样,服务器就可以识别用户身份。

2022-08-25 12:33:24 327 2

原创 JavaEE—— Servlet生命周期篇

Servlet的生命周期的整个生命周期一、Servlet基础一、Servlet基础1. BS架构首先,我们先介绍一下BS架构。当我们访问网站或者使用App时,大部分场景下都是,它的特点是,户端只需要浏览器,应用程序的逻辑和数据都存储在服务器端。浏览器只需要请求服务器,获取Web页面,并把Web页面展示给用户即可。Web页面具有极强的交互性。于Web页面是用HTML编写的,而HTML具备超强的表现力,并且,服务器端升级后,客户端无需任何部署就可以使用到新的版本,因此,BS架构升级非常容易。2. HTTP协议。

2022-08-21 19:13:59 384

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

HashMap内部数据结构使用数组+链表+红黑树进行存储。数组类型为Node[], 每个 Node都保存了某个KV键值对元素的key、value 、hash 、next 等值。于next的存在,所以每个Node对象都是一个单向链表中的组成节点。如图中代码所示:HashMap的底层采用的存储方式:数组+链表+红黑树,当新添加一个键值对元素时,通过该元素的key的hash 值,计算该元素在数组中应该保存的下标位置。...

2022-08-14 21:07:57 211

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

FTP服务器的上传与下载

2022-08-07 22:28:07 720

原创 常见的哈希算法总结

介绍常见的哈希算法以及哈希算法的实际用途

2022-07-21 19:47:02 1453

原创 对称加密算法(AES加密)以及对称算法与非对称算法的对比

主要概括什么是对称加密算法,使用AES的ECB工作模式和CBC工作模式对数据进行加密与解密。以及对称加密算法与非对称加密算法的对比

2022-07-20 19:12:10 2868

原创 Java Email以及发送Email附件

包含了:在JAVA中Email如何发送、发送Email附件以及把发送的图片显示到内容区域的例子

2022-07-18 17:34:30 4595

原创 网络编程:TCP编程

简单介绍了有关TCP编程的步骤,以及客户端与服务器之间的通信;举例实现客户端向服务器端发送图片的一个功能

2022-07-17 15:46:30 470 5

原创 Excel文件解析以及超大Excel文件读写

主要包含了Excel文件解析的完整步骤以及超大Excel文件读写

2022-07-13 19:35:34 1267

原创 FileInputStream和BufferdInputStream的区别

1.从结构上:FileInputStream是字节输入流InputStream抽象类的一个实现类。BufferdInputStream是缓冲输入流,它继承于FilterInputStream。2.从读取方式上:FileInputStream每次会到磁盘上读取数据。BufferdInputStream通过read()读取输入流的数据时,BufferdInputStream会将该输入流的数据分批的填到缓冲区中,每当缓冲区中的数据被读完之后,输入流会再次填充数据缓冲区。...

2022-05-17 23:03:21 703 1

原创 栈(Stack)实现队列(Queue)

首先分别介绍一下栈和队列。 栈:栈的保存方式LIFO(先进后出),就可以抽象的理解为

2022-05-17 22:41:26 285

原创 List、Set、Map、Queue、Deque、Stack 遍历方式总结

1.List(一共两种遍历方法)://方式一List<String> list = new ArrayList<>(); list.add("A"); list.add("B"); list.add("C"); list.add("D"); for(int i =0; i < list.size(); i++){ System.out.println(list.get

2022-05-10 12:33:54 104

原创 String,StringBuilder和StringBuffer的异同点;StringBuilder的常用方法

相同点:StringBuilder和StringBuffer都是可变的字符串 不同点:①String的字符串不可变②StringBuilder的方法没有使用synchronized关键字,所以它的方法线程不安全,但性能好③StringBuffer使用了synchronized关键字,所以线程安全,但性能差它的常用的方法:使用方法前先要进行实例化:StringBuilder sb = new StringBuilder();...

2022-02-21 17:27:54 348

原创 字符串常见的方法总结:方法的作用、参数值、返回值(构造方法可省略)

一.构造方法//创建一个不含有任何内容的空白字符串对象public String(){}//根据传入的字符数组的内容,创建字符串对象public String(char[] ch){}//根据传入的字符串内容,创建字符串对象public String(String origianl){}//直接赋值的方式创建字符串对象例:String s = "abc";二.静态方法1.public static String toString(数组):将传入的参数数

2022-02-20 19:41:11 2780 1

原创 static关键字

实例字段在每个实例中都有自己独有的“空间”,static关键字修饰的静态字段拥有一个共享的“空间”定义静态成员变量:public static int result;定义静态方法:public static void text() {}//静态方法中允许仅访问静态的成员变量,也允许访问该类中的其他静态方法,但是不允许访问普通方法普通和静态成员变量的访问的对比:...

2022-02-17 12:35:14 158

原创 重载 与 重写(覆盖) 的区别

重载(overload)与重写(override)1、实现:重载实现在一个类中;重写实现在一个父类的子类中。2、形式上:重载要求方法名必须相同,参数(个数,类型,顺序)不完全相同;重写要求方法名和参数(个数,类型)必须相同。3、访问修饰符:重载可以有不同的访问修饰符;重写的访问修饰符的限制一定要大于被重写方法的访问修饰符。...

2022-02-16 18:00:51 760

原创 抽象类和接口的区别

abstract class interface 继承 只能extends继承一个class 可以implements多个interface接口并且接口之间直接允许多重extends 字段 可以定义实力字段 不能定义实力字段 抽象方法 可以定义抽象方法 可以定义抽象方法 非抽象方法 可以定义非抽象方法 可以定义default方法 构造方法 可以有构造方法 不允许有构造方法 访问修饰符 可以使用任意访问...

2022-02-16 17:33:57 125

原创 Abstract抽象类

1.没有方法体2.使用abstract关键字修饰3."抽象方法"必须在"抽象类"中4.抽象类不允许实例化5.子类继承抽象父类时,“必须”重写父类的抽象方法。(除非子类也是抽象类,可以不重写)...

2022-02-16 11:51:49 189

原创 final关键字

1.使用final关键字定义的类,代表当前这个类的最终类,不允许被继承2.final定义的常量必须初始化赋值

2022-02-15 14:55:13 63

原创 equals()和==的区别

一.对象的类型不同 1.equals():是超类object中的方法 2.==:

2022-02-14 18:55:34 335

空空如也

空空如也

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

TA关注的人

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