package mypackage; //定义包
import java.util.List; //引入类
public class HelloWorld { //定义类
private String world = "World"; //变量
public void say() { //方法
System.out.println("Hello"+world+"!"); //语句
}
public static void main(String args[]) { //入口方法
HelloWorld inst = new HelloWorld(); //定义变量
inst.say(); //调用方法
}
}
/**
*Java类的基本构成:包,引入,类,变量,方法,注释
*2018.5.9
*包(package) 语法格式:package packageName;
*包由一组类和接口组成 命名规则:组织名.公司名.子包名.等等 主要成父子结构
*引入(import) 语法格式:import packageName.className; 引入一个包中的多个类:import packageName.*;
*源程序中用到除java.lang这个包以外的类,都需要用import语句标识
*类(class) 语法规则:class className {
* ...//类代码
* }
*源文件名必须与公共类名完全一致
*一个类通常包含数据与函数两种类型的元素,分别为变量(variable)及成员函数,也称方法(method)
*注释分为3种 单行注释:在注释前面加"//" 多行注释:在注释前加"/*",结束时加"*反斜杠"
*文档注释:格式如本段文字
*/
另:Java编译器为每个类生成一个字节码文件,以下为字节码相关内容:
4字节 | Magic Number | java文件字节码魔数规定为0xCAFEBABE,寓意咖啡宝贝,一杯咖啡予世人 |
2+2字节 | Version | 版本号含主版本号和次版本号,都是各占2个字节 |
2+n字节 | Constant pool | 常量池入口,常量池是Class文件中的资源仓库 |
2字节 | Access Flags | 访问标志信息包括该Class文件是类还是接口,是否被定义成public,是否是abstract,如果是类,是否被声明成final |
2字节 | This Class Name | 类索引用于确定类的全限定名 |
2字节 | Super Class Name | 父类索引 |
2+n字节 | Interfaces | 接口索引 |
2+n字节 | Fields | 字段表集合,字段表用于描述类和接口中声明的变量 |
2+n字节 | Methods | 方法 |
2+n字节 | Attributes |
|
网上详细介绍:一文让你明白Java字节码