Wesley13 Wesley13
3年前
java 反射
一、java的动态性反射机制动态编译动态执行JavaScript代码动态字节码操作二、动态语言动态语言   程序运行时,可以改变程序结构或变量类型,典型的语言:python、ruby、javascript等C,C,JAVA不是动态语言,java可以称之为“准动态性语言”。但java
Wesley13 Wesley13
3年前
java 中 16 进制 HEX 转换成字节码形式的 UTF
恩,又碰到个蛋疼的编码转换问题了:要把形如\\xE9\\xBB的字符串转成中文。。。在python中我们直接print"\\xE9\\xBB\\x84"即可,在shell中我们直接 echo$'\\xe9\\xbb\\x84'echoe'\\xe9\\xbb\\x84'也行,注意:不能直接echo $'\\xde\\xab
Wesley13 Wesley13
3年前
java 源码编译
Java语言的“编译期”其实是一段“不确定”的操作过程,因为它可能是指一个前端编译器(叫“编译器的前段”更准确)——把\.java文件转变成\.class文件的过程;也可能是虚拟机的后端运行期编译器(JIT)把字节码转变成机器码的过程;还可能是指静态提前编译器(AOT编译器)直接把\.java文件编译成本地机器码的过程。Javac编译器
Stella981 Stella981
3年前
JS汉字编码 (ascii,unicode)的转换与反转
ASCII就是编码英文的26个字母和一些常见的符号,之后扩展了一半。总之是一个字节来做编码,大于128的部分是一些特殊符号。但ASCII是无法编码别的东西的,比如说是不存在“中文的ascii码需要2个字符”这种说法的。ASCII就只有一个字节。Unicode是足够编码地球上所有的语言了,所以ASCII中所能表示的,Unicode当然全部包
Stella981 Stella981
3年前
BeeAPM无侵入分布式全链路监控&追踪
BeeAPM是一个分布式跟踪和应用性能监控系统。该系统应用JavaAgent技术,使用bytebuddy(基于ASM的框架)进行字节码植入,从而对java应用程序进行相关数据采集和性能监控,对应用无侵入。部署agent部署server部署UI部署介绍采集端(age
Wesley13 Wesley13
3年前
1.0Java基础入门【第一个java程序与注释】
第一个Java程序1.安装JRE,JDK,配置环境变量2.创建编写一个java文件,编译生成字节码文件(.class),最后运行javachelloworld.java注:windows下不区分大小写javahelloworld\_以下代码是在IDEA编辑器中
Stella981 Stella981
3年前
Groovy中方法的调用实现方式浅析(CallSite)
 在Groovy中可以很方便的交换两个变量的值,如:def (a, b)  1, 2;(a, b)  b, a; 这样,a,b变量的值就交换了,那么Groovy是怎样实现的呢? 来看看生成的字节码文件,关键的代码如下:  // Method descriptor 39 ()
Stella981 Stella981
3年前
JIT与JVM的三种执行模式:解释模式、编译模式、混合模式
JavaJIT(justintime)即时编译器是sun公司采用了hotspot虚拟机取代其开发的classicvm之后引入的一项技术,目的在于提高java程序的性能,改变人们“java比C/C慢很多”这一尴尬印象。说起来是编译器,但此编译器与通常说的javac那个编译器不同,它其实是将字节码编译为硬件可执行的机器码的。!(https
Wesley13 Wesley13
3年前
Java动态代理
jdk动态代理实现原理:利用字节码技术,生成新的class文件,来达到动态代理效果。新的class文件是怎么组织的?由于代理目标是接口,则通过实现接口和继续代理类来完成。看看下面的例子更容易明白。demo接口publicinterfacePeoPleInterface{
Wesley13 Wesley13
3年前
Java类文件结构
代码编译的结果从本地机器码转变为字节码(ByteCode),是存储格式发展的一小步,却是编程语言发展的一大步。存储格式发展:  今天的计算机仍然只能识别0和1,但将我们编写的程序编译成二进制本地机器码(NativeCode)已不再是唯一的选择,越来越多的程序语言选择了与操作系统和机器指令集无关的、平台中立的格