jvm的在连接阶段对java类的验证和编译器对源代码的编译有什么区别

问题描述

jvm的在连接阶段对java类的验证和编译器对源代码的编译有什么区别 问题补充:beneo 写道

解决方案

引用具体的话,你可以看看jvm spec,你不愿看的话,就看看http://rednaxelafx.iteye.com/ 的博客,如果还看不懂的话,就去问http://rednaxelafx.iteye.com/大大P.S. 其实该走的路我都告诉你了,你为何不往前踏一步呢?
解决方案二:
引用编译器对源代码的编译有什么区别 java source code -> java class file这里面有一部分优化,主要是把java code转化为class文件,去掉语法糖等等 (其实我说不清楚。。。-_-!!!)引用jvm的在连接阶段对java类的验证class文件被classloader在进行load class几个步骤中的一步,比如版本校验,方法内联等(其实我说不清楚。。。-_-!!!)具体的话,你可以看看jvm spec,你不愿看的话,就看看http://rednaxelafx.iteye.com/ 的博客,如果还看不懂的话,就去问http://rednaxelafx.iteye.com/大大

时间: 2024-08-26 02:08:27

jvm的在连接阶段对java类的验证和编译器对源代码的编译有什么区别的相关文章

从JVM内存管理的角度谈谈JAVA类的静态方法和静态属性

在JVM中,内存分为两个部分,Stack(栈)和Heap(堆),这里,我们从JVM的内存管理原理的角度来认识Stack和Heap,并通过这些原理认清Java中静态方法和静态属性的问题. 一般,JVM的内存分为两部分:Stack和Heap.(stack和heap都是位于RAM中的) stack(栈)是JVM的内存指令区.stack管理很简单,push一定长度字节的数据或者指令,stack指针压栈相应的字节位移:pop一定字节长度数据或者指令,stack指针弹栈.stack的速度很快,管理很简单,并

jvm系列(一):java类的加载机制

java类的加载机制   1.什么是类的加载 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构.类的加载的最终产品是位于堆区中的Class对象,Class对象封装了类在方法区内的数据结构,并且向Java程序员提供了访问方法区内的数据结构的接口. 类加载器并不需要等到某个类被"首次主动使用"时再加载它,JVM规范允许类加载器在预料某个类将要被使用时就预先加载

Java类初始化和实例化中的2个“雷区”_java

在考虑类初始化时,我们都知道进行子类初始化时,如果父类没有初始化要先初始化子类.然而事情并没有一句话这么简单. 首先看看Java中初始化触发的条件: (1)在使用new实例化对象,访问静态数据和方法时,也就是遇到指令:new,getstatic/putstatic和invokestatic时: (2)使用反射对类进行调用时: (3)当初始化一个类时,父类如果没有进行初始化,先触发父类的初始化: (4)执行入口main方法所在的类: (5)JDK1.7动态语言支持中方法句柄所在的类,如果没有初始化

Java 类中类属性和对象属性的初始化顺序

对象 边城狂人 Java 类中类属性 (static 变量) 和对象属性 (非 static 变量) 的初始化顺序可以用如下程序测试: /** * @(#) Test.java * @author fancy */ public class Test { static String a = "string-a"; static String b; String c = "stirng-c"; String d; static { printStatic("

实战php调用java类由java类读数据库完成相关操作(Inber Write)

数据|数据库 1 建立系统ODBC 数据源photo(本次使用的是Oracle 9i,详细配置如有不懂这处再和我联系)2 编译DataBaseConnection.java文件 将其编译文件放入到PHP支持的类文件目录中 package com.inberkong.util;/******************************************************* * Programe File :复件缓冲池DataBaseConnection.java * Creat  

php 调用 java类 常见配置错误

错误 不搞PHP开发的工作很长时间了,最近修改一个原来做的项目要支持调用Java类,开始重操PHP,先解决配置问题再说.不说太多费话.网上的 文章不少,但是都有很多错误的东西在里面,下面我介绍一下我配置全过程与大家分享,如有问题可以虽时联系愿意为你解决. 说明:此文章的正常性只对本文中所提供版本的PHP和JDK有保证,其它版本的未一一试,如有问题及时联系愿与你一起解决相关问题. 安装配置PHP的工作这里就略过(有不会的朋友可以与我联系inber_net@hotmail.com) 测试环境:Win

实战 php调用java类由java类读数据库完成相关操作(Inber Write)

1 建立系统ODBC 数据源photo(本次使用的是Oracle 9i,详细配置如有不懂这处再和我联系)2 编译DataBaseConnection.java文件 将其编译文件放入到PHP支持的类文件目录中 package com.inberkong.util;/******************************************************* * Programe File :复件缓冲池DataBaseConnection.java * Creat    Date

java类继承的语法

继承与Java(以及其他OOP语言)非常紧密地结合在一起.我们早在第1章就为大家引入了继承的概念,并在那章之后到本章之前的各章里不时用到,因为一些特殊的场合要求必须使用继承.除此以外,创建一个类时肯定会进行继承,因为若非如此,会从Java的标准根类Object中继承. 用于合成的语法是非常简单且直观的.但为了进行继承,必须采用一种全然不同的形式.需要继承的时候,我们会说:"这个新类和那个旧类差不多."为了在代码里表面这一观念,需要给出类名.但在类主体的起始花括号之前,需要放置一个关键字

php调用java类由java类读数据库完成相关操作

1 建立系统ODBC 数据源photo(本次使用的是Oracle 9i,详细配置如有不懂这处再和我联系) 2 编译DataBaseConnection.java文件 将其编译文件放入到PHP支持的类文件目录中 package com.inberkong.util; /******************************************************* *Programe File:复件缓冲池DataBaseConnection.java *Creat Date:3/28