JDK、JRE、JVM
JDK>JRE>JVM(>包含)
JRE把原有的jar包打碎成模块,以便于调用,提高加载速度。
JVM在不同平台版本不同,但是JVM能够识别的字节码是相同的。综上两点实现跨平台
类和方法
- 类的定义
在一个源代码文件中可以声明多个class,但是只能有一个class是public的,而且此类的名称一定要与其所在的源代码文件的著文件名完全一致。非public的类在实际开发工作中已经很少用到了。 - 类的声明格式
访问修饰符 class 类名{类主体}
每个类通常要放在属于他的源代码文件中,再写Java程序时通常是要先声明class的,在擦历史上中封装相关的数据与程序逻辑。 - 方法的声明格式
访问修饰符 其他修饰符 方法的返回数据类型 方法名称(形式参数列表){方法体}
形式参数的数量0-n,如果没有形式参数也需要在方法名后加一堆空的圆括号。 - 注释的特点
Java注释的特点:在编译过程中,Java源代码中的所有注释都会被Java编译器忽略。 - 注释的作用
- 提高代码的可读性
- 用于屏蔽程序调试中展示被忽略的代码
输出代码的运行信息:java -verbose 文件名
数据类型
数据类型可以分为两大类
- 基本数据类型
- 比特byte:1字节 -27~27-1
- 短整型short:2字节 -215~215-1
- 整型int:4字节 -231~231-1
- 长整形long:8字节 -263~263-1
- 单精度浮点型float:4字节
- 双精度浮点型double:8字节
- 字符型char:2字节
- 布尔型boolean:一位--取值只有true/false
- 引用数据类型
- 字符串String
- 对象的引用类型---class Pet{} Pet pet
8中基本数据类型不属于对象。
在Java中的数字都是有符号的,char本质上时int类型的子集,范围0~65535
内存结构(栈内存)
- 栈内存在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配。当在一段代码块定义一个变量时,Java就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java会自动释放掉为该变量所分配的内存空间,该内存空间可以立即被另作他用
- 栈内存的特点
栈的优势是,存取速度比堆要快,仅次于寄存器,栈数据可以共享。但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。栈中主要存放一些基本类型的变量(,int, short, long, byte, float, double, boolean, char)和对象句柄。栈有一个很重要的特殊性,就是存在栈中的数据可以共享。
bipush 开辟一个内存空间存储变量值
istore_1 把变量值存储到数组下标为1的位置上。