java代码静态编译,Java静态编译

java 中静态代码和非静态代码块的区别!

相同点:都是在JVM加载类时且在构造方法执行之前执行,在类中都可以定义多个,

创新互联服务项目包括灵武网站建设、灵武网站制作、灵武网页制作以及灵武网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,灵武网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到灵武省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!

一般在代码块中对一些static变量进行赋值。

不同点:静态代码块在非静态代码块之前执行(静态代码块—非静态代码块—构造方法)。

静态代码块只在第一次new执行一次,之后不再执行,而非静态代码块在每new

一次就执行一次。非静态代码块可在普通方法中定义(不过作用不大);而静态代码块不行。

例:

//普通类

public class PuTong {

public PuTong(){

System.out.print("默认构造方法!--");

}

//非静态代码块

{

System.out.print("非静态代码块!--");

}

//静态代码块

static{

System.out.print("静态代码块!--");

}

public static void test(){

{

System.out.println("普通方法中的代码块!");

}

}

}

//测试类

public class TestClass {

/**

* 区别两次new静态与非静态代码块执行情况

*/

public static void main(String[] args) {

PuTong c1 = new PuTong();

c1.test();

PuTong c2 = new PuTong();

c2.test();

}

}

/*

运行输出结果是:

静态代码块!--非静态代码块!--默认构造方法!--普通方法中的代码块!

非静态代码块!--默认构造方法!--普通方法中的代码块!

*/

Java中几个名词解释 静态绑定&动态绑定 静态编译&动态编译 前绑定&后绑定

静态绑定:例如一个变量在声明的时候,就初始化最初值;

动态绑定:声明一个变量,在后续用set方法对其动态设置值;

静态编译:编译器在编译可执行文件的时候,将可执行文件需要调用的对应动态链接库(.so)中的部分提取出来,链接到可执行文件中去,使可执行文件在运行的时候不依赖于动态链接库。

动态编译:某些程式语言在执行时用来增进效能的方法。

前绑定:还未出现即绑定了某些事件

后绑定:出现后才会绑定的某些事件

JAVA能静态编译吗?

JAVA本身就是表态编译语言, 我想你要找的是JAVA程序的发布

首先JAVA程序运行肯定需要在目标机器上有jre(不是JDK), 如果你想不管目标机上有没有jre程序都能正常运行的话就要在你的发布包里包含jre

发布目录结构举例:

App

......bin 包含启动脚本

......lib 包含引入的第三方包

......jre JRE必要的包

启动脚本这样写:

../jre/bin/java -cp ../lib/JAR包名称.jar 启动类名称

java静态初始化器对什么进行初始化

java静态初始化器对static进行初始化。

所谓的静态和动态是相对于程序运行是而言的,静态是在程序编译时就初始化好了的,动态初始化是在程序运行是才动态分配内存空间。

static变量初始值一定要是常量。static变量中文名叫静态变量。位置静态局部变量被编译器放在全局存储区.data,所以它虽然是局部的,但是在程序的整个生命周期中存在。

作用:

对于静态全局变量来说,针对某一源文件的以static声明的文件级变量与函数的作用域只限于文件内(只在文件内可见),也即“内部连接”,因而可以用来限定变量的作用域。

对于静态局部变量来说,在函数内以static声明的变量虽然与自动局部变量的作用域相同(即作用域都只限于函数内)。

但存储空间是以静态分配而非默认的自动分配方式获取的,因而存储空间所在区域不同,且两次调用间变量值始终保持一致;必须注意,静态局部变量只能初始化一次,这是由编译器来保证实现。

对于静态成员变量来说,在C++中,在类的定义中以static声明的成员变量属于类变量,也即在所有类实例中共享,与之相对的就是过程变量。


分享题目:java代码静态编译,Java静态编译
文章出自:http://scyanting.com/article/heeopp.html