发表时间:2022-03-26来源:网络
Java 是跨平台的,但 JVM 是不跨平台的。
Java的虚拟机本身不具备跨平台功能的,每个操作系统下都有不同版本的虚拟机。
我们想要运行一个已有的 Java 程序,那么只需安装 JRE 即可。
我们想要开发一个全新的 Java 程序,那么必须安装 JDK 。

三者关系: JDK > JRE > JVM
Java 程序开发三步骤:编写、编译、运行。

编译和运行是两回事
编译:是指将我们编写的 Java 源文件翻译成 JVM 认识的 class 文件,在这个过程中, javac 编译器会检查我们所写的程序是否有错误,有错误就会提示出来,如果没有错误就会编译成功。运行:是指将 class 文件交给 JVM 去运行,此时 JVM 就会去执行我们编写的程序了。关于main方法
main 方法:称为主方法。写法是固定格式不可以更改。main 方法是程序的入口点或起始点,无论我们编写多少程序,JVM在运行的时候,都会从 main 方法这里开始执行。数据类型分类
Java 的数据类型分为两大类:
基本数据类型:包括 整数 、 浮点数 、 字符 、 布尔 。引用数据类型:包括 类 、 数组 、 接口 、字符串。四类八种基本数据类型:
数据类型关键字内存占用取值范围字节型byte1个字节-128~127短整型short2个字节-32768~32767整型int(默认)4个字节-231次方~2的31次方-1长整型long8个字节-2的63次方~2的63次方-1单精度浮点数float4个字节1.4013E-45~3.4028E+38双精度浮点数double(默认)8个字节4.9E-324~1.7977E+308字符型char2个字节0-65535布尔类型boolean1个字节true,falseJava 中的默认类型:整数类型是 int 、浮点类型是 double 。
格式
数据类型 变量名 = 数据值;long 类型:建议数据后加 L 表示。
float 类型:建议数据后加 F 表示。
注意:
变量名称:在同一个大括号范围内,变量的名字不可以相同。
变量赋值:定义的变量,不赋值不能使用。
Java 程序中要求参与的计算的数据,必须要保证数据类型的一致性,如果数据类型不一致将发生类型的转换。
转换规格:
byte、short、char‐‐>int‐‐>long‐‐>float‐‐>double转换格式:
数据类型 变量名 = (数据类型)被转数据值;注意:
浮点转成整数,直接取消小数点,可能造成数据损失精度。int 强制转成 short 砍掉 2 个字节,可能造成数据丢失。
我们来看一下项目文件夹:

目录结构:
.idea 目录和 new.iml 和我们开发无关,是 IDEA 工具自己使用的;out 目录是存储编译后的 .class 文件;src 目录是存储我们编写的 .java 源文件。方法重载:指在同一个类中,允许存在一个以上的同名方法,只要它们的参数列表不同即可,与修饰符和返回值类型无关。
参数列表:个数不同,数据类型不同,顺序不同。重载方法调用:JVM 通过方法的参数列表,调用不同的方法。方式一:
格式
数组存储的数据类型[] 数组名字 = new 数组存储的数据类型[长度]; 格式详解 数组存储的数据类型: 创建的数组容器可以存储什么数据类型。[] : 表示数组。数组名字:为定义的数组起个变量名,满足标识符规范,可以使用名字操作数组。new:关键字,创建数组使用的关键字。数组存储的数据类型: 创建的数组容器可以存储什么数据类型。[长度]:数组的长度,表示数组容器中可以存储多少个元素。注意:数组有定长特性,长度一旦指定,不可更改。方式二:
格式
数据类型[] 数组名 = new 数据类型[]{元素1,元素2,元素3...};方式三:
格式:
数据类型[] 数组名 = {元素1,元素2,元素3...};为了提高运算效率,就对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据方式和内存管理方式。
JVM 的内存划分:
区域名称作用寄存器给 CPU 使用,和我们开发无关。本地方法栈JVM 在使用操作系统功能的时候使用,和我们开发无关。方法区存储可以运行的 class 文件。堆内存存储对象或者数组,new 来创建的,都存储在堆内存。方法栈方法运行时使用的内存,比如 main 方法运行,进入方法栈中执行。一个数组内存图:
public static void main(String[] args) { int[] arr = new int[3]; System.out.println(arr); //[I@50cbc42f }以上方法执行,输出的结果是 [I@5f150435,这个是什么呢?是数组在内存中的地址。new 出来的内容,都是在堆内存中存储的,而方法中的变量 arr 保存的是数组的地址。

两个数组内存图:
public static void main(String[] args) { int[] a1 = new int[3]; int[] a2 = new int[4]; System.out.println(a1); //[I@50cbc42f System.out.println(a2); //[I@75412c2f }
两个变量指向一个数组:
public static void main(String[] args) { // 定义数组,存储3个元素 int[] arr = new int[3]; //数组索引进行赋值 arr[0] = 5; arr[1] = 6; arr[2] = 7; System.out.println(arr[1]); //6 //定义数组变量arr2,将arr的地址赋值给arr2 int[] arr2 = arr; arr2[1] = 9; System.out.println(arr); //[I@50cbc42f System.out.println(arr2); //[I@50cbc42f System.out.println(arr[1]); //9 }
以前的方法中我们学习了方法的参数和返回值,但是使用的都是基本数据类型。那么作为引用类型的数组能否作为方法的参数进行传递呢,当然是可以的。
数组作为方法参数传递,传递的参数是数组内存的地址。方法的参数为基本类型时,传递的是数据值。方法的参数为引用类型时,传递的是地址值。
皓盘云建最新版下载v9.0 安卓版
53.38MB |商务办公
ris云客移动销售系统最新版下载v1.1.25 安卓手机版
42.71M |商务办公
粤语翻译帮app下载v1.1.1 安卓版
60.01MB |生活服务
人生笔记app官方版下载v1.19.4 安卓版
125.88MB |系统工具
萝卜笔记app下载v1.1.6 安卓版
46.29MB |生活服务
贯联商户端app下载v6.1.8 安卓版
12.54MB |商务办公
jotmo笔记app下载v2.30.0 安卓版
50.06MB |系统工具
鑫钜出行共享汽车app下载v1.5.2
44.7M |生活服务
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-02-15
2022-02-14