Java使用Unsafe接口操作数组Demo
public class unSafeArrayDemo {
    private static final sun.misc.Unsafe UNSAFE;
    private static final long TBASE;
    private static final int TSHIFT;
    static {
        int ts;
        try {
            UNSAFE = getUnsafe();
            TBASE = UNSAFE.arrayBaseOffset(String[].class);
            ts = UNSAFE.arrayIndexScale(String[].class);
        } catch (Exception e) {
            throw new Error(e);
        }
        TSHIFT = 31 - Integer.numberOfLeadingZeros(ts);
    }
	static Unsafe getUnsafe() throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException {
    	Field f = Unsafe.class.getDeclaredField("theUnsafe");
    	f.setAccessible(true);
    	Unsafe unsafe = (Unsafe)f.get(null);
		return unsafe;
    }
	@SuppressWarnings("unchecked")
    static final String entryAt(String[] tab, int i) {
        return (String) UNSAFE.getObjectVolatile(tab, ((long)i << TSHIFT) + TBASE);
    }
	public static void main(String[] args) {
		int nLen = 37;
		String[] table = new String[nLen];
		for (int i = 0; i < nLen; i++) {
			table[i] = "数值为:  " + String.valueOf(i + 26);
		}
		String str = entryAt(table, 23);
		System.out.println(str);
	}
}
Java使用Unsafe接口操作数组Demo的更多相关文章
- JAVA通过COM接口操作PPT
		一. 背景说明 在Eclipse环境下,开发JAVA代码操作PPT,支持对PPT模板的修改.包括修改文本标签.图表.表格.满足大多数软件生成PPT报告的要求,即先收工创建好模板,在程序中修改模板数据. ... 
- Java中使用 foreach 操作数组
		foreach 并不是 Java 中的关键字,是 for 语句的特殊简化版本,在遍历数组.集合时, foreach 更简单便捷.从英文字面意思理解 foreach 也就是" for 每一个& ... 
- Java NIO Path接口和Files类配合操作文件
		Java NIO Path接口和Files类配合操作文件 @author ixenos Path接口 1.Path表示的是一个目录名序列,其后还可以跟着一个文件名,路径中第一个部件是根部件时就是绝对路 ... 
- JAVA操作数组
		使用 Arrays 类操作 Java 中的数组 Arrays 类是 Java 中提供的一个工具类,在 java.util 包中.该类中包含了一些方法用来直接操作数组,比如可直接实现数组的排序.搜索等 ... 
- Java学习笔记十:Java的数组以及操作数组
		Java的数组以及操作数组 一:什么是数组: 数组可以理解为是一个巨大的“盒子”,里面可以按顺序存放多个类型相同的数据,比如可以定义 int 型的数组 scores 存储 4 名学生的成绩 数组中的元 ... 
- Java抽象类、接口和内部类
		1.抽象方法.抽象类 1)抽象方法: 由abstract修饰 只有方法的定义,没有方法的具体实现(连{}都没有) 由abstract修饰的方法为抽象方法,抽象方法只有方法的定义,没有方法体实现,用一个 ... 
- Java 之 Collection 接口
		一.Collection 集合 Collection:单列集合类的根接口,用于存储一系列符合某种规则的元素,它有两个重要的子接口,分别是 java.util.List 和 java.util.Set. ... 
- Java 之 List 接口
		一.List 接口介绍 java.util.List 接口继承自 Collection 接口,是单列集合的一个重要分支,习惯性地会将实现了 List 接口的对象称为 List 集合. 在 List 集 ... 
- Android WebView与JavaScript交互操作(Demo)
		应用场景: 为了使Android移动项目能够在较短的时间内完成开发,同时降低技术人员开发的成本投入,往往会采用Hybrid APP的开发模式.相关Hybrid APP(混合型应用)参看:http:// ... 
随机推荐
- 通过SVN获取变更列表,得到对应的最新class
			通过本地SVN获得未提交的文件列表获取工程中最新的class的方式参考: 增量部署代码利用批处理命令按原始结构复制指定的文件 新写了一个增强版,根据已提交至SVN的代码loglist,获取最新的cla ... 
- hulu
			一. 一开始因为没收到含有共享文档链接的邮件,所以简单自我介绍,聊了几句项目.问了: 1. 玩嗨如果数据库结构变化要怎么办 2. 哈佛项目是否为官方渠道 一直没收到邮件,面试官读网址给我,进到共享文档 ... 
- OC Block(代码块)
			#import "ViewController.h" @interface ViewController () @end @implementation ViewControlle ... 
- Linux,du、df统计磁盘情况不一致
			转载:http://blog.linezing.com/?p=2136 在运维Linux服务器时,会碰到需要查看硬盘空间的情况,这时候,通常会使用df -lh命令来检查每个挂载了文件系统的硬盘的总量和 ... 
- The Architecture of Open Source Applications——阅读笔记part 1
			Architects look at thousands of buildings during their training, and study critiques of those buildi ... 
- python之numpy的基本使用
			https://blog.csdn.net/cxmscb/article/details/54583415 一.numpy概述 numpy(Numerical Python)提供了python对多维数 ... 
- 064——VUE中vue-router之使用路由别名定制(alias)
			<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ... 
- httpclient 相关使用介绍
			httpclient中sessionId的获取与设置 public class HttpSessionId { public static void main(String[] args) throw ... 
- angular封装jquery插件(组件)
			http://www.phloxblog.in/jquery-plugin-angular-js-directive-clean-html-approach/#.VaCWL9yUemJ 
- react中为什么要使用immutable
			因为在react中,react的生命周期中的setState()之后的shouldComponentUpdate()阶段默认返回true,所以会造成本组件和子组件的多余的render,重新生成virt ... 
