自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Apache ShenYu(原 soul) 网关 整合 nacos

公司做项目重构,从单体换成微服务,没有做过网关相关开发的我接下了这个工作.现在关于shenyu(原soul)的文章、教程都比较少,所以记录一下整合nacos的过程,希望能够对你有帮助

2022-06-10 00:39:18 3121 1

原创 iCloud 多设备 同步失败 问题排查及解决方案

最近由于科学上网,导致日历同步出了问题,全网搜遍了也没有找到解决方案,呜呜呜,在这里记录一下问题排查假设有两端互相同步,分别为 A端IOS端 和 B端 Mac端,但是不清楚具体是 A端没有同步到服务器上到数据还是B端没有同步到服务器端的数据,那么 可以以iCloud web端为准.iCloud Web端地址: https://www.icloud.com.cn/打开Web端,找到你没有同步的项目,比如日历,用Web端 与 A端B端 做比对,具体哪一端与Web端有差异.解决方案以我的问题.

2022-04-19 14:14:48 2397

原创 Java利用 ClassLayout 查看对象头

原创不易,有问题欢迎大佬指正,转载请注明出处使用方法添加依赖<!--查看对象头工具--> <dependency> <groupId>org.openjdk.jol</groupId> <artifactId>jol-core</artifactId> <version>0.9</version> </dependency>查看对象头.

2021-12-22 11:16:22 4983

原创 M1 docker 拉取 Mysql 报 no matching manifest for linux/arm64/v8 in the manifest list entries 问题解决办法

拉取最近版本的mysql,报no matching manifest for linux/arm64/v8 in the manifest list entries加上下面的平台信息,然后再拉就OK了--platform linux/x86_64

2021-08-15 17:42:19 1397

原创 JVM-Garbage Collection(垃圾回收)

垃圾的定义垃圾是指在运行程序中没有任何指针指向的对象,这个对象就是需要被回收的垃圾GC的作用防止内存被消耗完整理出内存分配给新的对象垃圾标记阶段在堆里存放着几乎所有的Java对象实例,在GC执行垃圾回收之前,首先需要区分出内存中哪些是存活对象,哪些是已经死亡的对象.只有被标记为已经死亡的对象,GC才会在执行垃圾回收时,释放掉其所占用的内存空间,因此这个过程我们可以称之为垃圾标记阶段对象死亡的标准当一个对象已经不再被任何的存活对象继续引用时,就可以宣判为已经死亡引用计数算法引用计数算.

2021-08-11 22:31:19 202

原创 JVM-String Table

String的基本特性String:字符串,使用一对""引起来表示String声明为final,不可被继承String实现了Serializable接口:表示字符串支持序列化.实现了Comparable接口:表示String可以比较大小String在JDK8及以前内部定义了final char[] value 用于存储字符串数据.JDK9时改为byte[]String:代表 不可变的字符序列.简称不可变性当字符串重新赋值时,也需要重新指定内存区域赋值,不能使用原有的value进行赋值当对现

2021-07-22 11:41:17 70

原创 JVM-执行引擎

执行引擎概述执行引擎是Java虚拟机核心的组成部分之一“虚拟机”是一个相对于“物理机”的概念,这两种机器都有代码执行能领,其区别是物理机的执行引擎是直接建立在处理器、缓存、指令集和操作系统层面上的,而虚拟机执行引擎则是由软件自由实现的,因此可以不受物理条件制约的定制指令集与执行引擎的结构体系,能够执行哪些不被硬件直接支持的指令集格式.JVM的主要任务是负责装载字节码到其内部,但字节码并不能够直接运行在操作系统之上,因为字节码指令并非等价于本地机器指令,它内部包含的仅仅只是一些能够被JVM所识别的字节.

2021-07-22 11:31:36 90

原创 JVM-Native Method Stack(本地方法栈)

作用Java虚拟机栈用于管理Java方法的调用,而本地方法栈用于管理本地方法的调用线程私有允许被实现成固定或是可动态扩展的内存大小本地方法是C语言实现的具体做法是Native Method Stack中登记native方法,在Execution Engine执行时加载本地方法库并不是所有JVM都支持本地方法...

2021-07-13 17:27:35 99

原创 JVM-对象的实例化、内存布局与访问定位

对象的实例化创建对象的方式newClass的newInstance():反射的方式,只能调用空参构造器,权限必须是publicConstructor的newInstance():反射的方式,可以调用空参、带参的构造器,没有权限要求clone():不调用任何构造器,当前类需要实现Cloneable接口,实现clone()使用反序列化第三方库Objenesis创建对象的步骤判断对象对应的类是否加载、链接、初始化虚拟机遇到一条new指令,首先去检查这个指令的参数能否在Metaspace

2021-07-13 16:35:46 62

原创 JVM- Method Area(方法区)

栈、堆、方法区的交互关系方法区的理解《Java虚拟机规范》中明确说明:“尽管所有的方法区在逻辑上是属于堆的一部分,但一些简单的实现可能不会选择去进行垃圾收集或者进行压缩”.但对于HotSpot JVM而言,方法区还有一个别名叫做Non-Heap(非堆),目的就是要和堆区分开.方法区看作是一块独立于Java堆的内存空间方法区和堆一样,线程共享方法区在JVM启动时创建,并且实际的物理内存空间中和Java堆区一样都可以是不连续的方法区的大小决定了系统可以保存多少个类,如果类太多,同样会导致OOM.

2021-07-13 16:31:17 150

原创 JVM-Heap Area(堆)

JVM-Heap Area(堆)堆的核心概述一个JVM实例只存在一个堆内存,堆也是java内存管理的核心区域Java堆在JVM启动的时候即被创建,其大小也就确定了.《Java虚拟机规范》中规定,堆可以处于物理上不连续的内存空间中,但在逻辑上是被视为连续的所有的线程共享Java堆,在这里还可以划分线程私有的缓冲区(Thread Local Allocation Buffer,TLAB)《Java虚拟机规范》中对Java堆的描述是:所有的对象实例以及数组都应当在运行时分配在堆上从实际的角度看,

2021-07-12 10:31:43 165

原创 JVM-PC Registers(程序计数器)

JVM-PC Registers(程序计数器)线程共享:堆、方法区线程不共享:程序计数器、本地方法栈、虚拟机栈PC Registers(程序计数器)JVM中的PC寄存器是对物理寄存器的一种抽象模拟PC寄存器用来存储指向下一条命令的地址,也即将要执行的指令代码.由执行引擎读取下一条指令每一个线程都有一个程序计数器,是线程私有的.生命周期和线程保持一致.使用PC寄存器存储字节码指令地址的作用因为CPU需要不停的在线程之间切换,这时候切换回来就需要知道当前方法从哪里继续执行JVM的字节码解释

2021-07-07 19:03:46 171

原创 JVM-Java virtual machine stack(虚拟机栈)

JVM-Java virtual machine stack(虚拟机栈)定义每个线程创建时都会创建一个虚拟机栈,其内部保存一个个的栈帧(Stack Frame),对应着一次次的方法调用线程私有生命周期与线程保持一致作用主管Java程序的运行,保存方法的局部变量(八种基本数据类型和对象的引用地址)、部分结果,并参与方法的调用和返回栈的特点快速有效的存储方式,访问速度仅次于pc寄存器JVM直接对Java栈的操作只有两个:入栈(压栈)、出栈不存在垃圾回收栈中可能出现的异常JVM虚拟机规

2021-07-07 18:58:02 161

原创 Java NIO

Java NIO资料来源定义NIO即new IO我们可以将它想象成一个煤矿,Channel(通道)是一个包含煤层(数据)的矿藏,而 Buffer(缓冲器)则是派送到矿藏的卡车。卡车满载煤炭而归,我们再从卡车上获得煤炭。也就是说,我们并没有直接和 Channel 交互;我们只是和 Buffer 交互,并把 Buffer 派送到 Channel。Channel 要么从 Buffer 获得数据,要么向 Buffer 发送数据。新特性基于通道、缓冲区操作通道(Channel):

2021-07-01 01:15:16 140

原创 Java IO

Java IO资料来源InputStream实现了Closeable接口 Closeable接口又继承了AutoCloseable接口.所以InputStream的所有实现类都可以使用try(resource)语句.available用来查看流的大小public static void main(String[] args) throws Exception { FileInputStream fileInputStream = new FileInputStream("/Users/D

2021-07-01 01:12:23 106

原创 JVM-Class Loader Subsystem(类加载器子系统)

JVM-Class Loader Subsystem(类加载器子系统)Loading(加载阶段)ClassLoader只负责class文件的加载加载的类信息存放于方法区,过程通过一个类的全限定名获取定义此类的二进制字节流.将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构转化为方法区的运行时数据结构在内存中生成一个代表这个类的Java.lang.Class对象,作为方法区这个类的各种数据的访问入口类加载器分类Bootstrap ClassLoader(引导类加载器/启动类

2021-07-01 01:07:02 175

原创 docker 搭建 elk

docker 搭建 elkELK是什么?“ELK”是三个开源项目的首字母缩写,这三个项目分别是:Elasticsearch、Logstash 和 Kibana。Elasticsearch 是一个搜索和分析引擎。Logstash 是服务器端数据处理管道,能够同时从多个来源采集数据,转换数据,然后将数据发送到诸如 Elasticsearch 等“存储库”中。Kibana 则可以让用户在 Elasticsearch 中使用图形和图表对数据进行可视化。——引自elk官网简而言之,就是一套日志、数据收集处理

2020-08-28 17:57:12 375

空空如也

空空如也

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

TA关注的人

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