反射技术:其实就是动态加载一个指定的类,并获取该类中的所有的内容。而且将字节码文件封装成对象,并将字节码文件中的内容都封装成对象,这样便于操作这些成员。简单说:反射技术可以对一个类进行解剖。 反射的好处:大大的增强了程序的扩展性。 反射的基本步骤:1、获得Class对象,就是获取到指定的名称的字节码... ...
分类:
其他好文 时间:
2016-10-01 22:09:42
阅读次数:
147
1,JVM也是一个软件,不同的平台有不同的版本。我们编写的Java源码,编译后会生成一种 .class 文件,称为字节码文件。Java虚拟机就是负责将字节码文件翻译成特定平台下的机器码然后运行。也就是说,只要在不同平台上安装对应的JVM,就可以运行字节码文件,运行我们编写的Java程序。 而这个过程 ...
分类:
其他好文 时间:
2016-10-01 19:52:11
阅读次数:
198
动态分派与复写密不可分,因为java中存在向上转型,这样就涉及到方法的调用问题。先看一下示例代码 代码中创建了一个Test()对象,然后将其向上转型为Test1类型,然后调用say()方法。那么问题来了,调用的say()是父类的方法还是子类的方法。先看一下字节码文件 在字节码文件中,我们可以观察到在 ...
分类:
其他好文 时间:
2016-09-28 15:40:48
阅读次数:
111
【第一步】: 修改module下的build.gradle buildTypes { release { // 是否进行混淆 minifyEnabled true // 混淆文件的位置 // proguard是一个压缩、优化和混淆Java字节码文件的免费的工具 proguardFiles getDe ...
分类:
其他好文 时间:
2016-09-26 20:09:51
阅读次数:
170
1.什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”? Java虚拟机是一个可以执行Java字节码的虚拟机进程。Java源文件被编译成能被Java虚拟机执行的字节码文件。Java被设计成允许应用程序可以运行在任意的平台,而不需要程序员为每一个平台单独重写或者是重新编译。Java虚拟 ...
分类:
编程语言 时间:
2016-09-24 20:17:32
阅读次数:
207
其实就是动态加载一个指定的类,并获取该类中的所有的内容。而且将字节码文件封装成对象,并将字节码文件中的内容都封装成对象,这样便于操作这些成员。简单说:反射技术可以对一个类进行解剖。 反射的好处:大大的增强了程序的扩展性。 反射的基本步骤: 1、获得Class对象,就是获取到指定的名称的字节码文件对象 ...
分类:
编程语言 时间:
2016-09-22 14:29:26
阅读次数:
173
第一、我们编写一个.java源文件; 第二、通过编译器javac.exe把.java源文件编译为.class字节码文件并装入类装载器里; 第三、java虚拟机java.exe把字节码文件解释为各个平台操作系统可以识别的电脑二进制文件并运行; java之所以可以在各个操作系统上运营是因为有java虚拟 ...
分类:
编程语言 时间:
2016-09-21 22:44:36
阅读次数:
160
通过JVM编译java文件生成class字节码文件,很多时候很想用工具打开看看,目前还不清楚哪一个软件专门查看class文件的,但是通过windows下的javap命令可以查看详细的class文件 ShowClass.java文件源码很简单main函数直接打印“Hello class file!” ...
分类:
编程语言 时间:
2016-09-20 19:44:42
阅读次数:
137
一、作用 ClassLoader 就是把字节码文件,加载成字节码对象【class对象】 二、类加载器的分类 1、系统/引导类加载器 BootstrapClassLoader 由C语言写的,java中没有对应对象 负责加载 jdk/lib/rt.jar 里面所有的class文件 rt中就是JDK基础工 ...
分类:
其他好文 时间:
2016-09-20 01:31:51
阅读次数:
131
这一波快速学习主要是应付校招笔面试用,功利性质不可避免。 学习网址: http://www.runoob.com/java/java-tutorial.html 执行命令解析: 以上我们使用了两个命令 javac 和 java。 javac 命令用于将 java 源文件编译为 class 字节码文件 ...
分类:
编程语言 时间:
2016-09-15 06:21:11
阅读次数:
182