自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 GVM垃圾收集器

G1 ( Garbage-First )是一款面向服务器的垃圾收集器,主要针对配备多颗处理器、大容量内存的机器。它不再严格按照分代思想进行垃圾回收。G1 采用局部性收集的设计思路和基于 Region 的内存布局形式。

2024-01-12 17:50:50 963

原创 GVM垃圾收集算法

目前主流JVM虚拟机中的垃圾收集器,都遵循按照设计的“”,所采用的设计原则:收集器应该将Java堆划分成不同的区域,然后将回收对象依据其年龄(年龄即对象经历过垃圾收集过程的次数——分配到不同的区域存储。

2024-01-12 15:57:26 1158

原创 Redis相关知识点

定期删除是对定时删除和惰性删除做了平衡,redis默认每秒运行10次对具有过期时间的key进行次扫描,但是不会扫描全部的key,因为这样会大大延长扫描时间,每次默认只会扫描20个key,同时删除这20个key中已经过期的key,如果这20个key中过期key的比例超过25%,则继续扫描。String(字符串):这是Redis最基本的数据类型,一个key对应一个value,并且是二进制安全的,可以包含任何数据,例如jpg图片或者序列化的对象。这样可以避免同时有多个线程去查询数据库,从而降低数据库的访问压力。

2024-01-11 15:31:41 960

原创 Mybatis&Mybatis-Plus

ideal开发mybatis junit lombok mybatis-plus

2023-12-28 16:39:13 1002

原创 Spring对bean的管理

Bean的实例化,Bean的作用域,Bean的生命周期,Bean的自动装配

2023-12-28 16:28:09 958

原创 Linux下的文本编辑Vi/Vim

文本编辑器有很多,比如图形模式的gedit、OpenOffice 等,文本模式下的编辑器有vi、vim(vi的增强 版本)等。vi和vim是我们在Linux中最常用的编辑器。

2023-12-21 17:35:38 1364

原创 Linux基本命令

ls 执行ls指令可列出目录的内容,包括文件和子目录的名称ls [选项][文件或目录]选项:-l 每列仅显示一个文件或目录名称(ls -l 以列的方式显示)-a 或 --all 所有的文件和目录(ls -a 显示所有包括隐藏目录)-i 或 --indoe 显示文件和目录的inode编号(ls -a /bin 显示/bin下的所有文件)文件或目录:制定的目录或文件,如果没有这一项,默认当前目录。

2023-12-20 17:49:17 879

原创 Linux介绍

Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、 支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和 64位硬件。

2023-12-19 15:48:11 812

原创 单例模式-实现线程是否安全

单例模式(Singleton)是一种创建型模式,指某个类采用Singleton单例模式后,则在这个类在同一个JVM上,只可能产生一个实例供外部访问,并且提供一个全局的访问方式。

2023-10-16 09:16:07 110

原创 计算机网络常见面试题

谈一谈对OSI七层模型和TCP/IP四层模型的理解?谈谈TCP协议的3次握手过程?TCP协议为什么要3次握手?2次,4次不行吗?谈谈TCP协议的四次挥手过程?什么是流量控制?什么是滑动窗口?什么是拥塞控制?TCP和UDP有什么区别?

2023-09-22 17:20:39 87

原创 HTML联系:阿里巴巴注册页面

【代码】HTML联系:阿里巴巴注册页面。

2023-09-21 10:51:35 243

原创 TCP协议

TCP协议的全称是传输控制协议 ()是面向连接可靠的传输层协议:传输数据前,必须先建立连接;每一条TCP连接基于发送方和接收方的是点对点连接;TCP协议是一种面向字节流的传输层协议:应用层传递给传输层的报文是字节流形式,TCP协议会把字节流组织成大小不等的报文段;TCP具备“可靠性传输”、“流量控制”、“拥塞控制”等功能;可靠性传输当使用TCP协议在网络中传输的数据比较大时(比如:视频、音频流等),会要求把数据分成报文段进行传输。每个报文段就是一个数据包,TCP协议会依次发送,按序接收。

2023-09-20 16:03:19 602

原创 Java 工具和参数

常用命令行工具汇总

2023-09-15 14:51:08 206

原创 Shiro

Shiro是apache旗下一个开源框架,它将软件系统的安全认证相关的功能抽取出来,实现用户身份 认证,权限授权、加密、会话管理等功能,组成了一个通用的安全认证框架。

2023-09-10 21:05:06 70

原创 ARM-Linux内核

GNU/Linux操作系统的基本体系结构如图所示。从图中可以看到GNU/Linux被分成了两个空间。相对于操作系统其他部分,Linux 内核具有很高的安全级别和严格的保护机制。这种机制确保应用程序只能访问许可的资源,而不许可的资源是拒绝被访问的。因此系统设计者将内核和上层的应用程序进行抽象隔离,分别称之为内核空间和用户空间。如图所示。用户空间包括用户应用程序和 GNU C库(glibc 库),负责执行用户应用程序。

2023-09-08 17:16:17 1282

原创 Redis删除策略

Redis是一种内存级数据库,所有数据均存放在内存中,内存中的数据可以通过TTL指令获取其状态。

2023-09-07 16:12:44 112

原创 Redis持久化

官方推荐两个都启用,如果对数据不敏感,可以选单独用RDB,不建议单独用AOF,因为可能会出现Bug。如果知识做纯内存缓存,可以都不用。

2023-09-07 10:46:58 66

原创 Redis中高并发下缓存穿透、击穿、雪崩的解决方案

缓存预热就是系统启动前,提前将相关的缓存数据直接加载到缓存系统。避免在用户请求的时候,先查 询数据库,然后再将数据缓存的问题!用户直接查询事先被预热的缓存数据。

2023-09-06 14:48:51 97

原创 网络编程基础

计算机网络是指两台或更多的计算机组成的网络,在同一个网络中,任意两台计算机都可以直接通信,因为所有计算机都需要遵循同一种网络协议。那什么是互联网呢?互联网是网络的网络 ( internet ) ,即把很多计算机网络连接起来,形成一个全球统一的互联网。对某个特定的计算机网络来说,它可能使用网络协议 ABC ,而另一个计算机网络可能使用网络协议 XYZ。如果计算机网络各自的通讯协议不统一,就没法把不同的网络连接起来形成互联网。因此,为了把计算机网络接入互联网,就必须使用 TCP/IP 协议。

2023-09-06 11:20:00 73

原创 微服务基础知识

SOA 全称为 Service-Oriented Architecture,即面向服务的架构。它可以根据需求通过网络对松散耦合的粗粒度应用组件(服务)进行分布式部署、组合和使用。一个服务通常以独立的形式存在于操作系统进程中。站在功能的角度,把业务逻辑抽象成可复用、可组装的服务,通过服务的编排实现业务的快速再生,目的:把原先固有的业务功能转变为通用的业务服务,实现业务逻辑的快速复用。通过上面的描述可以发现 SOA 有如下几个特点:分布式、可重用、扩展灵活、松耦合。

2023-09-02 11:55:51 80

原创 使用ideal导入Git文件

如果发现Maven没有导入,右键未导入的pom文件,选择Add as Maven Project。点击右下角 ,选择New Branch即可建立自己的分支。

2023-09-02 09:36:35 604

原创 Spring Boot

随着动态语言的流行(Ruby、Scala、Node.js), Java的开发显得格外的笨重;繁多的配置、低 下的开发效率、复杂的部署流程以及第三方技术整合难度大。在上述环境下,Spring Boot由此诞生,它的设计是为了使您能够尽可能快地启动和运行。它使用 “习惯 优于配置” (项目中存在大量的配置,而 Spring Boot 内置一个习惯性的配置,让你无须手动进行配 置)的理念让你的项目快速运行起来。

2023-08-29 10:35:30 119

原创 Docker介绍及安装Nginx

Docker:是给予Go语言实现的开源项目。Docker的主要目标是“Build,Ship and Run Any App,Anywhere” 也就是通过对应的组件的封装,分发,部署,运行等生命周期管理,是用户APP及运行环境能够做到 “一次封装,到处运行”Docker的设计理念:构建(build)、运输(ship)、运行(running)

2023-08-25 12:50:38 89 1

原创 Spring Cache 简化redis缓存使用

Spring Cache是一个框架, 实现了基于注解的缓存功能,只需要简单地加一个注解,就能实现缓存功能。Spring Cache提供了一层抽象,底层可以切换不同的cache实现。具体就是通过CacheManager接口来 统一不同的缓存技术。CacheManager缓存管理器是Spring提供的各种缓存技术抽象接口。

2023-08-24 16:13:28 75 1

原创 几种常见的线程池及使用场景

newFixedThreadPool(固定数目线程的线程池)线程池特点:核心线程数喝最大线程数大小一样 没有所谓的非空闲时间,即keepAliveTime为0 阻塞队列为无界队列LinkedBlockingQueue工作机制:提交任务 如果线程数少于核心线程,创建核心线程执行任务 如果线程数等于核心线程,把任务添加到LinkedBlockingQueue阻塞队列 如果线程执行完任务,去阻塞队列取任务,继续执行使用场景:FixedThreadPool 适用于处理CPU密集型的任

2023-08-24 10:49:55 279 1

原创 Spring Cache 简化redis缓存使用

Spring Cache是一个框架, 实现了基于注解的缓存功能,只需要简单地加一个注解,就能实现缓存功 能。Spring Cache提供了一层抽象,底层可以切换不同的cache实现。具体就是通过CacheManager接口来 统一不同的缓存技术。

2023-08-23 19:20:12 65 1

原创 Java8特性

通过链式编程,使得它可以方便地对数据进行链式处理方法参数都是函数式接口类型一个Stream只能操作一次,操作完就关闭了,继续使用这个Stream会报错Stream不保存数据,不改变数据源。

2023-08-23 15:42:32 70 1

原创 乐观锁、悲观锁、死锁

多个线程在运行的过程中,都需要获取双方线程所持有的锁(资源),导致处于长期无限等待的状态。synchronized (lockA) { //获得lockA的锁//线程休眠synchronized (lockB) { //获得lockB的锁System.out.println("执行add()");} //释放lockB的锁} //释放lockA的锁synchronized (lockB) { //获得lockB的锁synchronized (lockA) { //获得lockA的锁。

2023-08-21 16:47:22 134 1

原创 多线程同步

每个Java对象多可以充当一个实现同步的锁,这些锁被称为内置锁(Intrinsic Lock)或者监视器锁(Monitor Lock)//临界区其中, 括号里面的reference-to-lock就是锁的引用, 任何一个Java对象都可以成为reference-to-lock。你可以实例化一个Object对象,将它作为锁。如果直接使用this,代表使用当前使用对象作为锁。

2023-08-21 14:50:15 71 1

原创 RocketMQ报maybe your broker machine memory too small

显示运行内存不足,可进入C盘的C:\Users\lenovo目录下找到store并进入,删除里面所有文件。RockerMQ会自动在C盘新建目录文件。再次运行ideal项目就可以运行成功了。

2023-08-19 14:40:26 253

原创 CopyOnWriteArrayList核心源码阅读

如果指定的对象是同一对象,则返回 作为此对象,或者如果它也是一个列表和序列 迭代器在指定列表上返回的元素与返回的序列相同 此列表上的迭代器。1. 内存占用问题:很明显,两个数组同时驻扎在内存中,如果实际应用中,数据比较多,而且比较大的情况下,占用内存会比较大,针对这个其实可以使用ConcurrentHashMap来代替。移动当前处于该位置的元素(如果有),并 右侧的任何后续元素(在其索引中添加一个元素)。从此列表中删除包含在 中的所有元素 指定的集合。将此列表中指定位置的元素替换为 指定的元素。

2023-07-20 19:16:32 59

原创 ReentrantLock与synchronized的区别

ReentrantLock(boolean) 构造函数:可以传递参数确定采用公平策略或者是非公平策略,参数为 true表示公平策略,否则,采用非公平策略。获取锁:当资源空闲时,它总是会先判断 sync队列是否有等待时间更长的线程,如果存在,则将当前线程加入到等待队列的尾部,实现了公平获取原则。获取锁:每一次都尝试获取锁,不会按照公平等待的原则进行等待,不会让等待时间最久的线程获得锁。NonfairSync 类继承了 Sync类,表示采用。FairSync类也继承了 Sync类,表示采用。

2023-07-19 19:18:09 56

原创 线程池的执行流程

线程数固定的线程池线程池参数:核心线程数和最大线程数一致非核心线程线程空闲存活时间,即keepAliveTime为0 阻塞队列为无界队列LinkedBlockingQueue提交线程任务如果线程数少于核心线程,创建核心线程执行任务如果线程数等于核心线程,把任务添加到LinkedBlockingQueue阻塞队列如果线程执行完任务,去阻塞队列取任务,继续执行使用场景:适用于处理CPU密集型的任务,确保CPU在长期被工作线程使用的情况下,尽可能的少的分配线程,即适用执行长期的任务。

2023-07-19 15:50:07 702

原创 线程的实现方式

进程是程序的一次执行过程,是系统运行程序的基本单位。在Widows系统中,每一个正在执行的exe文件或后台服务,都是一个进程,由操作系统统一管理并分配资源,因此进程是动态的。操作系统运行一个程序,即是一个进程从创建,运行到消亡的过程。简单来说,一个进程就是一个执行中的程序,它在计算机中一个指令接着一个指令的执行着,同时,每个进程还占有某些系统资源,如CPU时间,内存空间,文件,输入输出设备的使用权等。某些进程内部还需要同时执行多个子任务。

2023-07-19 14:49:51 136

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

AES的全称是Advanced Encryption Standard,意思是高级加密标准。AES密码分组大小和密钥大小可以为128位、192位和256位。然而AES只要求分组大小为128位。本文只对分组大小128位,密钥长度也为128位的Rijndael算法进行分析。密钥长度为192位和256位的处理方式和128位的处理方式类似,只不过密钥长度每增加64位,算法的循环次数就增加2轮,128位循环10轮、192位循环12轮、256位循环14轮。

2023-07-17 18:52:47 1032 1

原创 Java中Reflection反射总结

Java反射机制时Java语言的一个重要特性。在学习Java反射机制前,应先了解两个概念:编译期和运行期:是指吧源码交给编译器编译成计算机可以执行的文件的过程。在Java中,也就是把Java代码编程class文件的过程。编译期知识做了一些翻译功能,并没有把代码放在内存中运行起来,二十把代码当成文本进行操作。如检查语法错误。:是把编译后的文件交给计算机执行,直到程序运行结束。所谓运行期就是把在磁盘中的代码放到内存中执行起来。是在运行状态中,对于任意一个类,都能够找到这个类的所有属性和方法;

2023-07-17 18:00:51 116 1

原创 对称加密算法与非对称加密算法

非对称加密: 加密和解密使用的不是相同的密钥,用户A密钥加密后所得的信息,只能用用户A的解密密钥才能解密。如果知道了其中一个,并不能计算出另外一个。因此如果公开了一对密钥中的一个,并不会危害到另外一个的秘密性质。称公开的密钥为公钥;不公开的密钥为私钥。只有同一个公钥-私钥对才能正常加解密。非对称加密的缺点: 运算速度非常慢,比对称加密要慢很多。从 DH 算法我们可以看到,公钥-私钥组成的密钥对是非常有用的加密方式,因为公钥是可以公开的,而私钥是完全保密的,由此奠定了非对称加密的基础。

2023-07-12 19:23:57 146 1

原创 Java中哈希算法总结

/Hash算法(消息摘要算法)工具类 public class HashTools {//消息摘要对象 private static MessageDigest digest;//构造方法 private HashTools () {} //按照MD5进行消息摘要计算(哈希算法) public static String digestByMD5 (String source) throws NoSuchAlgorithmException{

2023-07-10 19:29:10 2212

原创 Java中FTP服务器实现文件的列表展示、文件的上传与下载

③启动从属进程来处理客户进程发来的请求。从属进程对客户进程的请求处理完毕后即 终止,但从属进程在运行期间根据需要还可能创建其他一些子进程。④回到等待状态,继续接受其他客户进程发来的请求。在新建账号中输入自己的用户名以及密码,并选择你所需要的权限。可以看到主机IP有三个,那是因为电脑中含有虚拟机,可以在控制面板中找到网络和 Internet选择网络连接,右键禁用虚拟机。①打开熟知端口(端口号为21),使客户进程能够连接上。②等待客户进程发出连接请求。

2023-07-09 18:54:16 2992 1

原创 使用Java Email进行邮件的发送

Java Email邮件发送

2023-07-08 16:44:02 2144 2

空空如也

空空如也

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

TA关注的人

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