Unsafe介绍及CAS原理解析 Java 编程技术

Unsafe介绍及CAS原理解析

0.Unsafe介绍 JavaDoc说, Unsafe提供了一组用于执行底层的,不安全操作的方法。那么具体有哪些方法呢,我画了一张图。 可以看到Unsafe中提供了CAS,内存操作,线程调度,本机信息,Class相关方法,查看和设置某个对象或字段,内存分配和释放相关操作,内存地址获取相关方法。我自己抽空对上述方法进行了注释, 你可以在 这里看到 。 那么如何使用Uns...
阅读全文
60,000 毫秒内对 Linux 进行性能诊断 Java 编程技术

60,000 毫秒内对 Linux 进行性能诊断

当你发现 Linux 服务器上的系统性能问题,在最开始的 1 分钟时间里,你会查看哪些系统指标呢? Netflix 在 AWS 上有着大规模的 EC2 集群,以及各种各样的性能分析和监控工具。比如我们使用 Atlas 来监控整个平台,用 Vector 实时分析 EC2 实例的性能。这些工具已经能够帮助我们解决大部分的问题,但是有时候我们还是要登录进机器内部,用一些标准的 Linux 性能分析工...
阅读全文
一种简单快捷的java热部署方式 Java 编程技术

一种简单快捷的java热部署方式

热部署是帮助开发人员提高效率的利器,如果你的开发语言是java,开发环境是远程服务器,远程服务器debug端口被限制,那么你可能无法通过debug HotSwap实现热部署,那么本文介绍的IntelliJ IDEA插件可以帮助你在远程服务器实现热部署,而且操作简单快捷。本文热部署插件( Arthas Hot Swap )是基于Arthas redefine命令实现的,使用该插件进行远程热部署无需任...
阅读全文
深入探究JVM之对象创建及分配策略 Java 编程技术

深入探究JVM之对象创建及分配策略

@ 目录 前言 Java是面向对象的语言,所谓“万事万物皆对象”就是Java是基于对象来设计程序的,没有对象程序就无法运行(8大基本类型除外),那么对象是如何创建的?在内存中又是怎么分配的呢? 正文 一、对象的创建方式 在Java中我们有几种方式可以创建一个新的对象呢?总共有以下几种方式: new关键字 反射 clone 反序列化 Uns...
阅读全文
备战金九银十面试季,每天一个面试小技巧(五锁机制篇) Java 编程技术

备战金九银十面试季,每天一个面试小技巧(五锁机制篇)

前言: hello大家好我是搬砖,没错又是我,又来给大家分享面试题来了。身为一个面试题狂魔,每天不是在刷题的路上就是在找题的路上。今天在刷B站的时候忽然发现一个锁机制的问题,仔细回想一下还没有做一下总结,今天就来给大家总结一下,希望对你们有用。 锁的原因都是由并发问题发生的,在此我只是写一些面试中可能会问到的问题以及问题的答案,并不是给大家深入的讲解锁机制,一般面试官问都是从一...
阅读全文
10种常见OOM分析——手把手教你写bug Java 编程技术

10种常见OOM分析——手把手教你写bug

点赞+收藏 就学会系列,文章收录在 GitHub JavaKeeper ,N线互联网开发必备技能兵器谱,笔记自取 在《Java虚拟机规范》的规定里,除了程序计数器外,虚拟机内存的其他几个运行时区域都有发生 OutOfMemoryError 异常的可能。 本篇主要包括如下 OOM 的介绍和示例: java.lang.StackOverflowError java...
阅读全文
kotlin基础 Java 编程技术

kotlin基础

记录一下与java相比的一些基础重要的点 1.基础知识 1.1 基本类型 kotlin中没有java基本类型的int、float、double等,所有东西都是对象,这与java类似。但是kotlin对数字没有隐式拓宽转换,需要显示转换;数字字面量不支持八进制。 1.2 包与导入 使用import关键字,功能上与java差不多。import不限于导入类,还可以导入声明如枚举常量。不同的是...
阅读全文
应用诊断利器Arthas ByteKit 深度解读(2):本地变量及参数绑定 Java 编程技术

应用诊断利器Arthas ByteKit 深度解读(2):本地变量及参数绑定

前言 本文通过分析ByteKit的本地变量绑定(LocalVarsBinding)处理代码,结合Java Opcode手册、asm代码、javap反汇编字节码等工具,深入讲解每个指令的用法及在本场景的实际作用。结合上下文线索,从字节码的角度去理解ByteKit 本地变量绑定的实现过程。 相关文章: 开源诊断利器Arthas ByteKit 深度解读(1):基本原理介绍 简介...
阅读全文
JVM相关 - SafePoint 与 Stop The World 全解(基于OpenJDK 11版本) Java 编程技术

JVM相关 - SafePoint 与 Stop The World 全解(基于OpenJDK 11版本)

本文基于 OpenJDK 11 在分析线上 JVM 性能问题的时候,我们可能会碰到下面这些场景: 1.GC 本身没有花多长时间,但是 JVM 暂停了很久,例如下面: 2.JVM 没有 GC,但是程序暂停了很久,而且这种情况时不时就出现。 这些问题一般和 SafePoint 还有 Stop the World 有关。 什么是 SafePoint?什么是 Stop the wor...
阅读全文
60,000 毫秒内对 Linux 进行性能诊断 Java 编程技术

60,000 毫秒内对 Linux 进行性能诊断

当你发现 Linux 服务器上的系统性能问题,在最开始的 1 分钟时间里,你会查看哪些系统指标呢? Netflix 在 AWS 上有着大规模的 EC2 集群,以及各种各样的性能分析和监控工具。比如我们使用 Atlas 来监控整个平台,用 Vector 实时分析 EC2 实例的性能。这些工具已经能够帮助我们解决大部分的问题,但是有时候我们还是要登录进机器内部,用一些标准的 Linux 性能分析工具...
阅读全文
基础篇:详解锁原理,synchronized、volatile+cas底层实现 Java 编程技术

基础篇:详解锁原理,synchronized、volatile+cas底层实现

随着多进程多线程的出现,对共享资源(设备,数据等)的竞争往往会导致资源的使用表现为随机无序 例如:一个线程想在控制台输出"I am fine",刚写到"I am",就被另一线程抢占控制台输出"naughty",导致结果是"I am naughty";对于资源的被抢占使用,我们能怎么办呢?当然不是凉拌,...
阅读全文
Loading...