java语言基础零:jvm/jre/jdk、javac、基本数据类型、方法重载、数组与jvm内存划分

目录

一、JVM、JRE 和 JDK

  • JVM(Java Virtual Machine ):Java虚拟机,简称JVM,是运行所有Java程序的假想计算机,是Java程序的运行环境,是Java 最具吸引力的特性之一。我们编写的Java代码,都运行在 JVM 之上。
  • 跨平台:任何软件的运行,都必须要运行在操作系统之上,而我们用Java编写的软件可以运行在任何的操作系 统上,这个特性称为Java语言的跨平台特性。该特性是由JVM实现的,我们编写的程序运行在JVM上,而JVM 运行在操作系统上。

    在这里插入图片描述

  • JRE (Java Runtime Environment) :是Java程序的运行时环境,包含 JVM 和运行时所需要的 核心类库 。(运行一个已有的Java程序)
  • JDK (Java Development Kit):是Java程序开发工具包,包含 JRE 和开发人员使用的工具。
    我们想要开发一个全新的Java程序,那么必须安装 JDK 。

    在这里插入图片描述

    小贴士: 三者关系: JDK > JRE > JVM

二、java程序编译过程

一个java程序

public class HelloWorld { 
	public static void main(String[] args) { 
		System.out.println("Hello World!"); 
	} 
}

注意:类名与文件名相同

2.1 编译Java源文件

  • Java源文件的编译工具 javac.exe ,在JDK安装目录的bin目录下。但是由于配置了环境变量,可以再任意目 录下使用。
    命令:javac Java源文件名.后缀名
  • 编译成功后,命令行没有任何提示。打开源文件所在目录,发现产生了一个新的文件文件.class ,该文件就是编译后的文件,是Java的可运行文件,称为字节码文件,有了字节码文件,就可以运行程序了。

2.2 运行Java程序

命令:java 类名字

2.3 编译和运行是两回事

  • 编译:是指将我们编写的Java源文件翻译成JVM认识的class文件在这个过程中, javac 编译器会检查我们所写的程序是否有错误,有错误就会提示出来,如果没有错误就会编译成功。
  • 运行:是指将 class文件 交给JVM去运行,此时JVM就会去执行我们编写的程序了。

三、基本数据类型

3.1 常量

' ':字符常量内部有且只能有一个字符,不能为空

3.2 变量

  • 整形Integer:byte/short/int(认)/long,分别占用1/2/4/8个字节,
    注意:相比于c语言,多一个byte,少一个long long
  • 浮点型:float/double(认),分别占用/4/8个字节,
  • 字符型:char,占用2个字节,注意c语言中占用1个字节
  • 布尔型:boolean,占用1个字节

3.3 数据类型转换

  • 自动转换:将 取值范围小的类型 自动提升为 取值范围大的类型
    一个 int 类型变量和一个 byte 类型变量进行加法运算, 结果会是什么数据类型?
  • 强制转换
    int i = 1.5会发生什么?产生编译失败,肯定无法赋值。

四、IDEA快捷键

创建好项目后再src中导入包,在包里面创建java文件

在这里插入图片描述

在IDEA工具中, Ctrl+空格 的快捷键,可以帮助我们补全代码,但是这个快捷键和Windows中的输入法切换快捷 键冲突,需要修改IDEA中的快捷键。
File->Settings->keymap->Main menu->code->Completion->Basic

在这里插入图片描述

五、方法方法重载

5.1 方法与成员方法

普通方法public static 方法(数据类型 参数)
成员方法public 方法(数据类型 参数)

5.2 方法重载

指在同一个类中,允许存在一个以上的同名方法,只要它们的参数列表不同即可,与修饰符和返回值类型无关

六、引用类型

6.1 数组

数组就是存储数据长度固定的容器,保证多个数据的数据类型要一致

  • 三种创建方式:
    动态创建:数据类型[] 数组名字 = new 数据类型[长度];长度一旦指定,不可更改
    静态创建:数据类型[] 数组名字 = new 数据类型[]{元素1,元素2,元素3...};
    静态创建的省略写法:数据类型[] 数组名 = {元素1,元素2,元素3...};

6.2 Java虚拟机的内存划分

在这里插入图片描述

6.3 数组内存图

在这里插入图片描述

相关文章

jinfo 命令可以用来查看 Java 进程运行的 JVM 参数,命令如下...
原文链接:https://www.cnblogs.com/niejunlei/p/5987611.ht...
java 语言, 开发者不能直接控制程序运行内存, 对象的创建都是...
jvm
1.jvm的简单抽象模型:  2.类加载机制     双亲委派模...
堆外内存JVM启动时分配的内存,称为堆内存,与之相对的,在代...
1.springboot和tomcat2.springcloud的请求如何通过网关鉴权?...