Java入门
JDK && JRE && JVM
JVM(Java Virtual Machine ):Java虚拟机,简称JVM,是运行所有Java程序的假想计算机,是Java程序的运行环境,是Java 最具吸引力的特性之一。我们编写的Java代码,都运行在 JVM 之上。
JRE (Java Runtime Environment) :是Java程序的运行时环境,包含 JVM 和运行时所需要的 核心类库 。
JDK (Java Development Kit):是Java程序开发工具包,包含 JRE 和开发人员使用的工具。
安装时注意配置环境变量Path路径
分为
- 用户变量:对当前用户生效
- 系统变量:对系统生效
JAVA_HOME
在DOS窗口中输入java -version进行检查当前版本
Java自带命令:
javac:编译.Java文件
Javap:反编译.class文件
Java:运行.class文件,将文件交给JVM去执行
标识符
命名规则:
- 标识符可以包含英文字母26个(区分大小写)、0-9数字、$(美元符号)和_(下划线)
- 标识符不能以数字开头
- 标识符不能是关键字
命名规范:
- 类名规则:首字母大写,后面每个单词首字母大写(大驼峰式)
- 方法名规范:首字母小写,后面每一个单词首字母大写(小驼峰式)
- 变量名规则:全部小写
数据类型
- 基本数据类型:包括 整数 、 浮点数 、 字符 、 布尔
- 引用数据类型:包括 类 、 数组 、 接口
基本数据类型
数据类型转换
- 自动转换
将取值范围小的类型自动提升为取值范围大的类型
转换规则:
byte、short、char-->int-->long-->float-->double - 强制转换
数据类型 变量名 = (数据类型)被转数据值
强制类型转换可能会发生数据丢失和溢出的情况
常量&&变量
成员变量定义时JVM提供默认的 初始值
方法变量需要先初始化再使用
常量的值在编译的时候就已经确定,不会发生变化
变量的值JVM无法确定,运算的时候可能会导致发生自动类型的转换
ASCII
运算符
“+”符号的多态:
- 遇到字符串的时候,表示连接、拼接的含义
- 基本的算数运算
赋值运算符号带有强制转换的特定
Jshell脚本工具
是JDK9的新特性,引入解释型代码的特性
流程控制语句
switch语句中,表达式的数据类型,可以是byte,short,int,char,enum(枚举),JDK7后可以接收字符串。
在switch语句中,如果case的后面不写break,将出现穿透现象,也就是不会在判断下一个case的值,直接向后运行,直到遇到break,或者整体switch结束。
死循环
while(true)
for&&while
区别:
控制语句所控制的那个变量,在for循环结束之后,就不能被访问到了,而while循环结束还可以继续使用,如果你想继续使用,就用while,否则推荐使用for。原因是for循环解释,该变量就从内存中消失,能够提高内存的使用效率
在循环次数已知的时候使用for,循环次数为止的时候使用while
方法
调用方法的三种形式
- 直接调用:直接写方法名调用
- 赋值调用:调用方法,在方法前面定义变量,接收方法的返回值
- 输出语句调用:在输出语句中调用方法,不能使用输出语句调用void类型的方法,因为方法执行最后没有结果,不打印任何内容
方法重载
Overload:
指的是在同一个类中,允许存在一个以上的同名方法,只要他们的参数列表不同即可
参数列表:个数不同,数据类型不同,顺序不同
重载参数列表:JVM通过方法的参数列表,调用不同的方法
方法的参数为基本类型时,传递的是数据值,方法的参数为引用类型时,传递的是地址值
数组
容器的概念
数组的特点:
**1. 数组是一种引用数据类型
- 数组当中的多个数据,类型必须统一
- 数组的长度在程序运行期间不可改变**
两种常见的初始化方式:
- 动态初始化(指定长度)
- 静态初始化(指定内容)
动态初始化(指定长度):在创建数组的时候,直接指定数组当中的数据元素个数。
静态初始化(指定内容):在创建数组的时候,不直接指定数据个数多少,而是直接将具体的数据内容进行指定。
使用动态初始化数组的时候,其中的元素将会自动拥有一个默认值。规则如下:
如果是整数类型,那么默认为0;
如果是浮点类型,那么默认为0.0;
如果是字符类型,那么默认为'\u0000';
如果是布尔类型,那么默认为false;
如果是引用类型,那么默认为null。
- 数组越界异常
- 数组空指针异常