java
文章平均质量分 80
chymistry
这个作者很懒,什么都没留下…
展开
-
JNI--JNIenv 、JNI Types、字符串
使用介绍JNI 是java代码与C/C++代码沟通的桥梁。使用时只需在静态代码块中依赖.so文件,调用C/C++方法使用Native修饰。在androidStudio使用前,切记你已经在SDK Tools里下载应用了CMake、LLDB 、NDK。LLDB:调试工具(后面介绍)。 NDK:工具集,为我们生成C/C++的动态链接库,同时参与打包整合so和java代码。 CMake...原创 2018-08-02 19:01:55 · 286 阅读 · 0 评论 -
NDK-LLDB使用及Crash定位(addr2line,objdump, ndk-stack)
LLDB简介官网地址:http://lldb.llvm.org/index.html。LLDB是下一代,高性能的调节器。是Mac OS X上Xcode默认的调节器,支持在电脑 ,IOS设备,模拟器上调试C,Objective-C 和C++。LLDB简单使用在AndroidStudio使用前确保已安装LLDB,Settings->Appearance&Behavior-&g...原创 2018-08-22 19:48:27 · 1544 阅读 · 0 评论 -
java内存区域
内存局域Java虚拟机所管理的内存包括以下几个运行时内存区域。程序计数器线程私有。记录线程正在执行的字节码指令的地址,用于虚拟机在各个线程之间切换时快速恢复到执行位置,在分支,循环,跳转,异常处理线程恢复等基础功能都需要依赖这个计数器来完成。但如果执行的是Native方法,这个计数器的值为undefined,他是唯一没有OutOfMemoryError的区域。Java虚拟机栈...原创 2018-08-23 19:47:30 · 177 阅读 · 0 评论 -
垃圾收集器与内存分配策略
内存分配策略对象的内存分配就是在堆上分配(有些在栈上分配: JIT编译,逃逸分析技术),在堆上对象又主要在新生代的Eden上,如果启动了本地线程缓冲,将按线程优先在TLAB上分配。少数会直接分配在老年代中。具体由垃圾收集器组合与虚拟机参数决定。 垃圾收集器 Serial / Serial Old (ParNew / Serial Old) 组合下:1.普通对象 2.大对...原创 2018-08-28 17:58:37 · 133 阅读 · 0 评论 -
拆class文件(一)
准备1.新建一个TestClass.java文件,编译(使用开发工具ide或java命令工具javac)拿到TestClass.class文件。示例java代码如下public class TestClass { private int m; public int inc() { return m+1; } }2.下载一个16进制编译器 WinHex 或 010 E...原创 2018-08-31 18:26:22 · 349 阅读 · 0 评论 -
虚拟机执行方法,重载与重写
结合前面虚拟机运行时内存分布和Class文件拆解,当一个方法从被调起到执行结束时对应一个栈帧从java方法栈中入栈到出栈。栈帧是用于支持虚拟机进行方法调用和执行的数据结构,其中储存一个方法所拥有的详细信息,包括:局部变量表、操作栈、动态链接和返回地址等信息。如果一个方法具有返回值,在当java方法栈处于栈顶的栈帧出栈后,虚拟机会将返回值压入当前栈顶的栈帧的局部变量内。局部变量表:用于存放方法参...原创 2018-09-11 17:54:40 · 374 阅读 · 0 评论 -
classLoader 类加载机制
我们所编写的java文件或其他经过编译器生成了class字节码文件,前面两篇已经对class文件的格式有了基本了解。虚拟机想要执行程序则需要将class文件加载到内存中,这个过程从字节流加载内存开始,到卸载出内存结束。其中包括: 加载——验证——准备——解析——初始化——使用——卸载。上面阶段不是严格顺序执行,各个阶段往往都是交叉混合执行的,其中解析可能出现在初始化之后,满足java的动态绑定...原创 2018-09-05 17:31:40 · 205 阅读 · 0 评论 -
Class文件(二)-属性和字节码指令
上一篇介绍了class文件结构的含义https://blog.csdn.net/m0_37312601/article/details/82221996,这篇主要讲attribute_info表中各个属性及Java虚拟机中的一些指令。java实例以及分析数据依然与上篇相同,这里就不重新贴了。属性表的Code属性方法表长度为methods_count = 2,第一个方法是编译器默认为我们...原创 2018-09-03 16:53:25 · 669 阅读 · 0 评论