Java 语言语法
1、Java 语言环境搭建
JVM(Java Virtual Machine ):Java 虚拟机,简称 JVM,是运行所有 Java 程序的假想计算机,是 Java 程序的运行环境,是Java 最具吸引力的特性之一。我们编写的 Java 代码,都运行在 JVM 之上。
跨平台:任何软件的运行,都必须要运行在操作系统之上,而我们用 Java 编写的软件可以运行在任何的操作系统上,这个特性称为 Java 语言的跨平台特性。该特性是由 JVM 实现的,我们编写的程序运行在 JVM 上,而 JVM 运行在操作系统上。
Java 是跨平台的,但 JVM 是不跨平台的。
Java的虚拟机本身不具备跨平台功能的,每个操作系统下都有不同版本的虚拟机。
1.1、JRE 和 JDK
JRE (Java Runtime Environment) :是 Java 程序的运行时环境,包含 JVM 和运行时所需要的核心类库 。
JDK (Java Development Kit):是 Java 程序开发工具包,包含 JRE 和开发人员使用的工具。
我们想要运行一个已有的 Java 程序,那么只需安装 JRE 即可。
我们想要开发一个全新的 Java 程序,那么必须安装 JDK 。
三者关系:JDK > JRE > JVM
2、入门程序
Java 程序开发三步骤:编写、编译、运行。
2.1、入门程序说明
编译和运行是两回事
编译:是指将我们编写的 Java 源文件翻译成 JVM 认识的 class 文件,在这个过程中, javac 编译器会检查我们所写的程序是否有错误,有错误就会提示出来,如果没有错误就会编译成功。
运行:是指将 class 文件交给 JVM 去运行,此时 JVM 就会去执行我们编写的程序了。
关于main方法
main 方法:称为主方法。写法是固定格式不可以更改。main 方法是程序的入口点或起始点,无论我们编写多少程序,JVM在运行的时候,都会从 main 方法这里开始执行。
2.2、添加注释
Java 中有单行注释和多行注释
单行注释以 换行结束
多行注释
2.3、标识符
标识符:是指在程序中,我们自己定义内容。比如类的名字、方法的名字和变量的名字等等,都是标识符。
命名规则:
标识符可以包含 、 、 和 。
标识符不能以数字开头。
标识符不能是关键字。
命名规范:
类名规范:首字母大写,后面每个单词首字母大写(大驼峰式)。
方法名规范:首字母小写,后面每个单词首字母大写(小驼峰式)。
变量名规范:全部小写。
3、数据类型
数据类型分类
Java 的数据类型分为两大类:
基本数据类型:包括 、 、 、 。
引用数据类型:包括 、 、 、。
3.1、基本数据类型
四类八种基本数据类型:
Java 中的默认类型:整数类型是 、浮点类型是 。
3.2、变量的定义
格式
long 类型:建议数据后加 L 表示。
float 类型:建议数据后加 F 表示。
注意:
变量名称:在同一个大括号范围内,变量的名字不可以相同。
变量赋值:定义的变量,不赋值不能使用。
4、数据类型转换
Java 程序中要求参与的计算的数据,必须要保证数据类型的一致性,如果数据类型不一致将发生类型的转换。
4.1、自动转换
自动转换:将取值范围小的类型自动提升为取值范围大的类型 。
转换规格:
4.2、强制转换
强制转换:将取值范围大的类型强制转换成取值范围小的类型 。
转换格式:
注意:
浮点转成整数,直接取消小数点,可能造成数据损失精度。
int 强制转成 short 砍掉 2 个字节,可能造成数据丢失。
5、IDEA
5.1、IDEA 项目结构
我们来看一下项目文件夹:
目录结构:
.idea 目录和 new.iml 和我们开发无关,是 IDEA 工具自己使用的;
out 目录是存储编译后的 .class 文件;
src 目录是存储我们编写的 .java 源文件。
5.2、IDEA 常用快捷键
6、方法
6.1、方法的格式
6.2、定义方法的两个明确
明确返回值类型;
明确参数列表。
6.3、方法重载
方法重载:指在同一个类中,允许存在一个以上的同名方法,只要它们的参数列表不同即可,与修饰符和返回值类型无关。
参数列表:个数不同,数据类型不同,顺序不同。
重载方法调用:JVM 通过方法的参数列表,调用不同的方法。
7、数组
7.1、数组的概念
数组概念:数组就是存储数据长度固定的容器,保证多个数据的数据类型要一致。
7.2、数组的定义
方式一:
格式
数组存储的数据类型:创建的数组容器可以存储什么数据类型。
[] : 表示数组。
数组名字:为定义的数组起个变量名,满足标识符规范,可以使用名字操作数组。
new:关键字,创建数组使用的关键字。
数组存储的数据类型:创建的数组容器可以存储什么数据类型。
[长度]:数组的长度,表示数组容器中可以存储多少个元素。
注意:数组有定长特性,长度一旦指定,不可更改。
格式详解
方式二:
格式
方式三:
格式:
7.3、数组存储原理内存图
7.3.1、JVM 的内存划分
为了提高运算效率,就对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据方式和内存管理方式。
JVM 的内存划分:
7.3.2、数组在内存中的存储
一个数组内存图:
以上方法执行,输出的结果是 [I@5f150435,这个是什么呢?是数组在内存中的地址。new 出来的内容,都是在堆内存中存储的,而方法中的变量 arr 保存的是数组的地址。
两个数组内存图:
两个变量指向一个数组:
7.4、数组的遍历
7.5、数组反转
双指针最简单:
7.6、数组作为方法参数和返回值
7.6.1、数组作为方法参数
以前的方法中我们学习了方法的参数和返回值,但是使用的都是基本数据类型。那么作为引用类型的数组能否作为方法的参数进行传递呢,当然是可以的。
数组作为方法参数传递,传递的参数是数组内存的地址。
7.6.2、数组作为方法返回值
数组作为方法的返回值,返回的是数组的内存地址
7.6.3、引用传递和参数传递的区别
方法的参数为基本类型时,传递的是数据值。方法的参数为引用类型时,传递的是地址值。
------------END-----------
领取专属 10元无门槛券
私享最新 技术干货