ooooooh灰灰_社区达人页

个人头像照片
ooooooh灰灰
已加入开发者社区1818

勋章 更多

个人头像照片
专家博主
专家博主
个人头像照片
星级博主
星级博主
个人头像照片
技术博主
技术博主
个人头像照片
初入江湖
初入江湖

成就

已发布60篇文章
0条评论
已回答0个问题
0条评论
已发布0个视频
github地址

我关注的人 更多

技术能力

兴趣领域
  • Go
  • 容器
擅长领域
  • Java
    中级

    能力说明:

    掌握封装、继承和多态设计Java类的方法,能够设计较复杂的Java类结构;能够使用泛型与集合的概念与方法,创建泛型类,使用ArrayList,TreeSet,TreeMap等对象掌握Java I/O原理从控制台读取和写入数据,能够使用BufferedReader,BufferedWriter文件创建输出、输入对象。

技术认证

暂时未有相关云产品技术能力~

Github 千星项目创建者,InfoQ、掘金等平台优质作者

暂无精选文章
暂无更多信息

2023年01月

  • 01.05 15:27:18
    发表了文章 2023-01-05 15:27:18

    高性能且小巧的脚本语言 LuaJIT

    Just-In-Time or JIT 是指在程序运行时进行代码编译的技术,像 Java,Python(这里指PyPy)、LuaJIT 都引入了这种技术。
  • 01.05 15:26:04
    发表了文章 2023-01-05 15:26:04

    了解下 Rust 的所有权机制

    常见的高级语言都有自己的 Garbage Collection(GC)机制来管理程序运行的内存,例如 Java、Go 等。而 Rust 引入了一种全新的内存管理机制,就是 ownership(所有权)。它在编译时就能够保证内存安全,而不需要 GC 来进行运行时的内存回收。
  • 01.05 15:24:28
    发表了文章 2023-01-05 15:24:28

    高性能网关基石——OpenResty

    OpenResty 一个基于 Nginx 的高性能 Web 平台,能够方便地搭建处理超高并发的动态 Web 应用、 Web 服务和动态网关。例如有名的 Kong 网关和国产新秀 ApiSIX 网关都是基于 OpenResty 来进行打造的。 OpenResty 通过实现 ngx_lua 和 stream_lua 等 Nginx 模块,把 Lua/LuaJIT 完美地整合进了 Nginx,从而让我们能够在 Nginx 内部里嵌入 Lua 脚本,用 Lua 语言来实现复杂的 HTTP/TCP/UDP 业务逻辑,同时依然保持着高度的并发服务能力。
  • 01.05 15:22:51
    发表了文章 2023-01-05 15:22:51

    用 manim 写一个排序算法动画

    Manim 是一个用于精确编程动画的引擎,专为创建解释性数学视频而设计。 注意,有两个主要版本的 manim。该存储库最初是 3Blue1Brown 的作者的个人项目,目的是为这些视频制作动画,此处提供了视频专用代码。2020 年,一群开发人员将其分叉成现在的社区版,目标是更稳定、更好地测试、更快地响应社区贡献,以及更友好地开始使用。
  • 01.05 15:17:40
    发表了文章 2023-01-05 15:17:40

    Redis是怎样通讯的?

    Redis 协议模型就是简单的请求-响应模型,和平常的 Http 协议有点类似。客户端发送 Redis 命令,然后服务端处理命令并返回结果给客户端。Redis 官方说这可能是最简单的网络协议模型了。
  • 01.05 15:16:13
    发表了文章 2023-01-05 15:16:13

    MySQL 是怎样通讯的?

    我们平常使用数据库的场景一般是程序里面代码直接连接使用,然后进行 CRUD 操作。或者使用有 GUI 界面的数据库软件来手动操作数据库, 这类软件有 DataGrip、Navicat等等...。平常很少关心它们的底层数据交互是怎么样的,相信你看了这篇文章一定能有大概的了解。本篇文章的代码使用 Go 语言来实现 MySQL 的协议。
  • 01.05 15:14:25
    发表了文章 2023-01-05 15:14:25

    JVM 逃逸分析技术

    逃逸分析技术的日渐成熟,促使所有的Java对象实例不一定都在Java堆上分配内存 简单来讲就是,Java Hotspot 虚拟机可以分析新创建对象的使用范围,并决定是否在 Java 堆上分配内存的一项技术。
  • 01.05 15:13:33
    发表了文章 2023-01-05 15:13:33

    JVM运行时数据区域

    线程私有 唯一一个没有规定 OutOfMemoryError 异常 的区域 它可以看作是当前线程所执行的字节码的行号指示器 如果线程正在执行的是一个Java方法,这个计数器记录的是正在执行的虚拟机字节码指令的地址;如果正在执行的是本地(Native)方法,这个计数器值则应为空(Undefined)
  • 01.05 15:12:33
    发表了文章 2023-01-05 15:12:33

    JVM 判断对象是否还活着的两种方法

    在对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加一;当引用失效时,计数器值就减一;任何时刻计数器为零的对象就是不可能再被使用的。
  • 01.05 15:11:35
    发表了文章 2023-01-05 15:11:35

    Java 四种引用方法使用和对比

    Java 四种引用方法使用和对比
  • 01.05 15:10:29
    发表了文章 2023-01-05 15:10:29

    JVM 虚拟机4种垃圾收集算法

    垃圾收集算法可以划分为“引用计数式垃圾收集”(Reference Counting GC)和“追踪式垃圾收集”(Tracing GC)两大类,这两类也常被称作“直接垃圾收集”和“间接垃圾收集”。
  • 01.05 15:09:32
    发表了文章 2023-01-05 15:09:32

    Spring 创建一个自定义注解

    平时在用springBoot的使用,常常会用到@Service,@Compent等等注解,简化了我们的开发流程,提升了开发效率.那如何自己来写一个注解呢?下面就来介绍一下。
  • 01.05 15:08:08
    发表了文章 2023-01-05 15:08:08

    用 Json-Schema 来验证你的请求参数

    Json-Schema 是一个用来验证、描述 Json 数据的一个标准,它可以用来验证你的请求数据是否和你定义的 Schema 是否一致。
  • 01.05 15:07:10
    发表了文章 2023-01-05 15:07:10

    JVM4种垃圾收集算法

    垃圾收集算法可以划分为“引用计数式垃圾收集”(Reference Counting GC)和“追踪式垃圾收集”(Tracing GC)两大类,这两类也常被称作“直接垃圾收集”和“间接垃圾收集”。
  • 01.05 15:06:11
    发表了文章 2023-01-05 15:06:11

    Java包装类缓存机制

    首先,来看一道常见的面试题,下面代码运行后会输出什么?
  • 01.05 15:04:45
    发表了文章 2023-01-05 15:04:45

    AviatorScript轻量级高性能脚本语言

    在 5.0 版本以前,它的名字是叫 Aviator ,定位一直只是一个表达式引擎,不支持 if/else 条件语句(仅有三元运算符支持 ?: ),没有内置的 for/while 循环支持(虽然你可以用 seq 库类似函数式的方式来处理集合),也没有赋值(后来在 4.0 引入),没有作用域的概念(也在 4.0 引入 lambda 函数后部分实现)等等一般语言常见的能力。在 5.0 版本后,它变成了一门脚本语言,叫:AviatorScript 。
  • 01.05 15:03:14
    发表了文章 2023-01-05 15:03:14

    JVM运行时栈帧

    在JVM中,每个线程都包含n个栈帧,每一个栈帧都包括了局部变量表、操作数栈、动态连接、方法返回地址和一些额外的附加信息。
  • 01.05 15:01:46
    发表了文章 2023-01-05 15:01:46

    JVM类加载过程

    对于数组类而言,情况就有所不同,数组类本身不通过类加载器创建,它是由Java虚拟机直接在内存中动态构造出来的。
  • 01.05 15:00:59
    发表了文章 2023-01-05 15:00:59

    Java类初始化

    首先,我们来看看下面的代码的输出的结果,可以先试着想一下
  • 01.05 15:00:10
    发表了文章 2023-01-05 15:00:10

    ZooKeeper客户端详解及可视化客户端

    我们可以去 ZooKeeper 官网 下载,这里我下载了 ZooKeeper 3.7.0 版本 下载解压后,进入 apache-zookeeper-3.7.0-bin/bin 目录,这里有客户端、服务端和一些工具。在 Windows 中可以执行.cmd 结尾的执行文件,在 Mac 或 Linux 中可以执行 .sh 结尾的可执行文件。名为 zkCli 的文件就是 ZooKeeper 的客户端了,我们可以用这个客户端来连接到 ZooKeeper 注册中心,来对节点进行查看或增删操作。
  • 01.05 14:57:41
    发表了文章 2023-01-05 14:57:41

    Quarkus构建native-image遇到的问题及解决

    构建的时间比较长,构建完成后就会在 ./target 目录下生成一个二进制执行文件,一般名字是 quarkus-demo-1.0-runner,直接执行这个二进制文件就可以运行项目了。
  • 01.05 14:56:30
    发表了文章 2023-01-05 14:56:30

    使用Maven工具创建Quarkus项目

    我这边使用的是 Maven 3.8.1 版本,可以使用 Quarkus 官方提供的 io.quarkus:quarkus-maven-plugin:2.0.1.Final 插件来快速穿件 Quarkus 项目。
  • 01.05 14:54:36
    发表了文章 2023-01-05 14:54:36

    Quarkus项目配置方式详解

    Quarkus 可以从多个地方获取项目的配置,它读取配置优先级入下图,在下面的优先级中,一旦读取到某个配置,就不会再继续读取后面配置中的这个配置了。
  • 01.05 14:53:27
    发表了文章 2023-01-05 14:53:27

    小白学前端之TypeScript的逻辑判断

    小白学前端之TypeScript的逻辑判断
  • 01.05 14:51:43
    发表了文章 2023-01-05 14:51:43

    小白学前端之TypeScript的接口和类

    和 Java 一样,TypeScript 的接口也是用关键字 interface 来声明的
  • 01.05 14:50:44
    发表了文章 2023-01-05 14:50:44

    小白学前端之TypeScript的数据类型

    联合类型(Union Types)可以通过管道(|)将变量设置多种类型,赋值时可以根据设置的类型来赋值。
  • 01.05 14:49:22
    发表了文章 2023-01-05 14:49:22

    小白学前端之TypeScript环境安装|8月更文挑战

    这里用 npm 工具安装 TypeSctipt
  • 01.05 12:09:57
    发表了文章 2023-01-05 12:09:57

    小白学前端之TypeScript使用Vuex 4.0|8月更文挑战

    官方介绍:Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。
  • 01.05 12:07:45
    发表了文章 2023-01-05 12:07:45

    设计模式中UML图箭头的含义|8月更文挑战

    在 Java 中表示继承关系,空心箭头指向父类
  • 01.05 12:06:24
    发表了文章 2023-01-05 12:06:24

    用Darabonba一键生成7种语言的代码|周末学习

    最近在看阿里的SDK的时候,突然看到了一个好玩的东西,这玩意叫 Darabonba。是一种 OpenAPI 应用的领域特定语言。可以利用它为任意风格的接口生成多语言的 SDK、代码示例、测试用例、接口编排等。现在阿里云的多语言 SDK 就是用这个生成的。下面是官方的介绍流程图。
  • 01.05 12:03:36
    发表了文章 2023-01-05 12:03:36

    什么是 HTTP 协议?

    HTTP 协议不用我多说了吧,大家都知道,现在我 web 开发一般都是使用 HTTP 协议来进行通信的。到目前为止,HTTP 进行了几次版本更新,HTTP 1.1 就是表示HTTP 的 1.1 版本。1.1 版本也是目前大部分网站所用的版本。
  • 01.05 12:02:09
    发表了文章 2023-01-05 12:02:09

    Dubbo 项目双注册中心

    当前 Dubbo 版本注册粒度是以接口粒度来注册的,而 SpringBoot 是以服务为粒度来注册的。而且 Dubbo 有自己的注册中心(当然 Spring Cloud Alibaba Dubbo 的注册中心可以挂靠在 Spring 上)。所以当一个项目既要调用 Dubbo 服务,又要提供自己的 Web 接口给网关调用时,就要为该项目设置两个注册中心,一个 Dubbo,一个 SpringBoot的(当然可以注册到同一个注册中心上)。
  • 01.05 12:00:23
    发表了文章 2023-01-05 12:00:23

    使用 Nacos 实现动态路由

    网关作为一个主要的外部流量入口,其重启的次数当然是越少越好,所以不能有时候为了修改一个路由就重启整个网关服务,这样的话网关就不是一个高可用的网关。当然,有时候要新增或修改代码层面的自定义的过滤器时还是要重启网关的,所以我们能做的就是尽可能减少不必要的重启。这里就可以引入阿里巴巴开源的 Nacos 了。
  • 01.05 11:57:31
    发表了文章 2023-01-05 11:57:31

    创建一个SpringCloudGateway网关项目

    我们可以去 [Spring initializer](https://start.spring.io) 网站或者用 IDEA 来快速创建出一个 Spring Cloud Gateway 项目。
  • 01.05 11:56:20
    发表了文章 2023-01-05 11:56:20

    AES加密算法简介及Go库介绍|Go主题月

    AES(Advanced Encryption Standard)的中文名叫高级加密标准,又称 Rijndael 加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。经过五年的甄选流程,高级加密标准由美国国家标准与技术研究院(NIST)于 2001 年 11 月 26 日发布于 FIPS PUB 197,并在 2002 年 5 月 26 日成为有效的标准。现在,高级加密标准已然成为对称密钥加密中最流行的算法之一。
  • 01.05 11:55:20
    发表了文章 2023-01-05 11:55:20

    Go 实现 AES 加密 CBC 模式|Go主题月

    密码分组链接模式 CBC (Cipher Block Chaining),这种模式是先将明文切分成若干小段,然后每一小段与初始块或者上一段的密文段进行异或运算后,再与密钥进行加密。
  • 01.05 11:53:05
    发表了文章 2023-01-05 11:53:05

    【FAQ】go的十万个为什么?-指针分配|Go主题月

    与 C 系列中的所有语言一样,Go 中的所有内容都按值传递。也就是说,一个函数总是获得所传递事物的副本,就像有一个赋值语句将值分配给参数一样。例如,将int值传递给函数将生成的副本int,而将指针传递将生成指针的副本,但不会复制其指向的数据。
  • 01.05 11:51:44
    发表了文章 2023-01-05 11:51:44

    go里的select特点|Go主题月

    在go中有一个类似switch的关键字,那就是select。 select的每个case接收的是I/O通讯操作,不能有其他表达式。select要配合channel使用。
  • 01.05 11:50:18
    发表了文章 2023-01-05 11:50:18

    【Golang】panic和recover底层逻辑实现|Go主题月

    在每个goroutine也有一个指针指向_panic链表表头,然后每增加一个panic就会在链表头部加入一个_panic结构体。当所有的defer执行完后,_panic链表就会从尾部开始打印panic信息了,也就是说先发生的panic先打印信息。
  • 01.05 11:49:15
    发表了文章 2023-01-05 11:49:15

    【Golang】panic和recover作用|Go主题月

    panic:一旦出现,就意味着程序的结束并退出。Go 语言中 panic 关键字主要用于主动抛出异常,类似 java 等语言中的 throw 关键字。 recover:将程序状态从严重的错误中恢复到正常状态。Go 语言中 recover 关键字主要用于捕获异常,让程序回到正常状态,类似 java 等语言中的 try ... catch 。
  • 01.05 11:48:00
    发表了文章 2023-01-05 11:48:00

    【struct】go的结构体|Go主题月

    go结构体的结构体主要由type和struct两个关键字组成
  • 01.05 11:46:32
    发表了文章 2023-01-05 11:46:32

    【defer】全新升级1.14以后的defer|Go主题月

    在go1.14中,官方又对defer做了升级,据说这次升级把速度提升了一个量级。
  • 01.05 11:45:33
    发表了文章 2023-01-05 11:45:33

    【defer】升级版1.13中的defer|Go主题月

    在1.13版本中,go语言改进了defer的创建。改为了直接用栈来存储_defer结构体。然后把栈上分配的_defer结构体注册到defer链表通过这样的方式避免在堆上分配_defer结构体。减少了堆和栈之间频繁复制导致的额外内存开销。
  • 01.05 11:44:27
    发表了文章 2023-01-05 11:44:27

    【defer】1.12版本中的defer|Go主题月

    defer在go中的作用就是延迟执行,一般常用来关闭一些io流等
  • 01.05 11:43:07
    发表了文章 2023-01-05 11:43:07

    匿名函数和闭包|Go主题月

    什么是匿名函数?字面意义上说明就是没有被赋予名称的函数
  • 01.05 11:41:49
    发表了文章 2023-01-05 11:41:49

    make和new对比|Go主题月

    make只可以用来创建map,slice,chan这三个类型,而且它是直接返回类型本身。
  • 01.05 11:40:35
    发表了文章 2023-01-05 11:40:35

    map基本使用及指针问题|Go主题月

    map基本使用及指针问题|Go主题月
  • 01.05 11:39:09
    发表了文章 2023-01-05 11:39:09

    【图】图解go切片|Go主题月

    切片(Slice)是go提供的一种便捷操作数组的数据结构。可以按需自动增长和缩小数组,切片通过append函数来动态添加底层数组数据。因为切片的底层是数组,所以在内存中是在连续内存块中分配内存的,所以切片可以和数组一样获得索引,迭代以及垃圾回收优化等好处。
  • 01.05 11:37:33
    发表了文章 2023-01-05 11:37:33

    使用Go进行Docker二次开发|Go主题月

    众所周知,Docker是用go进行开发的,所以自然Docker官方也开放了go的Docker API库。所以我们可以简单的调用Docker API来对Docker进行二次开发,下面就做个简单的示例,使用go来查看本地的容器,和启动一个容器。
  • 01.05 11:36:21
    发表了文章 2023-01-05 11:36:21

    go并发奥秘:GMP模型|Go主题月

    为什么go能支持高并发,它和Java的多线程有什么不同? 常规的多线程是由CPU直接调度的,其中大部分时间花在了上下文切换上面,所以后面就了了协程(co-routine),用于减少上下文切换。
  • 发表了文章 2023-01-05

    高性能且小巧的脚本语言 LuaJIT

  • 发表了文章 2023-01-05

    了解下 Rust 的所有权机制

  • 发表了文章 2023-01-05

    高性能网关基石——OpenResty

  • 发表了文章 2023-01-05

    用 manim 写一个排序算法动画

  • 发表了文章 2023-01-05

    Redis是怎样通讯的?

  • 发表了文章 2023-01-05

    MySQL 是怎样通讯的?

  • 发表了文章 2023-01-05

    JVM 逃逸分析技术

  • 发表了文章 2023-01-05

    JVM运行时数据区域

  • 发表了文章 2023-01-05

    JVM 判断对象是否还活着的两种方法

  • 发表了文章 2023-01-05

    Java 四种引用方法使用和对比

  • 发表了文章 2023-01-05

    JVM 虚拟机4种垃圾收集算法

  • 发表了文章 2023-01-05

    Spring 创建一个自定义注解

  • 发表了文章 2023-01-05

    用 Json-Schema 来验证你的请求参数

  • 发表了文章 2023-01-05

    JVM4种垃圾收集算法

  • 发表了文章 2023-01-05

    Java包装类缓存机制

  • 发表了文章 2023-01-05

    AviatorScript轻量级高性能脚本语言

  • 发表了文章 2023-01-05

    JVM运行时栈帧

  • 发表了文章 2023-01-05

    JVM类加载过程

  • 发表了文章 2023-01-05

    Java类初始化

  • 发表了文章 2023-01-05

    ZooKeeper客户端详解及可视化客户端

正在加载, 请稍后...
滑动查看更多
正在加载, 请稍后...
暂无更多信息
正在加载, 请稍后...
暂无更多信息