自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SQL Server 怎么开放(或关闭)端口连接

这件事情的起因是这样的,我在写vue项目时想用 Sequelize 通过端口号连接本地的 SQL Server,但是之前是通过架构访问本地存储进行CRUD的,本地的 SQL Server 默认不打开端口,经过我的探索和查阅资料,找到了解决方案。

2023-07-24 10:09:31 1349

原创 Java学习之仿写Tomcat

这样的设计有一个问题就是:服务器每次处理来自客户端的数据都必须新建一个线程,如果客户端B一直连接但不是发送数据,那么相应的子线程就会一直处于阻塞状态。因为这是一个BIO,所以需要在服务端用while来防止单个客户端阻塞线程我们应该以byte[]数组的方式收发数据而不是用bit数据流是因为byte[]数组有规整的长度(8bit)分割便于解析,而bit是无法分割的。

2022-11-19 15:07:52 411 1

原创 使用阿里云OSS实现文件上传

springboot有一个目录:static这个目录其实就是静态资源目录,这个目录下面的文件是是可以通过http直接访问的。但是程序化一般是打成jar包的,我们没办法把文件写入到static下,所以springboot提供静态资源目录的额外的映射机制,就是静态资源服务映射。这个时候你把:aaa.png文件上传到了D://tmp下,那么:你可以通过:http:localhost:8777/uploadimg/aaa.png。我们为什么要实现文件上传,其实就要共享资源,大家都可以看你的在平台上上传的文件;

2022-11-18 23:14:31 4131

原创 Centos系统虚拟网络持久化教程

然后再重启虚拟机,然后你就会发现我们的网络已经自动连接上了,这样子就是我们虚拟机网络连接持久化的全部流程了。就是当你挂起虚拟机后,第二次打开虚拟机的时候它不会自动连接网络,这样子的话还得右上角点击连接。这样子很显然是很影响用户体验的,所以我们今天教大家如何保持虚拟机网络的持久化。可以看见这个文件就是我们需要配置持久化的地方。首先我们需要在桌面右击,选择打开终端。然后我们进入到这个控制台页面。将ONBOOT这个选线。...

2022-07-25 21:15:05 594

原创 Java并发编程(四)之Java中的锁

这个类在java.util.concurrent.locks包下面,AQS是一个用来构建锁和同步器的框架,使用AQS能简单且高效地构造出应用广泛的大量的同步器,比如我们提到的ReentrantLock,Semaphore,其他的诸如ReentrantReadWriteLock,SynchronousQueue,FutureTask(jdk1.7)等等皆是基于AQS的。当然,我们自己也能利用AQS非常轻松容易地构造出符合我们自己需求的同步器。...

2022-07-22 00:58:03 150

原创 CentOS下载与VMware虚拟机安装全教程

有关内存和处理器的设置就按照默认的就可以,然后我们点击这个。

2022-07-20 17:52:12 1139

原创 Java并发编程(三)之并发编程基础——多线程、线程池详解

现代操作系统在运行一个程序时,会为其创建一个进程。例如,启动一个Java程序,操作系统就会创建一个Java进程。现代操作系统调度的最小单元是线程,也叫轻量级进程(LightWeightProcess),在一个进程里可以创建多个线程,这些线程都拥有各自的计数器、堆栈和局部变量等属性,并且能够访问共享的内存变量。处理器在这些线程上高速切换,让使用者感觉到这些线程在同时执行。...

2022-07-19 19:17:15 456

原创 Java并发编程(二)之并发机制的底层实现原理

如果一个字段被声明成volatile,Java线程内存模型确保所有线程看到这个变量的值是一致的,在java并发中,其保证数据的可见性,不保证数据的原子性。有volatile变量修饰的共享变量进行写操作的时候会多出第二行汇编代码,通过查IA-32架构软件开发者手册可知,Lock前缀的指令在多核处理器下会引发了两件事情。1)将当前处理器缓存行的数据写回到系统内存。2)这个写回内存的操作会使在其他CPU里缓存了该内存地址的数据无效。1)Lock前缀指令会引起处理器缓存回写到内存。Lock前缀指令导致在执行指令期间

2022-07-12 20:22:50 178

原创 Java并发编程(一)

在学习并发编程的前提下,我们应该先了解一下并发编程中的一些概念并发和并行是两个非常容易混淆的概念。它们都可以表示两个或多个任务一起执行,但是偏重点有点不同。并发偏重于多个任务交替执行,而多个任务之间有可能还是串行的。并发是逻辑上的同时发生(simultaneous),而并行是物理上的同时发生。然而并行的偏重点在于”同时执行”。指在同一时刻,有多条指令在多个处理器上同时执行。就好像两个人各拿一把铁锨在挖坑,一小时后,每人一个大坑。所以无论从微观还是从宏观来看,二者都是一起执行的。简单来讲,就是各个线程独立运行

2022-07-11 22:57:12 1104

原创 在centOS上安装redis及其配置

先下载redis文件 ---- 解压 ---- 然后移动并改名为redis ---- 然后输入进行编译再将 protected-mode 改为no将 daemonize 改成yes

2022-06-15 13:41:17 781

原创 VMware Workstation 增长网段的持续(租用)时间

我在做项目的时候遇到一个实际问题就是:明明今天晚上用的128的网段,结果到第二天连接的时候发现连接不上了,然后终端一运行,发现网段变成129的了,原因是这样的:因为这个默认的时间是30min到2h,所以会导致128变到129去了,所以我们需要增大一个虚拟机的租用时间要有以下步骤:首先,我们要用管理员身份打开VMware Workstation;然后点击编辑下面的“虚拟网络编辑器”;然后选中你需要更改的虚拟机,点击右下角的“DHCP设置”;然后就可以对此虚拟机的租用时间进行更改最高租用

2022-03-18 21:26:11 1076 1

原创 JVM知识梳理(三)之类加载机制

目录一、类加载的生命周期二、类加载的过程1.加载2.连接(验证、准备、解析)3.初始化4.卸载三、类加载器1.三层类加载器2.双亲委派模型3.破坏双亲委派模型Java虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最 终形成可以被虚拟机直接使用的Java类型,这个过程被称作虚拟机的类加载机制。一、类加载的生命周期一个类型从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期将会经历加载 (Loading)、验证(Verification)、准备(Pr

2022-03-16 22:10:00 620

原创 JVM知识梳理(二)之垃圾收集器与内存分配策略

目录一、如何判断一个对象已死?1.引用计数器算法2.可达性分析一次对象自我拯救的演示二、垃圾收集算法1. 分代收集理论2. 标记-清除算法3. 标记-复制算法4. 标记-整理算法三、HotSpot算法细节实现1. 根节点枚举2. 安全点3. 安全区域4. 记忆集与卡表5. 写屏障6. 并发的可达性分析一、如何判断一个对象已死?1.引用计数器算法在对象中添加一个引用计数器,每当有一个地方 引用它时,计数器值就加一;当引用失效时,计数器值就减一;任何时刻计数器为零的对象就是不可 能再被使用的。客

2022-03-07 22:55:15 351

原创 JVM 知识梳理(一)之Java内存区域

目录一、运行时数据区域线程独享线程共享二、对象的创建指针碰撞空闲列表三、对象的内存分布四、对象的访问定位一、运行时数据区域Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域 有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而一直存在,有些区域则是 依赖用户线程的启动和结束而建立和销毁。我们根据线程是否共享来认识这些:线程独享方法区(Method Area):与Java堆一样,是各个线程共享的内存区域,它用于存储已被虚拟机加载

2022-03-03 21:32:36 488

原创 用两个栈结构实现一个队列(Java)

在复习数据结构的栈和队列内容时,老师给我们抛出了一个问题:如何用两个栈实现一个队列,故作此文。算法思想由于栈结构的特点是先入后出,队列的特点是先进先出,用两个栈实现一个队列就可以用这种方式:代码实现public class TwoStacksToOneQueue { Stack<Integer> stack1 = new Stack<Integer>(); Stack<Integer> stack2 = new Stack<Integer&

2021-07-13 02:04:10 213

原创 Java“128陷阱”

浅谈Java“128陷阱”这是我在学习java的自动装箱、自动拆箱时遇到的一个有意思的问题,经过查看源码后了解原理,特此记录测试程序public static void main(String[] args) { Integer a =101; Integer b =101; System.out.println(a==b); Integer c =1001; Integer d =1001; Syst

2021-07-10 21:34:44 80

空空如也

空空如也

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

TA关注的人

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