自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 雄心壮志隋炀帝,一手好牌打得稀烂

隋炀帝杨广,隋朝的第二位皇帝,同时也是亡国之君,就连“隋炀帝”这个称号也是李世民对他的蔑称并沿用至今。可是我们拉开对这位的亡国之君的种种指责之后,历史上隋炀帝却是一个充满雄心壮志,励志成为如汉武帝一般千古一帝的皇帝。然世事无常,万物皆有因果,这位皇帝到底是怎么一步步将他的empire带向深渊,成为历史的笑话。按理说杨广如果像汉文帝一样“无为而治”老老实实做条咸鱼,相信他杨家的隋朝也能千秋万...

2018-09-28 17:32:38 789

原创 虚拟机执行方法,重载与重写

结合前面虚拟机运行时内存分布和Class文件拆解,当一个方法从被调起到执行结束时对应一个栈帧从java方法栈中入栈到出栈。栈帧是用于支持虚拟机进行方法调用和执行的数据结构,其中储存一个方法所拥有的详细信息,包括:局部变量表、操作栈、动态链接和返回地址等信息。如果一个方法具有返回值,在当java方法栈处于栈顶的栈帧出栈后,虚拟机会将返回值压入当前栈顶的栈帧的局部变量内。局部变量表:用于存放方法参...

2018-09-11 17:54:40 376

原创 classLoader 类加载机制

我们所编写的java文件或其他经过编译器生成了class字节码文件,前面两篇已经对class文件的格式有了基本了解。虚拟机想要执行程序则需要将class文件加载到内存中,这个过程从字节流加载内存开始,到卸载出内存结束。其中包括: 加载——验证——准备——解析——初始化——使用——卸载。上面阶段不是严格顺序执行,各个阶段往往都是交叉混合执行的,其中解析可能出现在初始化之后,满足java的动态绑定...

2018-09-05 17:31:40 205

原创 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 672

原创 拆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 351

原创 垃圾收集器与内存分配策略

内存分配策略对象的内存分配就是在堆上分配(有些在栈上分配: JIT编译,逃逸分析技术),在堆上对象又主要在新生代的Eden上,如果启动了本地线程缓冲,将按线程优先在TLAB上分配。少数会直接分配在老年代中。具体由垃圾收集器组合与虚拟机参数决定。 垃圾收集器 Serial / Serial Old (ParNew / Serial Old) 组合下:1.普通对象 2.大对...

2018-08-28 17:58:37 133

原创 java内存区域

内存局域Java虚拟机所管理的内存包括以下几个运行时内存区域。程序计数器线程私有。记录线程正在执行的字节码指令的地址,用于虚拟机在各个线程之间切换时快速恢复到执行位置,在分支,循环,跳转,异常处理线程恢复等基础功能都需要依赖这个计数器来完成。但如果执行的是Native方法,这个计数器的值为undefined,他是唯一没有OutOfMemoryError的区域。Java虚拟机栈...

2018-08-23 19:47:30 181

原创 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 1556

翻译 JNI - 缓存、 三大引用

在JNI中有很多方法会用到ID, 比如:getObjectField( jobject , fid) 获取java的字段, CallVoidMethod( jobject , mid ) 调用java的方法。JNI在获取字段ID 和方法的ID时需要字段/方法名 和 描述 进行检索,这个过程相对比较耗时。如果有频繁调用的情况,会大大降低方法的效率。为了减少这个过程带来的小号...

2018-08-14 18:16:12 465

原创 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 287

原创 Python基础(二):我用python计算等额本息、等额本金。到底哪个划算嘛!

首先找个"房贷计算器"。假设我现在要商业贷款100万,30年(360期),基准利率:4.9%。结果如下图:总结关键点等额本息:30年共支付利息910617, 360期我每个月要还5308元等额本金:共支付利息737042,360期第一期要还6862元,往后每个月递减11.34元。我第一眼见到这个数据的感受,选等额本金!利息多了20万!20万!20万!虽然前期月供高1000多...

2018-08-02 13:54:56 8745 1

原创 python基础(1)-helloWorld

开发环境准备

2018-07-16 14:27:50 144

原创 翻译 整理View , API

https://developer.android.google.cn/reference/android/view/ViewAPI 27AnnotationsViewDebug.ExportedProperty : 在捕获视图时标记要转储的字段和方法。修饰方法时方法不能有参数,并返回有效的数据。例如:View getContext() @ViewDebug.CapturedViewProper...

2018-06-12 15:14:26 189

原创 Vuforia 官方Demo讲解

官方原文地址:https://library.vuforia.com/articles/Solution/Native-Sample-Application-Template今天看到的36氪新闻:高通发布面向VR/AR一体机的骁龙XR1芯片 支持4K视频模板接口三个重要的接口:SampleApplicationSession、SampleApplicationControl、SampleAppMe...

2018-05-31 14:19:52 3295

原创 DataBinding

https://developer.android.google.cn/reference/android/databinding/package-summary概览AnnotationsBindable            被用于继承Observable类的get方法上,配合notifyPropertyChanged(BR.*)使用。BindingAdapter      修饰静态方法,给Vi...

2018-05-28 14:46:36 251

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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