Java虚拟机规范:Java SE 7版解读

需积分: 9 2 下载量 178 浏览量 更新于2024-07-26 收藏 2.07MB PDF 举报
"The Java Virtual Machine Specification Java SE 7 Edition 是一本由 Tim Lindholm, Frank Yellin, Gilad Bracha 和 Alex Buckley 共同编写的书籍,详细阐述了 Java 虚拟机(JVM)在 Java SE 7 版本中的规范。这本书旨在提供对 JVM 的内部工作原理、执行模型以及如何编写能在 JVM 上运行的应用程序的深入理解。本书的内容涵盖了 2011 年 7 月发布的最终版本(Final Release)的 JSR-000924 Java™ Virtual Machine Specification。\n\nOracle America, Inc. 及其关联公司拥有版权,并允许有限度的使用许可。用户可以免费、非独占、不可转让地在全球范围内查看、下载、使用和复制该规范,仅限于内部评估目的,包括但不限于开发在 JVM 实现上运行的应用程序(这些应用程序自身不实现规范的任何部分),与第三方讨论规范,以及在讨论规范时在口头或书面通信中摘录规范的简短片段。" Java虚拟机(JVM)是Java编程语言的核心组成部分,它是一种抽象计算机,负责执行Java字节码。在Java SE 7中,JVM 规范涵盖了以下几个关键知识点: 1. 类加载器体系:JVM 使用类加载器将类文件加载到内存中。类加载器分为启动类加载器、扩展类加载器和应用程序类加载器,以及用户自定义的类加载器。类加载遵循“双亲委派模型”,保证了类的唯一性。 2. 类文件结构:每个Java类都以字节码的形式存储在`.class`文件中。字节码由各种操作码组成,每个操作码对应一个或多个操作。 3. 字符集与编码:Java支持Unicode字符集,使用UTF-8编码处理源代码和字符串。 4. 常量池:每个类都有一个常量池,存储了类中的常量、符号引用等信息。 5. 运行时数据区:JVM内存分为堆、方法区、栈、本地方法栈和程序计数器五个区域。其中,堆是所有线程共享的内存区域,用于对象实例的存储;栈则按需创建,每个线程都有自己的栈,用于方法调用和局部变量。 6. 操作数栈与局部变量表:在每个栈帧中,有操作数栈和局部变量表,用于计算和存储方法调用期间的中间结果和局部变量。 7. 分配与垃圾收集:Java使用自动垃圾收集机制,通过可达性分析确定不再使用的对象并回收其内存。Java SE 7 中的垃圾收集器包括串行、并行、并发标记扫描和G1等。 8. 类和接口:Java支持单继承的类和多继承的接口,以及接口间的默认方法和静态方法。 9. 多线程:Java通过Thread类提供了多线程支持,线程间可以通过同步机制(如synchronized关键字、wait/notify机制)来协调执行。 10. 异常处理:Java的异常处理使用try-catch-finally结构,可以捕获和处理运行时错误。 11. 动态链接:JVM允许类在运行时动态链接到其他类的方法和字段。 12. 安全管理:JVM提供了一套安全管理框架,确保代码的执行不会破坏系统的安全策略。 13. 虚拟机的启动和停止:JVM通过`java`命令启动,可以接收一系列的命令行参数来调整其行为,通过`System.exit()`方法或外部因素(如操作系统信号)终止。 了解这些知识点,开发者能够更好地理解和优化Java应用程序的性能,同时也能深入理解JVM在运行Java程序时的各种机制。

E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.hjschoolhelper210301201_1, PID: 13135 java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference at com.example.hjschoolhelper210301201_1.ClubinfoAdpter.getView(ClubinfoAdpter.java:44) at android.widget.AbsListView.obtainView(AbsListView.java:2458) at android.widget.ListView.makeAndAddView(ListView.java:2067) at android.widget.ListView.fillDown(ListView.java:793) at android.widget.ListView.fillFromTop(ListView.java:855) at android.widget.ListView.layoutChildren(ListView.java:1838) at android.widget.AbsListView.onLayout(AbsListView.java:2255) at android.view.View.layout(View.java:23693) at android.view.ViewGroup.layout(ViewGroup.java:6413) at androidx.constraintlayout.widget.ConstraintLayout.onLayout(ConstraintLayout.java:1855) at android.view.View.layout(View.java:23693) at android.view.ViewGroup.layout(ViewGroup.java:6413) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332) at android.widget.FrameLayout.onLayout(FrameLayout.java:270) at android.view.View.layout(View.java:23693) at android.view.ViewGroup.layout(ViewGroup.java:6413) at androidx.appcompat.widget.ActionBarOverlayLayout.onLayout(ActionBarOverlayLayout.java:536) at android.view.View.layout(View.java:23693) at android.view.ViewGroup.layout(ViewGroup.java:6413) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332) at android.widget.FrameLayout.onLayout(FrameLayout.java:270) at android.view.View.layout(View.java:23693) at android.view.ViewGroup.layout(ViewGroup.java:6413) at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1891) at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1729) at android.widget.LinearLayout.onLayout(LinearLayout.java:1638) at android.view.View.layout(View.java:23693) at android.view.ViewGroup.layout(ViewGroup.java:6413) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332) at android.widget.FrameLayout.onLayout(FrameLayout.java:270) at com.android.internal.policy.DecorView.onLayout(DecorView.java:799) at android.view.View.layout(View.java:23693) at android.view.ViewGroup.layout(ViewGroup.java:6413) at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:3999) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:3372) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2328) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:9087) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1231) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1239) at android.view.Choreographer.doCallbacks(Choreographer.java:899) at android.view.Choreographer.doFrame(Choreographer.java:832) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1214) at android.os.Handler.handleCallback(Handler.java:942) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loopOnce(Looper.java:201) at android.os.Looper.loop(Looper.java:288) at android.app.ActivityThread.main(ActivityThread.java:7872) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)

2023-05-17 上传

com.bes.enterprise.appserv.deployment.exception.StartupFailedException: Exception occurred while starting the application. at com.bes.enterprise.appserv.deployment.manager.AppDeployManager$2.run(AppDeployManager.java:253) at com.bes.enterprise.appserv.deployment.manager.AppDeployManager.applyDeploymentContext(AppDeployManager.java:297) at com.bes.enterprise.appserv.deployment.manager.AppDeployManager.doLoad(AppDeployManager.java:245) at com.bes.enterprise.appserv.deployment.manager.ApplicationLifecycle.load(ApplicationLifecycle.java:77) at com.bes.enterprise.appserv.deployment.AppDeployer.load(AppDeployer.java:264) at com.bes.enterprise.appserv.deployment.handler.EnableApplicationHandler.doLoad(EnableApplicationHandler.java:133) at com.bes.enterprise.appserv.deployment.handler.EnableApplicationHandler.load(EnableApplicationHandler.java:71) at com.bes.enterprise.appserv.deployment.handler.EnableApplicationHandler.doApplicationProcess(EnableApplicationHandler.java:54) at com.bes.enterprise.appserv.deployment.handler.AbstractApplicationHandler$1.call(AbstractApplicationHandler.java:69) at com.bes.enterprise.appserv.deployment.handler.AbstractApplicationHandler$1.call(AbstractApplicationHandler.java:66) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:750) at com.bes.enterprise.appserv.deployment.handler.AbstractApplicationHandler$TerminableThread.run(AbstractApplicationHandler.java:177) Caused by: com.bes.enterprise.ejb.BESException: Creating application failed: /besweb/webapp/prpall: ContainerBase.addChild: start: com.bes.enterprise.webtier.LifecycleException: Failed to start component [WebEngine[com.bes.appserv].VirtualHost[server].DefaultContext[/prpall]] at com.bes.enterprise.ejb.assembler.classic.assemblercontext.ApplicationDeployer.doCreateApplication(ApplicationDeployer.java:458) at com.bes.enterprise.ejb.assembler.classic.assemblercontext.ApplicationDeployer.createApplication(ApplicationDeployer.java:342) at com.bes.enterprise.ejb.assembler.classic.assemblercontext.ApplicationDeployer.createApplication(ApplicationDeployer.java:331) at com.bes.enterprise.ejb.assembler.classic.Assembler.createApplication(Assembler.java:258) at com.bes.enterprise.appserv.deployment.manager.AppDeployManager$2.run(AppDeployManager.java:251) ... 14 more Caused by: java.lang.IllegalStateException: ContainerBase.addChild: start: com.bes.enterprise.webtier.LifecycleException: Failed to start component [WebEngine[com.bes.appserv].VirtualHost[server].DefaultContext[/prpall]] at com.bes.enterprise.webtier.core.ContainerBase.addChildInternal(ContainerBase.java:745) at com.bes.enterprise.webtier.core.ContainerBase.addChild(ContainerBase.java:717) at com.bes.enterprise.webtier.core.DefaultHost.addChild(DefaultHost.java:711) at com.bes.enterprise.webext.BESWebAppBuilder.deployWebApps(BESWebAppBuilder.java:511) at com.bes.enterprise.ejb.assembler.classic.assemblercontext.ApplicationDeployer.deployWebApps(ApplicationDeployer.java:1499) at com.bes.enterprise.ejb.assembler.classic.assemblercontext.ApplicationDeployer.doCreateApplication(ApplicationDeployer.java:437) ... 18 more

2023-07-25 上传