自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(187)
  • 资源 (1)
  • 收藏
  • 关注

原创 go稀疏数组

【代码】go稀疏数组。

2024-04-28 08:16:54 199

原创 golang反射

反射可以在运行时动态获取变量的各种信息,比如变量的类型(type)、类别(kind)如果是结构体变量,可以获取到结构体本身的信息(包括结构体的字段、方法)通过反射,可以修改变量的值,可以调用关联的方法使用反射,需要import(“reflect”)示意图。

2024-04-27 13:54:18 293

原创 go 测试和文件

测试用例文件必须以 _test.go 结尾测试用例方法 必须是 TestXxx 的格式一个测是用例可以有多个测试用例函数go test -v 会输出正确或错误的;go test 只会输出错误的测试某个文件(这里测试两个) go test -v cal_test.go cal.go测试某个方法 go test -v -test.run TestAddUpper文件在程序中以流的形式来操作的输入流:程序 -> 文件输出流:文件 -> 程序os.File 封装文件相关操作。

2024-04-27 07:54:23 407

原创 goroutinue和channel

M: 操作系统主线程 是物理线程P: 协程执行需要的上下文G: 协程。

2024-04-27 00:04:46 997

原创 go基础(flag、json)

我不喜欢把按照基本数据类型和复杂数据类型来划分,我更喜欢把go划分为值类型和引用数据类型。编译重命名:go build -o hello.sh main.go。将会在GOPATH/bin 目录下得到exe可执行文件;其实 此时不用闭包也能完成,不过传入一次,可以反复使用。不需要break默认就有,存在常规写法。将会得到 exe的可执行文件;穿透使用 fallthrough。这个反序列化 竟然 大小写不敏感。cd 到 main 文件夹下。

2024-04-26 17:45:45 281

原创 netty基础

概念。

2023-08-18 22:30:57 285

原创 quarkus核心编程笔记

定义和使用拦截器一共需要做三件事定义:新增一个注解(假设为A),要用@InterceptorBinding修饰该注解实现:拦截器A到底要做什么事情,需要在一个类中实现,该类需要两个注解来修饰:A和Interceptor使用:用A来修饰要拦截器的Bean/*** Priority注解的作用 设定HandlerError 拦截器的优先级(值越小优先级越高),可以同时用多个拦截器拦截同一个方法/*** AroundInvoke注解的作用 是表明execute会在拦截bean方法时被调用。

2023-07-30 10:16:35 343

原创 c++基础2

序列容器。

2023-07-24 19:49:23 761

原创 C++基础

标准形式区分同名变量或函数。

2023-07-22 14:56:09 81

原创 Redis进阶

Redis之父安特雷兹redis x.x.x第二位是偶数的是稳定版本redis7安装单机物理机安装:https://blog.csdn.net/G189D/article/details/129185947统计二值状态的数据类型最大位数2^32位,他可以极大的节约存储空间,使用512M可以存储最多42.9亿的字节信息应用场景:统计用户活跃度GEO持久化RDB指定时间间隔,执行数据集的时间点快照默认自动触发(Redis7)不同之前(时间)手动触发:调用save(阻塞,生产上禁用)命令或者bgsav

2023-07-07 22:03:49 2017

原创 docker进阶

bridge:为每个容器分配、设置IP等,并将容器连接到一个 docker0,虚拟网桥,默认模式host:使用宿主机的IP和端口none:有独立的network namespace,但没有任何网络设置container:新创建的容器不会创建自己的网卡和配置自己ip,而是和指定的容器共享IPDocker服务默认会创建一个docker0网桥(其上有一个docker0内部接口),该桥接网络的名称为docker0,他在内核层连通了其他的物理或虚拟网卡。这就将所有容器和本地主机放到同一个物理网络。

2023-07-04 23:34:10 280

原创 Rust基础

包:Cargo的一个功能,允许构建、测试和分享crateCrate:一个模块的树形结构,形成库或二进制项目模块:通过use来使用,用来控制作用域和路径的私有性路径:一个命名例如结构体、函数或模块等项的方式。

2023-06-03 10:16:58 594 6

原创 ThreadLocal

ThreadLocal提供线程局部变量。这些变量与正常的变量不同,因为每一个线程在访问ThreadLocal实例的时候(通过其get或set方法)都有自己的、独立初始化的变量副本。ThreadLocal实例通常是类中的私有静态字段,使用它的目的是希望将状态(例如,用户ID或事务ID)与线程关联起来。

2023-05-06 20:45:08 59 1

原创 CAS & 原子操作类

只需要记住:CAS是靠硬件实现的从而在硬件层提升效率,底层还是交给硬件来保证原子性和可见性实现方式是基于硬件平台的汇编指令,在intel的CPU中(X86机器上,使用的是汇编指令cmpxchg)指令核心思想是:比较要更新变量的值V和预期值E(compare),相等才会将V的值设为新值N(swap),如果不相等自旋再来AtomicLong原理​ CAS+自旋,incrementAndGet场景​ 低并发下的全局计算​ AtomicLong能保证并发情况下计数的准确性,通过CAS来解决并发问题。

2023-05-05 21:45:12 404

原创 Java内存模型之JMM

JMM(Java内存模型Java Memory Model,简称JMM)本身是一种抽象的概念,并不真实存在,它仅仅描述的是一组约定和规范,通过这组规范定义了程序中(尤其是多线程)各个变量的读写访问方式并决定一个线程对共享变量的何时写入以及如何变成对另一个线程可见,关键技术点都是围绕 **原子性、可见性和有序性 **展开的原则:JMM的关键技术点都是围绕多线程的原子性、可见性和有序性展开的能干嘛?通过JMM来实现线程和主内存之间的抽象关系。

2023-05-04 21:57:47 675

原创 LockSupport与线程中断

首先一个线程不应该有其他线程来强制中断或停止,而是应该有线程自己自行停止,自己来决定自己的命运。所以,Thread.stop ,Thread.suspend , Thread.resume都已经被废弃了其次在java中没有办法立即停止一条线程,然而停止线程却显得尤为重要,如取消一个耗时操作。因此java提供了一种用于停止线程的协商机制–中断,也即中断标识协商机制中断只是一种协作协商机制,java没有给中断增加任何语法,中断的过程完全需要程序猿自己实现。

2023-05-03 10:58:20 602

原创 Java的锁事

认为自己在使用数据的使用一定有别的线程来修改数据,因此在获取数据的时候会先加锁,确保数据不会被别的线程修改synchronized关键字和Lock的实现都是悲观锁适合写操作多的场景,先加锁可以保证写操作时数据正确。

2023-05-02 20:55:00 569

原创 CompletableFuture

如果用户线程全部结束意味着程序需要完成的业务操作已经结束,守护线程随着JVM一同结束工作setDaemon(true) 方法必须在start() 之前设置,否则IllegalThreadStateException异常。

2023-05-02 16:12:06 1003

原创 Effective 建造者模式、私有化、依赖注入

由于缺少公有的或受保护的构造器,所以保证了Elvis的全局唯一性:一旦Elvis类被实例化,将会只存在一个Elvis实例。虽然依赖注入极大提升了灵活性和可观测性,但他会导致大项目凌乱不堪,因为它通常包含上千个依赖。如果需要抵御这种攻击,可以修改构造器,让他在要求创建第二个实例的时候抛除异常。无偿的提供了序列化机制,绝对防止多次实例化,即使是面对复杂的序列化或反射攻击时。的一种形式:词典 是拼写检查器的一个依赖,在创建拼写检查器时就将该词典注入其中。当创建一个新的实例时,就讲该资源传到构造器中。

2023-04-29 14:48:01 1130

原创 Effective 1 用静态工厂方法代替构造器

​ newType 像newInstance一样,但是在工厂方法处于不同的类中的时候使用。Type表示工厂返回对象的类型。静态工厂方法能够为重复的调用返回相同对象,这样有助于累总能严格控制在某时刻哪些实例应该存在。静态工厂方法和设计模式中的工厂方法模式不同。本条目所指的静态工厂并不直接对应于设计模式中的工厂方法ss。所返回的对象的类可以随着每次调用而发生变化,这取决于静态方法的参数值。例如,将boolean基本类型转换为Boolean对象的引用。Type表示工厂返回对象的类型。

2023-04-29 13:55:25 991

原创 【无标题】

是用来构建锁或者其他同步器组件的重量级基础框架及整个juc体系的基石,通过内置的FIFO队列来完成资源获取线程的排队工作,并通过一个int类型的变量表示锁的持有状态和AQS有关的Semaphore。

2023-04-13 18:38:49 471

原创 JVM之运行时数据区 面试相关

jvm面试相关

2022-12-01 19:47:58 388

原创 JVM之运行时数据区 方法区

JVM之运行时数据区 方法区

2022-12-01 17:42:24 341

原创 JVM运行时数据 堆

JVM运行时数据 堆

2022-11-30 15:29:12 301

原创 JVM之运行时数据区 PC、虚拟机栈、本地方法栈

JVM之运行时数据区 PC、虚拟机栈、本地方法栈

2022-11-30 11:29:21 579

原创 JVM之类加载子系统

JVM之类加载子系统

2022-11-29 17:17:30 325

原创 nginx基础篇

nginx基础篇

2022-11-26 18:34:52 875

原创 Flink 状态编程

Flink 状态编程

2022-11-24 10:12:39 280

原创 Flink 多流转换

Flink 多流转换

2022-11-24 09:07:09 342

原创 Flink之ProcessFunction

ProcessFunction

2022-11-23 17:42:30 1410

原创 Flink时间窗口语义

Flink时间窗口语义

2022-11-23 16:50:36 266

原创 FlinkSql+Stream综合使用+广播流

FlinkSql+Stream综合使用+广播流

2022-11-22 21:04:05 1964

原创 Flink基础篇(基础算子+WaterMarker)

Flink基础篇(基础算子+WaterMarker)

2022-11-21 21:14:26 909

原创 hive3

hive3

2022-11-14 17:33:10 383

原创 Hadoop

hadoop

2022-11-14 15:57:00 243

原创 大数据 为什么用

大数据 从为什么开始

2022-11-04 13:48:38 678

原创 Netty编码和解码

Netty编码和解码

2022-08-18 19:57:17 545

原创 Netty再学习1

Netty再学习1

2022-08-17 23:20:22 199

原创 netty快速入门

netty快速入门

2022-08-14 15:44:58 181

原创 插入排序与希尔排序

插入排序与希尔排序

2022-08-05 00:14:52 102

MyBatis(再续前缘).md

MyBatis(再续前缘).md

2021-07-25

空空如也

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

TA关注的人

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