ShadowfaxGHH

You have no choice but to fight.

NDK[2]Java方法到C方法 和 C方法到Java方法

【参考链接】 程序运行时,以主线程的main()方法为入口,不停的从一个方法调用到另一个方法中,方法返回再继续调用其他的根据之前JVM的知识,其实就是在不停向栈中压入栈帧、弹出栈帧所以既可以在java方法中调用C/C++方法,也可以在C/C++方法中调用Java方法,只不过这两种栈是分开维护的。 ...

2018-04-18 10:30:38

阅读数 90

评论数 0

NDK[1]ndk、ADT、AndroidStudio

【参考链接】向您的项目添加 C 和 C++ 代码https://developer.android.com/studio/projects/add-native-code.htmlAndroidStudio 2.2 CMAKE 高效NDK开发http://m.blog.csdn.net/l_215...

2018-04-18 10:28:08

阅读数 95

评论数 0

NDK[0]jni

【参考链接】Windows下使用Java Jni调用C/C++初探http://blog.csdn.net/pxhero2012/article/details/52926082 JNI的作用是在Java代码中调用C/C++代码编写的动态库。在Windows系统上,C/C++动态库的格式是.dll...

2018-04-18 10:22:57

阅读数 63

评论数 0

[1]System.gc()

 System.gc()会触发FullGC,回收新生代、老年代。(还有方法区)以如下代码为例 Java Code 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 //-Xms16M -...

2018-04-18 10:15:21

阅读数 111

评论数 0

[0]Runtime.memory()

 可以使用Runtime来获取到当前程序内存空间的状态如下代码所示 Java Code 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29...

2018-04-18 10:14:17

阅读数 66

评论数 0

虚拟机启动参数

启动Java虚拟机时,可以为其设置启动参数在命令行中,通过如下方式来设置java[-options] classfile在Eclipse中,通过如下方式来设置(新建或运行一次以后再设置)此外从上面还可以看出还可以设置传递给main()方法的参数,这里不再赘述。  常用的参数如下加载-Xbootcl...

2018-04-18 10:12:54

阅读数 355

评论数 0

内存溢出

【参考链接】内存溢出http://wiki.jikexueyuan.com/project/java-vm/storage.html  当某一块内存空间不够用时,就会出现内存溢出前面我们知道,虚拟机的内存空间可以分为方法区、栈、堆没有提供方式来设置整个虚拟机内存的大小对于方法区在Java1.8之前...

2018-04-18 10:08:33

阅读数 37

评论数 0

堆内存:划分、识别垃圾对象、分配策略和回收时机

【参考链接】Java 垃圾收集机制http://wiki.jikexueyuan.com/project/java-vm/garbage-collection-mechanism.html  划分堆内存划分为新生代和老年代,新生代又分为eden和survivor(伊甸园和幸存者),survivor...

2018-04-18 10:05:50

阅读数 104

评论数 0

对象内存模型[3]线程

【参考链接】 我们在启动线程的时候,也经常使用匿名内部类的方式,那么此时内存的状态是怎样的呢?以如下代码为例  已经加了断点,在Eclipse中启动调试,两个线程都停在了加断点的地方 在main线程中,有main()方法的栈帧,其中有两个局部变量,String[0]类型的args和Test类型的t...

2018-04-18 09:59:33

阅读数 46

评论数 0

对象内存模型[2]内部类

【参考链接】Java内部类详解http://www.cnblogs.com/dolphin0520/p/3811445.html静态内部类和非静态内部类的区别http://www.cnblogs.com/dolphin0520/p/3811445.html为什么Java内部类要设计成静态和非静态两...

2018-04-18 09:56:25

阅读数 190

评论数 0

对象内存模型[1]String

【参考链接】   一个String对象在堆上占用几个字节 虽然String对象所代表的字符串可能是多种多样的,但是一个String对象在堆内存中所占用的内存空间大小是固定的,这是因为 为了节省内存空间,一个应用程序中,所有的字符串常量都集中、不重复的保存在一个表中,这个表叫做字符串“拘...

2017-12-01 00:00:48

阅读数 2051

评论数 0

对象内存模型[0]

【参考链接】 java对象的内存布局http://blog.csdn.net/aitangyong/article/details/46416667 一个Java对象到底占用多大内存?http://www.cnblogs.com/magialmoon/p/3757767.html     ...

2017-11-30 23:59:19

阅读数 1998

评论数 0

栈内存状态变化概述

【参考链接】 实例分析Java代码运行时内存布局http://blog.csdn.net/wangyy130/article/details/52100907 运行时数据区http://blog.csdn.net/u012440687/article/details/52021393   ...

2017-11-30 23:57:39

阅读数 2052

评论数 0

字节码指令

下面会指令族的概念,先说明一下 前缀x取值 含义 i int b byte c char s short l long ...

2017-11-30 23:55:04

阅读数 2140

评论数 0

class文件结构[5] 局部变量表的槽位复用及其对垃圾回收的影响

long、double类型在局部变量表中需要占用2个槽位 其他类型如int、引用类型需要占用1个槽位   非static的成员方法的第一个局部变量都是this引用   以上一节的例子为例 一共占用5个槽位,其中 D(double)类型的arg1占用2 槽位,其余...

2017-10-31 10:35:04

阅读数 2183

评论数 0

class文件结构[4]

【参考链接】 深入理解Java Class文件格式(三)http://blog.csdn.net/zhangjg_blog/article/details/21557357 深入理解Java Class文件格式(四)http://blog.csdn.net/zhangjg_blog/artic...

2017-10-31 10:25:20

阅读数 2049

评论数 0

class文件结构[3] 常量池

【参考链接】 《Java虚拟机原理图解》 1.2、class文件中的常量池http://blog.csdn.net/luanlouis/article/details/40148053 《Java虚拟机原理图解》 1.2.2、Class文件中的常量池详解(上)http://blog.csdn...

2017-10-31 10:16:09

阅读数 147

评论数 0

class文件结构[2] static final、static、final、普通类型成员变量的赋初值

不考虑作用域修饰符,成员变量的类型有: static final 类型、仅static类型、仅final类型、普通类型 并且,我们在定义成员变量的时候,还可以通过=赋初值。(其中包含final时强制要求赋初值) 那么,这些赋值操作都是在哪个阶段完成的呢?   按照执行的先后顺序 1. ...

2017-10-31 10:07:59

阅读数 2074

评论数 0

class文件结构[1] 编译前预处理

1.       如果一个类没有显式继承自Object,则会自动为其加上继承自Object 以如下代码为例  Java Code  1 2 3 4   package com.test.a; public class Test {...

2017-10-31 10:02:16

阅读数 2135

评论数 0

class文件结构[0]

.java源代码文件经过编译以后会生成.class字节码文件。 可以使用WinHex直接以十六进制形式查看 也可以使用javap命令和jclasslib软件(注意64位操作系统匹配,和版本不要太低,我使用低版本的时候出现过字节码指令显示错误的问题)   后面讲解的时候,不打算详细到具体字节...

2017-10-31 09:59:26

阅读数 2008

评论数 0

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