1、
一个Java源码只能定义一个public
类型的class,并且class名称和文件名要完全一致;
使用javac
可以将.java
源码编译成.class
字节码;
使用java
可以运行一个已编译的Java程序,参数是类名
Java 11新增的一个功能,它可以直接运行一个单文件源码(java Hello.java
)
Java程序总是从main
方法开始执行
2、
类名要求:
-
- 类名必须以英文字母开头,后接字母,数字和下划线的组合
- 习惯以大写字母开头
方法名要求:
-
- 方法名首字母小写,后接字母,数字和下划线的组合
Eclipse IDE提供了快捷键Ctrl+Shift+F
(macOS是⌘+⇧+F
)帮助我们快速格式化代码的功能
3、
Java提供了两种变量类型:基本类型和引用类型
基本数据类型是CPU可以直接进行运算的类型。Java定义了以下几种基本数据类型:
-
整数类型:byte,short,int,long
-
浮点数类型:float,double
-
字符类型:char
-
布尔类型:boolean
┌───┐
byte │ │1
└───┘
┌───┬───┐
short │ │ │2
└───┴───┘
┌───┬───┬───┬───┐
int │ │ │ │ │4
└───┴───┴───┴───┘
┌───┬───┬───┬───┬───┬───┬───┬───┐
long │ │ │ │ │ │ │ │ │8
└───┴───┴───┴───┴───┴───┴───┴───┘
┌───┬───┬───┬───┐
float │ │ │ │ │4
└───┴───┴───┴───┘
┌───┬───┬───┬───┬───┬───┬───┬───┐
double │ │ │ │ │ │ │ │ │8
└───┴───┴───┴───┴───┴───┴───┴───┘
┌───┬───┐
char │ │ │2
└───┴───┘
- byte:-128 ~ 127
- short: -32768 ~ 32767
- int: -2147483648 ~ 2147483647
- long: -9223372036854775808 ~ 9223372036854775807
定义变量的时候,如果加上final
修饰符,这个变量就变成了常量
理论上存储布尔类型只需要1 bit,但是通常JVM内部会把boolean
表示为4字节整数
4、
在运算过程中,如果参与运算的两个数类型不一致,那么计算结果为较大类型的整型(short
和int
计算,结果总是int
)。
浮点数运算和整数运算相比,只能进行加减乘除这些数值计算,不能做位运算和移位运算。浮点数0.1
在计算机中就无法精确表示,因为十进制的0.1
换算成二进制是一个无限循环小数,很显然,无论使用float
还是double
,都只能存储一个0.1
的近似值。但是,0.5
这个浮点数又可以精确地表示。
浮点数常常无法精确表示,并且浮点数的运算结果可能有误差;
比较两个浮点数通常比较它们的绝对值之差是否小于一个特定值(Math.abs(x - y)
< 0.00001=
相等
);
整型和浮点型运算时,整型会自动提升为浮点型;
可以将浮点型强制转为整型,但超出范围后将始终返回整型的最大值。
要注意浮点数判断相等不能直接用==
运算符;
引用类型判断内容相等要使用equals()
,注意避免NullPointerException
。
5、
switch
的计算结果必须是整型、字符串或枚举类型;
从Java 13开始,switch
语句升级为表达式,不再需要break
,并且允许使用yield
返回值。
6、
对数组排序会直接修改数组本身。
打印多维数组可以使用Arrays.deepToString()
;
7、
命令行参数类型是String[]
数组;
命令行参数由JVM接收用户输入并传给main
方法;
如何解析命令行参数需要由程序自己实现。