当前位置: 首页 > news >正文

青海个人旅游网站建设/爱站官网

青海个人旅游网站建设,爱站官网,昆明高端网站建设公司,西安市建设网在Java中,您首先要编写一个.java文件,然后在编译期间将其编译为.class文件。Java能够在运行时加载类。困惑是“负载”和“初始化”之间的区别是什么。Java类何时以及如何加载和初始化?通过使用下面的简单示例可以清楚地说明。说“上课”是什么…

在Java中,您首先要编写一个.java文件,然后在编译期间将其编译为.class文件。Java能够在运行时加载类。困惑是“负载”和“初始化”之间的区别是什么。Java类何时以及如何加载和初始化?通过使用下面的简单示例可以清楚地说明。

b678d7ab040a02be662baaa1d51d00bd.png

说“上课”是什么意思?

首先将C / C ++编译为本机代码,然后在编译后需要链接步骤。链接的作用是组合来自不同位置的源文件并形成可执行程序。Java不会这样做。将Java加载到JVM后,就完成了Java的类似链接步骤。

不同的JVM以不同的方式加载类,但是基本规则是仅在需要时才加载类。如果所加载的类还需要其他一些类,则它们也将被加载。加载过程是递归的。

什么时候以及如何加载Java类?

在Java中,加载策略由ClassLoader处理。以下示例显示了如何以及何时为简单程序加载类。

TestLoader.java

package compiler;public class TestLoader {

public static void main(String[] args) {

System.out.println("test");

}}

A. Java

package compiler;public class A {

public void method(){

System.out.println("inside of A");

}}

这是eclipse中的目录层次结构:

通过运行以下命令,我们可以获得有关每个已加载类的信息。“ -verbose:class”选项显示有关每个已加载类的信息。

java -verbose:class -classpath / home / ron / workspace / UltimateTest / bin /编译器.TestLoader

部分输出:

[从/usr/local/java/jdk1.6.0_34/jre/lib/rt.jar加载sun.misc.JavaSecurityProtectionDomainAccess。

[从/usr/local/java/jdk1.6.0_34/jre/lib/rt.jar加载的java.security.ProtectionDomain $ 2]

[从/usr/local/java/jdk1.6.0_34/jre/lib/rt.jar加载的java.security.ProtectionDomain $ Key]

[从/usr/local/java/jdk1.6.0_34/jre/lib/rt.jar加载的java.security.Principal]

[从文件:/ home / xiwang / workspace / UltimateTest / bin /中加载的compiler.TestLoader。]

测试

[从/usr/local/java/jdk1.6.0_34/jre/lib/rt.jar加载java.lang.Shutdown]

[从/usr/local/java/jdk1.6.0_34/jre/lib/rt.jar加载java.lang.Shutdown $ Lock]

现在,如果我们将TestLoader.java更改为:

编译器; 公共 TestLoader {

公共 静态 void main (String [ ] args ) {

系统。出来。println (“测试” );

A a = A ();

一个。方法();

} }

并再次运行相同的命令,输出将是:

[从/usr/local/java/jdk1.6.0_34/jre/lib/rt.jar加载sun.misc.JavaSecurityProtectionDomainAccess。

[从/usr/local/java/jdk1.6.0_34/jre/lib/rt.jar加载的java.security.ProtectionDomain $ 2]

[从/usr/local/java/jdk1.6.0_34/jre/lib/rt.jar加载的java.security.ProtectionDomain $ Key]

[从/usr/local/java/jdk1.6.0_34/jre/lib/rt.jar加载的java.security.Principal]

[从文件:/ home / xiwang / workspace / UltimateTest / bin /中加载的compiler.TestLoader。]

测试[从文件:/ home / xiwang / workspace / UltimateTest / bin /加载的编译器.A]

在A里面

[从/usr/local/java/jdk1.6.0_34/jre/lib/rt.jar加载java.lang.Shutdown]

[从/usr/local/java/jdk1.6.0_34/jre/lib/rt.jar加载java.lang.Shutdown $ Lock]

我们可以看到以红色突出显示的差异。A.class仅在使用时加载。总而言之,将加载一个类:

· 当执行新的字节码时。例如,SomeClass f = new SomeClass();

· 当字节码静态引用一个类时。例如,System.out。

Java类何时以及如何初始化?

首次使用类中的符号时,将初始化该类。加载类时,不会对其进行初始化。

JVM将按照文本顺序初始化超类和字段,首先初始化静态字段,最后是字段,并在初始化之前为每个字段提供默认值。

Java类实例初始化是一个示例,显示了字段,静态字段和构造函数的执行顺序。

最后,开发这么多年我也总结了一套学习Java的资料与面试题,如果你在技术上面想提升自己的话,可以关注我,私信发送领取资料或者在评论区留下自己的联系方式,有时间记得帮我点下转发让跟多的人看到哦。

1100f8f3a3aca74469d3a7568c3d409f.png
f5ad25b9a22a1698bf1d3a0361255247.png
http://www.lbrq.cn/news/1289611.html

相关文章:

  • 集约化网站群建设内容/百度指数关键词工具
  • 龙岗网站建设技术/营业推广方案
  • 解析网站怎么做/站长工具日本
  • 旅游类网站设计/重庆网站优化公司
  • 深圳建设局网站/武汉seo网站
  • 网站域名密码忘了/百度云登录
  • 建设网站需要申请什么/百度如何免费打广告
  • 厦门网站建设哪家便宜/网络推广公司是干嘛的
  • 网站域名备案办理拍照/网络营销策划方案模板范文
  • 东阳网站制作/推广网上国网
  • 建安证查询网站/百度关键词优化送网站
  • 长沙移动网站建设/营销策划公司收费明细
  • 深圳房产 网站建设/seo免费推广软件
  • 做AE视频素材在哪些网站上可以找/国内重大新闻10条
  • 男人和女人做性的网站/灰色关键词排名代做
  • 零售客户电商网站登录/电脑培训班电脑培训学校
  • wordpress插件头像/seo搜索引擎优化推荐
  • 做网页去哪些网站找素材较好/广州百度推广客服电话多少
  • 电商是干什么的/关键词优化排名首页
  • 音乐制作网站/老铁外链
  • 手机网站 wordpress/优化网站价格
  • 帮我写一篇网站/深圳互联网推广公司
  • 做二手车有哪些网站有哪些手续/怎么找到精准客户资源
  • 北京营销型网站建设方案/seo入门书籍
  • 宜宾建设网站/甘肃百度推广电话
  • 北京手机网站开发公司/百度搜索排名靠前
  • 武汉企业做网站找哪家好/友情链接站长平台
  • 四川seo整站优化吧/网络营销章节测试答案
  • 上海哪家公司可以做网站/广州市疫情最新
  • 微信网站怎样做/推广网站怎么制作
  • ARM 学习笔记(四)
  • Java技术栈/面试题合集(17)-Git篇
  • 加载用户设置时遇到错误找到一个带有无效“icon“的配置文件。将该配置文件默认为无图标。确保设置“icon“时,该值是图像的有效文件路径“
  • YOLOv5模型剪枝实战教程
  • MCP:UVX的安装
  • 显微科研中的关键选择:不同显微镜相机技术特性与应用适配性全面解析