现在,许多 Java 开发人员都喜欢在 Java 平台中使用脚本语言,但是使用编译到 Java 字节码中的动态语言有时是不可行的。在某些情况中,直接编写一个 Java 应用程序的脚本 部分 或者在一个脚本中调用特定的 Java 对象是更快捷、更高效的方法。 这就是 javax.script 产生的....
分类:
编程语言 时间:
2015-06-24 18:45:49
阅读次数:
109
包命名规则:1.公司UR 2.项目名 3.L模块名 4.子模块名加入包名之后编译后面 -d 1.(指定编译好的字节码的目录位置)2.如果源文件声明了包结构那么在生成字节码文件的时候自动按照包结构创建的文件夹下加包的情况下编译javac MyFirstJava.java -d .加包的情况下运行jav...
分类:
编程语言 时间:
2015-06-24 16:02:35
阅读次数:
140
1、EXE本身就是个容器,它可以在ARM平台上包含ARM的native code执行,也可以在x86平台上包含x86的native code执行,本质上无差别(所以麻烦那些说EXE不能在ARM平台上运行的同学自删答案可以吗?)。2、APPX文件里并不包含字节码,而是各种架构的native code的...
类执行机制JVM基于栈体系结构来执行class字节码,线程被创建后,产生程序计数器(PC)和栈(Stack)PC存放下一条执行的指令在方法内的偏移量,Stack存放一个栈帧,每个栈帧对应每个方法的每次调用,栈帧中存放局部变量和操作数栈 栈的结构如下图: JVM内存结构Java虚拟机规范规定的ja.....
分类:
其他好文 时间:
2015-06-23 21:32:09
阅读次数:
240
在语法定义上的区别:静态变量前要加static关键字,而实例变量前则不加。在程序运行时的区别:实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量。静态变量不属于某个实例对象,而是属于类,所以也称为类变量,只要程序加载了类的字节码,不用创建任何实例对象,...
分类:
其他好文 时间:
2015-06-23 15:20:46
阅读次数:
120
问题描述:
在将Hibernate实体类字段int为Integer产生java.lang.NoSuchMethodError,但是明明是有这个方法的,但是一直说没有这个方法。后经仔细对比字节码文件,发现jdk在编译字节码时,会对相关方法进行处理。
详细编译情况如下:
原始代码:
net.setPushstatus(Integer.parseInt(pushstatus)...
分类:
编程语言 时间:
2015-06-23 13:36:28
阅读次数:
117
主要用到三方面技术:beanshell来实现可扩展:告诉zorkaAgent插桩的具体需求,包括插桩的方法和值、插桩的时机、插桩追踪记录方式等。Instrument来通过代理的方式访问JVM,实现在类加载的时候访问类字节码。ASM字节码操纵框架,用于实现真正底层的类字节码的修改。一、beanshel...
分类:
其他好文 时间:
2015-06-23 11:25:37
阅读次数:
109
Ant构建Java项目
我们创建HelloWorld项目,将源文件.java发到src中,编译后字节码.class放到bin中,对应的jar包放到exe目录中。
首先使用命令行来构建项目:
1.创建src目录
md src
2.在src目录中存放源文件HelloWorld.java,类HelloWorld的包名为com.tghz.test
那么创建包名路径,cd...
分类:
编程语言 时间:
2015-06-21 18:40:45
阅读次数:
223
动态代理是指在运行时,动态生成代理类。代理类的字节码将在运行时生成并载入当前的ClassLoader.
生成动态代理类的方法很多,如JDK自带的动态代理、CGLIB、Javassist或者ASM库。
JDK动态代理使用简单,它内置在JDK中,因此不需要引入第三方Jar包,但相对功能比较弱。CGLIB和Javassist都是高级的字节码生成库,总体性能比...
分类:
其他好文 时间:
2015-06-20 00:23:45
阅读次数:
486
Java 核心卷1.简单性2.面向对象: 关注椅子而非工具3.网络技能: Http/Ftp, 远程方法调用(分布式)4.健壮: Java指针模型(不损坏数据结构和重写内存)5.安全: 适用于网络/分布式环境6.体系结构中立: 字节码文件适用于各平台7.可移植8.解释型: ...
分类:
编程语言 时间:
2015-06-19 13:11:04
阅读次数:
103