教程来自廖雪峰的官方网站
文章目录
一、Java快速入门
1. Java程序基础
1.1 一个类的结构
public class Hello {
public static void main(String[] args) {
// 向屏幕输出文本:
System.out.println("Hello, world!");
/* 多行注释开始
注释内容
注释结束 */
}
} // class定义结束
一个程序的基本单位就是class
类中包含若干个方法
1.2 数据类型
基本类型
- 整数:byte、short、int、long
- 字符:char
- 浮点数:float、double
- 布尔:boolean
类型 | 字节 |
---|---|
byte | 1 |
short | 2 |
int | 4 |
long | 8 |
char | 2 |
float | 4 |
double | 8 |
- 布尔类型没有规定,但是JVM内部会把布尔表示为4字节整数
- char表示一个字符。Java的char除了可以表示ASCII外,还可以表示一个Unicode字符
- char使用’ ',且只有一个字符,要与" "字符串区分开
引用类型
除了基本类型,其他的。例如字符串String
String s = "hello";
引用类型的变量类似于指针,它内部存储一个地址,指向某个对象在内存的位置
常量
定义变量时,加上final,就变成了常量
final double PI = 3.14;//不可以修改
常量定义时进行初始化,并且不能再次赋值
常量作用:使用变量名来避免魔术数字,例如定义PI,而不是到处写3.14
var关键字
有时候,类型名称太长,写起来麻烦,例如
StringBuilder sb = new StringBuilder();
这时候可以省略类型,使用var
var sb = new StringBuilder();
编译器会根据赋值语句自动推断出变量sb的类型是StringBuilder
因此,使用var定义变量,仅仅是少写了变量类型而已。
1.3 运算
整数
-
两个整数相除只能得到结果的整数部分
-
在Java的计算表达式中,运算优先级从高到低依次是:
() > 单目 > 算术 > 关系 > 赋值
- 运算结果会自动提升;
- 可以强制转型,但超出范围的强制转型会得到错误的结果;
浮点数
-
浮点数运算和整数运算相比,只能进行加减乘除这些数值计算,不能做位运算和移位运算。
-
浮点数常常无法精确表示
浮点数0.1在计算机中就无法精确表示,因为十进制的0.1换算成二进制是一个无限循环小数,很显然,无论使用float还是double,都只能存储一个0.1的近似值。但是,0.5这个浮点数又可以精确地表示。
-
由于浮点数存在运算误差,所以比较两个浮点数是否相等常常会出现错误的结果。正确的比较方法是判断两个浮点数之差的绝对值是否小于一个很小的数
-
如果参与运算的两个数其中一个是整型,那么整型可以自动提升到浮点型
需要特别注意,在一个复杂的四则运算中,两个整数的运算不会出现自动提升的情况。例如:
double d = 1.2 + 24 / 5; // 5.2