摘要:
在上一次【https://www.cnblogs.com/webor2006/p/9723289.html】中已经对Java方法的静态分派在字节码中的表现了,也就是方法重载其实是一种静态分派的体现,这次来分析一下与之对应的动态分派机制,其表现就是方法的重写多态机制,下面先来看下代码: 很显然是一个多 阅读全文
摘要:
线程 线程,有时被称为轻量进程,是程序执行的最小单元。 C++11线程: 我们知道平常谈C++线程相关的东东基本都是基于之后要学习的posix相关的,其实在C++11有自己新式创建线程的方法,所以先来看一下,看在C++11中如何来创建一个线的,如下: 比较简单,直接过~ POSIX线程【常用】:PO 阅读全文
摘要:
继续来复习C++,比较枯燥,但是这是扎实掌握NDK开发的必经之路,不容小觑。 容器: 容器,就是用来存放东西的盒子。 常用的数据结构包括:数组array, 链表list, 树tree, 栈stack, 队列queue, 散列表hash table, 集合set、映射表map 等等。容器便是容纳这些数 阅读全文
摘要:
这次来看一下跟方法调用相关的东东,对于字节码而言跟方法调用的助记符有如下几个: invokeinterface:调用接口中的方法,实际上是在运行期决定的,决定到底调用实现该接口的哪个对象的方法。 invokestatic:调用静态方法。【重要】 invokespectial:调用自己的私有方法、构造 阅读全文
摘要:
我们知道在Java中异常处理有两种方式,一种是try...catch...一下,这个在上一次【https://www.cnblogs.com/webor2006/p/9706466.html】中已经进行了详细且完整的分析,但是还缺少往方法上throws的情况,所以这里对其进行补充一下,先修改源代码: 阅读全文
摘要:
在上一次【https://www.cnblogs.com/webor2006/p/9691523.html】初步对异常表相关的概念进行了了解,先来回顾一下: 其源代码也贴一下: 下面来看一下jclasslib关于这个test()的信息: 咱们重点来看一下Code信息,如下: 其实也就是对应于java 阅读全文
摘要:
关于面向对象编程对于一个java程序员那是再熟悉不过了,不过对于C++而言相对java还是有很多不同点的,所以全面复习一下。 类 C++ 在 C 语言的基础上增加了面向对象编程,C++ 支持面向对象程序设计。类是 C++ 的核心特性,用户定义的类型。 咱们来新建一个头文件来定义一下类: 其访问修饰符 阅读全文
摘要:
在之前的字节码分析中缺少对异常的介绍,这次主要来对字节码异常表相关的东东进行一个学习,下面先来编写一个相关异常的小程序: 接着编译来看用javap -verbose来查看一下它的字节码信息: 其中重点观注一下test()方法的信息: 其中stack表示这个方法运行的任何时刻所能达到的操作数栈的最大深 阅读全文
摘要:
在上一次【https://www.cnblogs.com/webor2006/p/9630895.html】中已经花了很大的篇幅完整的将复杂文件中的常量相关的信息给分析完了,这次来将剩下的字节相关的信息给分析完,那接下来该分析啥了呢?先来整体回顾一下Java字节码的整体结构: 下面则一个个接着进行分 阅读全文
摘要:
上一次【https://www.cnblogs.com/webor2006/p/9595300.html】了解了synchronized关键字在字节码中的表现形式了,接下来则从头至尾完整的对以下这个稍复杂的字节码文件进行分析,其源文件为: 其对于应二进制字节码信息用“Hex Fiend”打开: 可以 阅读全文