美文网首页
Unsafe源码阅读

Unsafe源码阅读

作者: 圆滚滚_8e70 | 来源:发表于2020-01-10 10:20 被阅读0次

准备

  1. Reflection源码阅读
  2. JNI机制

功能描述

Unsafe类提供了一些底层的, 相对不安全的操作, 可直接操作内存.

基本类图

UnSafe类的类图

成员变量

命名 modifiers 类型 说明
theUnsafe private static final unsafe Unsafe类的实例 ( 单例模式 )

成员方法

方法名称 modifier 返回值 方法入参 说明
getUnsafe public static Unsafe 获取theUnsafe变量, 如果是不被信任的代码, 则会抛出不安全的异常信息.(信任的代码: 通过Bootstrap ClassLoader或者Ext ClassLoader加载的类)
getInt public native int Object o, long offset 从入参数对象o中读取内存地址为offset的int型值
putInt public native void Object o, long offset, int x 给对象o赋值x,内存地址为offset的变量
getxxx ...
putxxx ...
getAddress public native long long address 返回指定address地址的一个指针
putAddress public native void long address, long x 保存指针x到指定address地址
...

总结

  • Unsafe是一个典型的饿汉式单例模式, 私有化构造函数,并提供实例theUnsafe, 以及提供静态方法getUnsafe .
    注意⚠️: Unsafe的所有操作都必须是可信任的类.


    unsafe类汇总

相关文章

  • @CallerSensitive注解(随笔)

    前言 在阅读Unsafe源码是,以下是Unsafe部分源码: 我们可以看到,这个方法上有一个@CallerSens...

  • Unsafe源码阅读

    准备 Reflection源码阅读 JNI机制 功能描述 Unsafe类提供了一些底层的, 相对不安全的操作, 可...

  • JUC源码循序渐进

    目录 必读篇 JUC源码分析—CAS和Unsafe JUC源码分析—AQS JUC锁篇 JUC源码分析-JUC锁(...

  • 21.AtomicInteger、AtomicLong

    加减: 源码: U是Unsafe的对象。AtomicInteger的 getAndIncrement() 方法和 ...

  • Unsafe 类源码

    packagecom.ysj.spring.transaction; importjava.lang.reflec...

  • UnSafe

    源码:http://www.docjar.com/html/api/sun/misc/Unsafe.java.ht...

  • Unsafe类源码解析

    前言 Unsafe,顾名思义,一个不安全的类,那么jdk的开发者为什么要设计一个不安全的类呢?这个类为什么会不安全...

  • 图解Go的unsafe.Pointer

    相信看过Go源码的同学已经对unsafe.Pointer非常的眼熟,因为这个类型可以说在源码中是随处可见:map、...

  • Unsafe的使用解析

    相信很多人都阅读过jdk源码,这两天在看一段代码都时候正好用到Unsafe(JRE的rt.jar中提供了一个类su...

  • J.U.C之Unsafe: Unsafe 概述

    1 创建Unsafe Unsafe 对象不能直接通过 new Unsafe() 或调用 Unsafe.getUns...

网友评论

      本文标题:Unsafe源码阅读

      本文链接:https://www.haomeiwen.com/subject/tggractx.html