- 博客(34)
- 收藏
- 关注
原创 【Java】线程的状态及常用方法
join()方法用于实现线程插队,调用完毕后会释放锁。sleep()方法用于实现线程休眠,调用完毕后不会释放锁。interrupt()方法用于设置该线程的中断状态为 true。yield()方法用于让出 CPU 执行。分时调度模型和抢占式调度模型。
2024-09-16 12:00:00
2054
原创 【MySQL】视图、存储过程、触发器
(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中,经过第一次编译后,再次调用不需要重复编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是一组特定功能的SQL语句,触发器则是SQL语句前后执行,本身不影响原功能。关键字不同,存储过程是procedure,函数是function;关键字不同,存储过程是procedure,触发器是trigger;存储过程可以独立执行,函数必须依赖表达式的调用;
2024-10-04 07:30:00
1393
原创 【MySQL】DML数据操作语句和基本的DQL语句
insert into student(sname,ssex) values('杨文琦','男'),('杨博海','男'),('杨坤','男');insert into student values(null,'齐韬尊','1789-1-1','女',2);insert into student(sname) values('杨文齐'),('小小杨'),('杨帅哥'),('帅气的杨同学');-- insert into 表名(字段名,字段名,...,字段名)values/value (值,值...值)
2024-10-03 17:45:00
1878
2
原创 【MySQL】SQL介绍+基础+DDL+数据备份+还原
为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。在关系型数据库中这种规则就叫做范式。
2024-10-03 12:26:11
2111
1
原创 【Linux】Shell脚本基础+条件判断与循环控制
read -p "请输入第一个数" num1read -p "请输入第二个数" num2echo "$num1 加上 $num2 的结果是 $[$num1+$num2]"func1 #调用七、练习编写⼀个函数来计算输⼊的是不是⼀个质数read -p "请输入一个数" num1for ((i=2;i*i<=$num1;dothenbreakfidonethenecho "$num1 是质数"elseecho "$num1 不是质数"fifunc1/bin/bash。
2024-10-02 19:15:00
1397
原创 【Linux】vim+网络和安全操作
(2)wget -b https://nginx.org/download/nginx-1.26.1.tar.gz 后台下载。(4)wget -c https://nginx.org/download/nginx-1.26.1.tar.gz 继续下载。:vsplit+窗口名(保存后就是文件名) 打开一个新窗口, vsplit可以简写为vsp。192.168.199.139 —— 192.168.199.0 置0。使用别名来域名来表示一个网络IP,做这样的域名和IP映射的服务叫DNS。
2024-10-02 14:18:02
992
原创 【Linux】进程+权限管理+软硬链接+其他命令
cat /etc/passwd 用户信息文件,用户列表(用户名、用户密码占位符、用户编号uid、用户所在组的编号gid、用户备注说明、用户家目录位置、用户的登陆方式)(8)删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软连接被称为死链接(即 dangling link,若被指向路径文件被重新创建,死链接可恢复为正常的软链接)。ps -aux (用户、进程编号、cpu使用率、内存使用率、虚拟内存的大小、真实内存的大小、终端、状态、启动时间、运行时长)
2024-10-01 17:31:00
1508
原创 【Spring】深入理解控制反转-IOC
在软件开发中,控制层(Controller)、业务逻辑层(Service)、数据访问层(DAO)三层架构是一种广泛采用的设计模式。
2024-10-01 16:05:16
1336
1
原创 【Linux】Docker下载与使用-nginx
Docker:是给予Go语言实现的开源项目。Docker 是一个用于开发、交付和运行应用程序的开放平台。它允许开发人员将应用程序及其依赖包打包到一个可移植的容器中,然后在任何流行的 Linux机器上运行。Docker 容器是完全隔离的,使用沙箱机制,相互之间没有任何接口。Docker的主要目标是“Build,Ship and Run Any App,Anywhere”,也就是通过对应的组件的封装,分发,部署,运行等生命周期管理,是用户APP及运行环境能够做到“一次封装,到处运行。
2024-09-29 23:01:08
4017
原创 【Lunix】常用命令
Linux 的终端就是控制台, 是用户与内核交互的平台, 通过输入指令 来控制内核完成任务操作。:shell是linux的外壳。是一个内核的解释器,让我们跟内核交流翻译的工具。
2024-09-29 21:38:51
1537
原创 【Java】六大设计原则和23种设计模式
代理模式给某一个对象提供一个代理对象并由代理对象控制对原对象的引用。通俗的来讲代理模式就是我们生活中常见的中介。举个例子来说明:假如说我现在想买一辆二手车,虽然我可以自己去找车源,做质量检测等一系列的车辆过户流程,但是这确实太浪费我得时间和精力了。我只是想买一辆车而已为什么我还要额外做这么多事呢?于是我就通过中介公司来买车,他们来给我找车源,帮我办理车辆过户流程,我只是负责选择自己喜欢的车,然后付钱就可以了。
2024-09-28 18:42:35
1953
原创 【Spring】lombok、dbUtil插件应用
Bean的类型在创建 BeanListHanlder对象时以 Class对象的方式传入BeanListHandler(Class type)。Bean的类型在创建BeanHandler 对象时以 Class 对象的方式传入 BeanHandler(Class type)。一个对象序列化的接口,一个类只有实现了Serializable接口,它的对象才能被序列化。是将对象状态转换为可保持或传输的格式的过程。=====>@Test运行之后。======>可以运行的方法。====>@Test运行之前。
2024-09-26 12:01:02
1096
原创 【Spring】Spring Aop基础入门
aop:after-returning method="通知类方法名(返回通知)" pointcut-ref="切点id"/>基本类型:int======>int。
2024-09-26 10:39:06
1292
原创 【Java】JVM垃圾收集器深入解析:原理与实践
G1( Garbage-First)是一款面向服务器的垃圾收集器,主要针对配备多颗处理器、大容量内存的机器。它不再严格按照分代思想进行垃圾回收。G1 采用局部性收集的设计思路和基于 Region 的内存布局形式。
2024-09-25 21:22:47
1104
原创 【Java】虚拟机(JVM)内存模型全解析
JVM 虚拟机在执行 Java 程序的过程中,会把它管理的内存划分成若干个不同的区域,每个区域有各自的不同的用途、创建方式及管理方式。有些区域随着虚拟机的启动一直存在,有些区域则随着用户线程的启动和结束而建立和销毁,这些共同组成了 Java 虚拟机的,也被称为。
2024-09-24 21:28:33
1748
原创 【Java】JVM基本组成
2. 为了提高执行效率,JVM 还会在运行期间,JVM 通过热点代码的统计分析,识别高频的方法调用,循环体、公共模块等,当超过阈值时,JVM 会基于。:在程序运行过程中,随着时间的推移, JIT 开始慢慢发挥了作用,把热点代码编译成本地代码后,以后执行相同的代码,即可直接交给CPU 执行,带来更高的执行效率。:不同的平台,执行字节码时,都需要各自的 虚拟机版本,用于将字节码翻译成当前平台可以执行的。:不同的平台,相同的源代码,编译的字节码是相同的,所以字节码文件可以在不同平台“通用”;
2024-09-23 22:34:19
1506
原创 【Java】并发编程的艺术:悲观锁、乐观锁与死锁管理
乐观锁的思想与悲观锁的思想相反,它总认为资源和数据不会被别人所修改,所以读取不会上锁,但是乐观锁在进行写入操作的时候。通过各种锁的实现,我们会发现锁的目的是保护一种受限资源,保证同一时刻只有一个线程能访问(ReentrantLock),或者只有一个线程能写入(ReadWriteLock)。,它认为数据很可能会被其他人所修改,所以悲观锁在持有数据的时候总会把资源 或者 数据 锁住,这样其他线程想要请求这个资源的时候就会阻塞,直到等到悲观锁把资源释放为止。如果在读取过程中有写入,版本号会发生变化,验证将失败。
2024-09-21 15:12:02
1093
原创 【Java】深入解析ThreadLocal——Java并发编程的秘密武器
被称为,用于在线程中保存数据。由于在 ThreadLocal中仅属于,所以该变量对其他线程而言是隔离的,也就是说该变量是当前线程独有的变量。ThreadLocal 用于在同一个线程间,在不同的类和方法之间共享数据的的场景,也可以用于在不同线程间隔离数据的场景。ThreadLocal利用 Thread 中的来进行数据存储。
2024-09-20 23:54:59
1250
原创 【Java】并发集合
通过ReentrantLock实现多个线程并发修改时的线程安全同步(添加元素的同时,不允许删除)读取时,不允许写入,如果队列为空,则读取线程阻塞;写入时,不允许读取,如果队列已满,则写入线程阻塞。没有加锁,允许多个线程同时并发读取;但是读取时,可能产生。进行无锁化操作,降低synchronized进行线程同步操作所引发的性能下降。:修改时将原数组内容复制Copy到新数组内,在新数组内修改,然后替换。阻塞队列:由两个线程,分别进行读写(时,通过synchronized将。(读取的同时,允许写入操作)。
2024-09-19 23:14:41
691
原创 【Java】线程的同步——synchronized、ReentrantLock
对同一个线程,能否在获取到锁以后继续获取同一个锁?答案是肯定可以获取同一个锁。因为JVM 允许,这种能被同一个线程反复获取的锁,就叫做可重入锁。
2024-09-18 22:16:43
1032
1
原创 【Java】全面理解Java8特性
b. 通过链式编程,使得它可以方便地对数据进行链式处理。c. 方法参数都是函数式接口类型d. 一个stream 只能操作一次,操作完就关闭了,继续使用这个 stream会报错。Stream不保存数据,不改变数据源。
2024-09-17 23:43:29
1789
1
原创 【Java】多线程池的工作原理与实践
线程池内部维护了若干个线程,没有任务的时候,这些线程都处于等待空闲状态。如果有新的线程任务,就分配一个空闲线程执行。如果所有线程都处于忙碌状态,线程池会创建一个新线程进行处理或者放入队列(工作队列)中等待。线程数固定的线程池a.核心线程数和最大线程数一致b.非核心线程线程空闲存活时间,即 keepAliveTime为0c.阻塞队列为无界队列 LinkedBlockingQueuea.提交线程任务b.如果线程数少于核心线程,创建核心线程执行任务。
2024-09-17 11:30:00
1659
原创 【Java】深入理解Java中的多线程同步机制
多线程同时读写共享变量时,可能会造成逻辑错误,因此需要通过synchronized 同步;同步的本质就是给指定对象加锁,加锁后才能继续执行后续代码;注意加锁对象必须是同一个实例;对 JVM 定义的单个原子操作不需要同步。
2024-09-16 21:27:03
1311
原创 【Java】多线程基础
程序是含有指令和数据的文件,被存储在磁盘或其他的数据存储设备中,可以理解为程序是包含静态代码的文件。例如:浏览器软件、音乐播放器软件等软件的安装目录和文件。进程是程序的一次执行过程,是系统运行程序的基本单位。在 windows 系统中,每一个正在执行的 exe 文件或后台服务,都是一个进程由操作系统统一管理并分配资源,因此进程是动态的。例如:正在运行中的浏览器就是一个进程。某些进程内部还需要同时执行多个子任务,我们把子任务称为线程。线程是进程划分成的更小的运行单位。
2024-09-13 22:37:34
586
原创 【加速Spring项目】探索Spring Boot自动配置的魅力
启动类中有一个 @SpringBootApplication 注解,包含了 @SpringBootConfiguration、 @EnableAutoConfiguration , @EnableAutoConfiguration 代表开启自动装配,注解会去 spring-boot-autoconfigure 工程下寻找 META-INF/spring.factories 文件,此文件中列举了所有能够自动装配类的清单,然后自动读取里面的自动装配配置类清单。注解的条件注解来进行条件化的创建。
2024-08-18 20:48:01
762
原创 【Java】服务端和客户端进行通信(UDP)
在Java中,使用UDP(用户数据报协议)进行服务端和客户端之间的通信涉及到DatagramSocket和DatagramPacket类的使用。UDP是一种无连接的协议,这意味着发送端和接收端之间不需要建立连接就可以发送数据。但是,这也意味着UDP不提供数据包的顺序、完整性或错误控制。下面将分别展示如何使用Java实现UDP的客户端和服务器。
2024-07-15 23:39:18
596
原创 【Java】深入探索Java面向对象编程(OOP)
面向对象(Object-Oriented Programming,简称OOP)是一种程序设计思想,它从宏观上分析程序有哪些功能,然后对功能进行分类,把不同的功能封装在不同的类中。面向对象的核心概念包括类(Class)、对象(Object)、封装继承(Inheritance)和多态。
2024-07-14 22:00:00
939
原创 【Java】服务端与客户端的实现
在Java中编写服务端和客户端程序通常涉及到网络通信,最常见的网络协议是TCP和UDP。这里,将以TCP协议为例,展示如何使用Java的ServerSocket和Socket类来编写一个简单的服务端和客户端程序。
2024-07-13 19:51:17
1238
原创 【Java】文件压缩实现过程
总结来说,Java中的文件压缩主要通过包提供的API来实现。开发者可以利用这些工具类来创建ZIP文件,添加文件或文件夹,并将它们压缩成节省存储空间和便于传输的格式。
2024-07-12 22:52:41
2387
Spring-dbUtil-xml-02.rar
2024-09-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅