自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 ThreadLocal

相信很多人都听过ThreadLocal,即使没用过也听过,但是要仔细一问ThreadLocal是个啥,也不一定能说清楚。它是实现线程封闭的一种方式,那么什么是线程封闭?把对象封闭在一个线程里,即使这个对象不是线程安全的,也不会出现并发安全问题。Ad-hoc线程封闭:维护线程封闭性的职责完全由程序来承担,不推荐使用栈封闭:就是用栈(stack)来保证线程安全局部变量存储在虚拟机栈虚拟机栈是线程隔离的,所以不会有线程安全问题ThreadLocal线程封闭:简单易用。

2023-08-21 20:20:32 120 1

原创 springBoot实现自动装配的机制

Spring Boot是基于Spring框架开发的一种应用框架,它通过自动装配机制,大大简化了Spring应用的开发和部署,使开发者可以更加专注于业务逻辑的实现,而无需过多关注Bean的实例化和装配过程。本文将介绍Spring Boot自动装配的原理和实现方式。使用过或者学习Spring 的小伙伴,一定有被 XML 配置统治的恐惧。

2023-08-15 20:36:33 259 1

原创 JDBC实现之基础操作

什么是JDBC?JDBC是Java DataBase Connectivity的缩写,它是Java程序访问数据库的标准接口。使用Java程序访问数据库时,Java代码并不是直接通过直接建立TCP连接去访问数据库,而是通过JDBC接口来建立连接,而JDBC接口则通过JDBC驱动来实现真正对数据库的访问。在JDBC驱动实现类中,通过建立TCP连接来建立真正的网络通讯连接。

2023-07-20 17:34:33 131

原创 CopyOnWriteArrayList核心源码阅读

CopyOnWriteArrayList介绍:CopyOnWrite 简称COW,一种用于集合的并发访问的优化策略。思路:对一个集合容器中进行写入(有关更改操作时,即添加,修改,删除),并不会直接将操作进行在原有的集合中,而是将原集合中的元素复制(Copy)到另一个新的集合容器中,然后在对新的数组进行操作,继而将引用指向新的集合容器。这样的好处是保证了修改操作时集合容器的线程安全,并且在写入操作时,读取操作也是可以进行的。所以copyonwrite容器是对读写分离思想的一种实现。

2023-07-17 20:06:17 122 1

原创 ReentrantLock与synchronized的区别

这两种同步方式有很多相似之处,它们都是加锁方式同步,而且都是阻塞式的同步,也就是说当如果一个线程获得了对象锁,进入了同步块,其他访问该同步块的线程都必须阻塞在同步块外面等待,而进行线程阻塞和唤醒的代价是比较高的(操作系统需要在用户态与内核态之间来回切换,代价很高,不过可以通过对锁优化进行改善)。

2023-07-16 13:59:25 48 1

原创 线程池的执行流程

综上所述,执行顺序为:核心线程、工作队列、非核心线程、拒绝策略。

2023-07-16 13:43:17 135 1

原创 线程的实现方式

执行程序的一次执行过程称为进程,它是一个动态的概念。一个进程可以有多个线程,比如你看一个视频能同时听见声音、图像和弹幕。一个进程中至少含有一个线程(主线程)线程就是独立的执行路径,程序运行时即使自己没有创建线程,后台也会有多个线程,比如主线程和GC线程。某些进程内部还需要同时执行多个子任务。例如,我们在使用WPS时,WPS可以让我们一边打字,一边进行拼写检查,同时还可以在后台进行自动保存和上传云文档,我们把子任务称为线程。线程是进程划分成的更小的运行单位。四种基本实现方式继承Thread类。

2023-07-15 18:40:31 60 1

原创 AES算法的CBC和ECB两种工作模式

对称加密算法就是传统的用一个秘钥进行加密和解密。例如,我们常用的WinZIP和WinRAR对压缩包的加密和解密,就是使用对称加密算法:从程序的角度看,所谓加密,就是这样一个函数,它接收密码和明文,然后输出密文:而解密则相反,它接收密码和密文,然后输出明文在软件开发中,常用的对称加密算法有:算法密钥长度工作模式填充模式DES56/64AESIDEA128ECB密钥长度直接决定加密强度,而工作模式和填充模式可以看成是对称加密算法的参数和格式选择。

2023-07-15 18:01:00 168 1

原创 JavaSE基础:反射机制

1)Java反射机制的核心是在程序运行时动态加载类并获取类的详细信息,从而操作类或对象的属性和方法。本质是JVM得到class对象之后,再通过class对象进行反编译,从而获取对象的各种信息。2)Java属于先编译再运行的语言,程序中对象的类型在编译期就确定下来了,而当程序在运行时可能需要动态加载某些类,这些类因为之前用不到,所以没有被加载到JVM。通过反射,可以在运行时动态地创建对象并调用其属性,不需要提前在编译期知道运行的对象是谁。大致上反射的内容就是这些,有遗漏的话,欢迎大佬补充。

2023-07-12 19:59:47 79 1

原创 Java实现加密算法(一、单项加密)

本文主要对单向加密算法做个概况性的介绍,然后给出简单的加密算法 Java 实现(即MD5、SHA系列、Hmac)。​常用的单向加密算法介绍和简单应用就是这些,MD5和SHA系列比较简单,就算大量数据泄露也不会有影响,但是为了防止彩虹表攻击,所以有了Hmac的出现。RipeMD-160,Java中并不能直接调用,所以需要导入Jar包,最后写RipeMD-160的原因是为了注册BouncyCastleBouncycastleProvider通知类,将提供的消息摘要算法注册至Security

2023-07-10 19:06:14 198 1

原创 Java实现邮件的发送(E-mail)

电子邮件的应用非常广泛,例如在某网站注册了一个账户,自动发送一封欢迎邮件,通过邮件找回密码,自动批量发送活动信息等。但这些应用不可能和我们自己平时发邮件一样,先打开浏览器,登录邮箱,创建邮件再发送。本文将简单介绍如何通过 Java 代码来创建电子邮件,并连接邮件服务器发送邮件。一、邮件服务器与传输协议要在网络上实现邮件功能,必须要有专门的邮件服务器。这些邮件服务器类似于现实生活中的邮局,它主要负责接收用户投递过来的邮件,并把邮件投递到邮件接收者的电子邮箱中。

2023-07-09 15:31:54 27012 11

原创 Java实现FTP客户端的简单功能

在实现网络编程时,需要了解很多协议,FTP协议就是很重要的一个,这篇文章主要写对于Java在基于FTP协议实现网络编程时的一些简单操作即工具类的一些简单应用方式,例如,文件的上传下载,寻找目录和创建等。

2023-07-08 21:20:27 481 1

原创 ArrayList扩容方式的理解

ArrayList的特点:1.ArrayList的底层数据结构是数组,所以查找遍历快,增删慢。2.ArrayList可随着元素的增长而自动扩容,正常扩容的话,每次扩容到原来的1.5倍。3.ArrayList的线程是不安全的。扩容可分为两种情况:第一种情况,当ArrayList的容量为0时,此时添加元素的话,需要扩容,三种构造方法创建的ArrayList在扩容时略有不同:1.无参构造,创建ArrayList后容量为0,添加第一个元素后,容量变为10,此后若需要扩容,则正常扩容。

2023-05-30 14:12:32 1541 4

原创 微信小程序的路由,以及生命周期

微信小程序的路由,以及生命周期

2022-08-22 09:50:59 1752

原创 JavaScript中的原型和原型链以及原型继承

JavaScript中的原型和原型链以及原型继承

2022-08-10 11:17:36 330 2

原创 js函数防抖和函数节流及其使用场景

js函数防抖和函数节流及其使用场景

2022-08-02 19:22:55 804

原创 JS中常用的数组方法和循环

JS中常用的数组方法和循环

2022-07-26 22:26:00 260

原创 css的基础样式

css基础样式

2022-07-24 16:01:57 417

原创 常用html标签及其属性

html基本标签及属性:基本标签、注释,特殊符号、图片标签、a链接等

2022-07-13 23:40:29 1603

空空如也

空空如也

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

TA关注的人

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