粗粮可以养胃,书籍可以养气,景致可以养目,寂寥可以养心。
1. 什么是程序
程序:计算机执行某些操作或解决某个问题而编写的一系列有序指令集合。
2. Java重要特点
-
Java语言是面向对象的(
oop
)。 -
Java语言是健壮的。Java的强类型机制、异常处理、垃圾的自动收集等是Java程序健壮性的重要保证。
-
Java语言是跨平台性的。(一个编译好的.class文件可以在多个系统下运行,因为有JVM的存在)
-
Java语言是解释型的。编译后的代码,不能被机器直接执行,需要解释器来执行。
3. 什么是JDK
、JRE
-
JDK
(Java Development Kit,Java开发工具包)
JDK
= JRE
+ java
的开发工具(java,javac,javadoc,javap
)
JDK
是提供给Java开发人员使用的,其中包含了Java开发工具,也包含了JRE
。
-
JRE
(Java Runtime Environment, Java运行环境)
JRE
= JVM
+ java
核心类库
如果只是想运行一个开发好的Java
程序,计算机中只需要安装JRE
即可。
了解即可,在实际使用中,一般都是安装一个JDK。
4. Java执行流程
5. Java中的注释类型
-
单行注释 //
-
多行注释 /* */
-
文档注释 /** */
6. 变量的介绍
变量是程序的基本组成单位
变量有三个基本组成要素:类型 + 名称 + 值
变量相当于内存中的一个数据存储空间的表示,可以把变量看做是一个房间的门牌号,通过门牌号我们可以找到房间,而通过变量名可以访问到变量(值)。
简单示例
public static void main(String[] args) {
// 记录人的信息
int age = 19;
double score = 90;
char gender = '男';
String name = "路明非";
// 输出信息
System.out.println("人的信息如下:");
System.out.println(name);
System.out.println(age);
System.out.println(score);
System.out.println(gender);
}
使用注意事项
-
变量表示内存中的一个存储区域(不同的变量、类型不同,占用的空间大小不同。比如:int 4个字节,double 8个字节)
-
该区域有自己的名称(变量名)和类型(数据类型)
-
变量必须先声明,后使用,有顺序
-
该区域的数据/值可以在同一类型范围内不断变化
-
变量在同一个作用域内不能重名
-
变量 = 变量名 + 值 + 数据类型
7. 数据类型
每一种数据都定义了明确的数据类型,在内存中分配了不同大小的内存空间(1byte = 8bit)。
7.1 整数类型
用于存放整数值的。
byte n1 = 10; // 1个字节
short n2 = 10; // 2个字节
int n3 = 10; // 4个字节
long n4 = 10L; // 8个字节,注意后面带了 L
7.2 浮点类型
浮点类型可以表示一个小数。尾数部分可能丢失,造成精度损失(小数都是近似值)
// Java的浮点型常量默认为 double 型,声明 float 型常量,须后加‘f’或‘F'
float num2 = 1.1F;
double num3 = 1.1;
double num4 = 1.1f;
7.3 字符类型
字符类型可以表示单个字符,char 是两个字节(可以存放汉字),多个字符用字符串String。
char c1 = 'a';
char c3 = '李';
char c4 = 97;
// 在 java 中,char 的本质是一个整数,在默认输出时,是 unicode 码对应的字符
char c1 = 97;
System.out.println(c1); // a
字符编码表介绍
- ASCII 码介绍
美国制定的一套字符编码(使用一个字节),对英语字符与二进制位之间的关系,做了统一规定。
ASCII码一共规定了128个字符的编码,只占用了一个字节的后面7位,最前面的1位统一规定为0。
缺点是这套编码不能表示所有字符。
- Unicode编码
将世界上所有的符号都纳入其中,每一个符号都给予一个独一无二的编码,没有乱码问题。
缺点是一个英文字母和一个汉字都占用2个字节,对于存储空间来说是浪费。
- UTF-8编码
一种变长的编码方式。可以使用1-6个字节表示一个符号,根据不同的符号而变化字节长度。
字母占一个字节,汉字占三个字节。
7.4 boolean类型
数据只有 true 和 false,没有null。
public static void main(String[] args) {
//定义一个布尔变量
boolean isPass = true;
if(isPass == true) {
System.out.println("考试通过,恭喜");
} else {
System.out.println("考试没有通过,下次努力");
}
}
8. 基本数据类型转换
8.1 自动类型转换
当Java程序在进行赋值或者运算时,精度小的类型自动转换为精度大的数据类型,这个就是自动类型转换。
数据类型按精度大小排序
boolean
:不是数值类型,可以认为它没有具体的范围byte
:范围从 -128 到 127short
:范围从 -32,768 到 32,767char
:范围从 0 到 65,535(代表16位Unicode字符)int
:范围从 -2,147,483,648 到 2,147,483,647float
:大约范围从 1.4E-45 到 3.4E+38,但精度有限long
:范围从 -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807double
:大约范围从 4.9E-324 到 1.8E+308,但精度同样有限
尽管 char
在数值范围上比 short
大,但在Java的类型系统中,char
并不被认为是一个数值类型,而是一个字符类型,所以通常不直接参与数值类型的转换排序。在数值比较和转换时,通常将 char
转换为 int
(其Unicode值),而不是直接与其他数值类型比较或转换。
有多种类型的数据混合运算时,系统首先自动将所有数据转换成容量最大的那种数据类型,然后再进行计算。
8.2 强制类型转换
自动类型转换的逆过程,将容量大的数据类型转换为容量小的数据类型。使用时要加上强制转换符(),但可能会造成精度降低或者溢出,格外要注意。