自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 配置静态ip

【代码】配置静态ip。

2023-08-22 13:51:20 97

原创 Spring创建Bean的过程(2)

Spring有三种方式寻找 xml 配置文件,根据 xml 文件内容来构建 ApplicationContext,分别为ClassPathXmlApplicationContext,FileSystemXmlApplicationContext ,AnnotationConfigApplicationContext 和 AnnotationConfigServletWebApplicationContext。

2023-08-15 00:22:01 403

原创 BeanFactory与Applicationcontext(1)

BeanFactory是接口,提供了IOC容器最基本的形式,给具体的IOC容器的实现提供了规范。BeanFactory是spring的“心脏”,核心容器,它也是Applicationcontext的父接口。BeanFactory实质上并未提供过多的方法,spring容器的IOC,依赖注入等功能都由它的子类去实现。

2023-08-14 22:15:18 230

原创 锁与原子操作的底层原理

偏向锁偏向锁在一个系统当中,大部分时间都不存在并发问题,但频繁的加锁释放锁又会占用大量系统资源。因此为了让线程获得锁的代价更低而引入了偏向锁。获得偏向锁1)检查该锁是否被当前线程持有2)通过CAS操作修改对象头3)将MarkWord中的线程ID指向当前线程。

2023-08-13 16:51:22 164

原创 Java并发机制的底层实现原理

线程执行到monitorenter指令时,将会尝试获取对象所对应的monitor的所有权,即尝试获得对象的锁。它会锁定这块内存区域的缓存并回写到内存,并使用缓存一致性机制来确保修改的原子性,此操作被称为“缓存锁定”,缓存一致性机制会阻止同时修改由两个以上处理器缓存的内存区域数据。每个处理器通过嗅探在总线上传播的数据来检查自己缓存的值是不是过期了,当处理器发现自己缓存行对应的内存地址被修改,就会将当前处理器的缓存行设置成无效状态,当处理器对这个数据进行修改操作的时候,会重新从系统内存中把数据读理器缓存里。

2023-08-11 17:11:12 168

原创 并发编程注意事项

jstack jconsle 等命令或工具查看是否有大量线程wait并处理。2.将处理的数据细粒度化,减少锁竞争,例如Mysql的页锁,行锁。程,创建线程后及时销毁,例如线程池的应用。4.使用协程,例如使用协程库Quasar。4.将释放锁操作加入finally块中。dump线程查看是否有死锁情况出现。,会引起CPU频繁的上下文切。1.使用无锁算法,例如CAS。

2023-08-11 11:36:07 81

原创 GCLIB动态代理

3.通过 Enhancer 类的 create()创建代理类。

2023-08-10 16:25:01 103

原创 JAVA动态代理

第三步:写一个代理类,顺便把main函数放在里面测试一下。创建的代理对象在调用方法的时候,实际会调用到实现。运行时的动作由invoke()方法决定控制。其中运用了反射的相关知识来实现。

2023-07-15 15:56:18 252

原创 ES自动补齐方法

【代码】ES自动补齐方法。

2023-07-09 14:49:55 117

原创 ES分词方法JAVA

【代码】ES分词方法JAVA。

2023-07-09 14:34:10 171

原创 BigDecimal

import java.math.BigDecimal;import java.math.RoundingMode;/** * 简化BigDecimal计算的小工具类 */public class BigDecimalUtil { /** * 默认除法运算精度 */ private static final int DEF_DIV_SCALE = 10; private BigDecimalUtil() { } /**

2023-06-23 16:25:33 46

原创 JVM调优

装载:将class文件转化为二进制文件,并将类描述信息放入方法区,将类对象存入堆链接:验证文件是否正确后,将静态成员放入方法区并为静态变量赋初始值,将类的符号引用转换为直接引用初始化:将静态变量赋值,并运行静态代码块启动类加载器:加载核心类库;拓展类加载器:加载拓展类库;应用类加载器:加载自己写的;

2023-05-24 16:12:58 696

原创 ES自定义分词:三部曲

PUT /索引名"ik_pinyin" : { //自定义分词器名"tokenizer":"ik_max_word", // 基本分词器],"filter":"pinyin_filter" // 配置分词器过滤},},"a => 97","b => 98"},},"filter" : { // 分词器过滤时配置另一个分词器,相当于同时使用两个分词器"type" : "pinyin", // 另一个分词器// 拼音分词器的配置。

2023-05-20 23:27:02 576

原创 Shiro配置

【代码】Shiro配置。

2023-05-19 22:49:12 617

原创 security配置

【代码】security配置。

2023-05-16 14:38:05 147

原创 启动mycat修改配置文件(单节点)

【代码】启动mycat修改配置文件(单节点)

2023-05-16 14:32:18 76

原创 连接docker部署redis超时

echo 1 > /proc/sys/net/ipv4/ip_forwardsysctl -p /etc/sysctl.conf

2023-05-15 22:12:03 272

原创 docker安装fastdfs

docker pull registry.cn-beijing.aliyuncs.com/tianzuo/fastdfsdocker run -d --restart=always --privileged=true --net=host --name=fastdfs -e IP=101.200.66.140 -e WEB_PORT=8888 -v ${HOME}/fastdfs:/var/local/fdfs registry.cn-beijing.aliyuncs.com/tianzuo/fastdf

2023-05-07 16:50:12 37

原创 linux安装nacos

进入bin目录执行./startup.sh -m standalone。启动成功后默认访问 ip:8848/nacos。

2023-05-07 11:14:54 42

原创 linux启动sentinel

java -jar sentinel-dashboard-1.8.2.jar

2023-05-07 10:39:08 171

原创 docker启动redis

docker run -d --name redis -p 6390:6379 redis --requirepass "123456"

2023-05-07 00:05:57 65

原创 存储器管理

1111

2022-07-05 22:52:28 506

原创 信号量机制

信号量机制

2022-07-04 01:11:51 104

原创 数在计算机内部的表示及运算

正数的原码、反码、补码一样。负数的反码是原码取反,补码是反码加1。例:十进制 8 十进制 -8 (第一位是符号位)原码:01000 11000反码:01000 10111补码:01000 11000引入移码:计算机内部数的表示是用补码表示的。此时,可以发现比较数的大小并不好比较,因此我们把所有数都加上2^n(n为数的位数),故称移码。按上边的例子,+1000+2^4 == 11000 > -1000+2......

2022-04-27 01:39:37 572 1

原创 洛谷P5804 [SEERC2019]Absolute Game

链接:[SEERC2019]Absolute Game - 洛谷思路:不管怎么找都会剩一个,既然如此就直接选一个留下来,每个数找一遍就行了,这个数满足的要求就是b组和它最近的两个数的最小绝对值在所有数中最大。code:#include<bits/stdc++.h>using namespace std;long long q1[1005],q2[1005];int main(){ int t,x,y,z,max=0,ans=0; scanf("%d",&t).

2022-04-26 14:49:04 659

原创 堆/二叉排序树(Java)

核心code:package com.sort;public class heapsort { public static void main(String[] args) { int[] a = {1, 4, 3, 5, 2, 7, 12, 45, 13, 754, 124, 754, 6, 32, 45, 1}; heap(a); for (int b : a) System.out.println(b); } publ

2022-04-25 18:30:32 380 1

原创 哈希表存电话号码的实现(Java_HashSet)

哈希+单链表核心code://哈希表存人员电话public class hashtabdemo { public static void main(String[] args) { hash hash = new hash(5); data peo = new data(32 , 138387); hash.add(peo); hash.read(32); }}class data{ public int

2022-04-24 16:56:33 868

原创 二分查找&插值查找(Java)

二分核心code:public int binary(int[] a,int key){ int l = 0,r = a.length-1; while (l<=r){ int mid = (l+r)/2; if(a[mid]==key) return mid; else if (a[mid]<key) l=mid+1; else r=mid-1;

2022-04-22 11:12:16 602

原创 基数排序(桶排序)(Java)

核心code:此代码仅为处理正数。处理负数时正负分开处理即可。public class bucketsort { public static void main(String[] args) { int[] a = {1, 4, 3, 5, 2, 7, 12, 45, 13, 754, 124, 754, 6, 32, 45, 1}; bucketsort bucketsort = new bucketsort(); bucketsort

2022-04-22 00:59:54 795

原创 归并排序(Java)

核心code:package com.sort;public class mergesort { public static void main(String[] args) { int[] a = {1, 4, 3, 5, 2, 7, 12, 45, 13, 754, 124, 754, 6, 32, 45, 1}; mergesort mergesort = new mergesort(); mergesort.merge(a);

2022-04-22 00:00:23 218

原创 IO设备程序中断

程序中断就是CPU需要对IO设备进行数据读写操作时需要将目前的操作中断,转而去操作IO设备的数据。几个人重要的硬件线路:INTR(中断请求处理器):数据准备就绪时发出信号。MASK(中断屏蔽触发器):Q非端为1未被屏蔽,反之则非。排队器:进行IO设备优先级的响应顺序排列。设备编码器:形成向量地址,根据向量地址找到相应服务程序。IO中断处理过程D,B代表设备状态 D=0,B=1代表正在准备 D=1,B=0代表准备就绪一、数据准备前:经过设备选择电路选中设备后,得到启动命

2022-04-20 22:35:53 3419

原创 汉明码编码

汉明码是用来校验存储器传输数据是否正确的一种编码方式。汉明码具有一位纠错能力。汉明码需要在原有数据位上增加一定数据位进行校验。设数据为 n 位,则需要增加 k 位校验位。公式:2^k>=n+k+1数据在计算机中用二进制表示,故将汉明码增加在2^k位置上使得每组测试数据中该位置一样。故得测试小组:C1: 1,3,5,7,9,11……位 (符合XXXX1)C2:2,3,6,7,10,11……位(符合XXX1X)C3:4,5,6,7,12,13……位(符合XX1XX)..

2022-04-20 17:26:16 3273

原创 快速排序(java)

核心code:public class quicksort { public static void main(String[] args) { int[] a = {1, 4, 3, 5, 2, 7, 12, 45, 13, 754, 124, 754, 6, 32, 45, 1}; quicksort quicksort = new quicksort(); quicksort.quick(a, 0, a.length - 1);

2022-04-19 16:03:54 298

原创 存储器与CPU连接&译码驱动方式

译码驱动方式一、线选法地址线经过地址译码器转化为相对二级制对应的子线,每次选择一根子线上的所有位进行输出与写入。二、重合法 增加了一排地址译码器,分别控制X线与Y线。每次选择一个存储单元,进行输入与输出。三、对比线选法结构简单,一般适用于容量不大的存储芯片 。而重合法存储结构复杂,芯片集成度高,存储容量大。存储器与CPU连接......

2022-04-19 14:19:44 2560

原创 插入排序(二分优化)(java)

核心code:public class insertsort { public insertsort() { } public static void main(String[] args) { int[] a = new int[]{1, 4, 3, 5, 2, 7}; insertsort insertsort = new insertsort(); insertsort.insert(a); int[] v

2022-04-19 13:30:44 723

原创 选择排序(java)

核心code:public class selectsort { public selectsort() { } public static void main(String[] args) { int[] a = new int[]{1, 4, 3, 5, 2, 7}; selectsort selectsort = new selectsort(); selectsort.select(a); int[] v

2022-04-19 13:29:18 41

原创 冒泡排序(java)

核心code:public class bubblesort { public bubblesort() { } public static void main(String[] args) { int[] a = new int[]{1, 4, 3, 5, 2, 7}; bubblesort bubblesort = new bubblesort(); bubblesort.bubble(a); int[] v

2022-04-19 13:27:33 558

原创 希尔排序(java)

public class shellsort { public static void main(String[] args) { int[] a = {1,4,3,5,2,7}; shellsort shellsort = new shellsort(); shellsort.shell(a); for(int b: a) System.out.println(b); } public void shell(int[.

2022-04-19 13:25:41 186

原创 总线通信控制

一个总线周期分为以下四个时钟周期1.申请分配阶段2.寻址阶段3.传数阶段4.结束阶段四种通信方式1.同步通信:同步通信一般指各个设备统一受系统总线的时钟信号进行同步。每个总线周期分为四个阶段,按严格按照规定时间完成相关阶段的操作,这样就造成了设计公共时钟时为了照顾较慢的时钟,而限制了总线效率,使得总线的工作效率大大降低。同步式操作流程读写命令操作略有不同T1 ~ T4为四个时钟周期读命令:在第一个周期上升沿之前,主......

2022-04-18 20:44:07 1267

原创 栈(java)

核心code://创建栈class stack{private int length;private int front;private int top;private int[] stack;//创建构造器public stack(int length) {this.length = length;this.front = 0;this.top = 0;this.stack = new i...

2022-04-18 20:28:01 169

空空如也

空空如也

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

TA关注的人

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