- 在Java中,main所在的类的名字必须要与文件名一致。
- 在Java中,没有全局变量的说法,所有方法以及变量必须要定义在类中。
- 常量即程序运行期间一直不变的量。
- 在Java中,数据类型主要分为两类:基本数据类型(也叫内置数据类型)和引用数据类型。
- 基本数据类型分为四类八种,如下所示
- 关于Java基础数据类型值得注意的点:
(1)整形和浮点型都是有符号的; (2)整形默认为int,浮点型默认为double; (3)在任何系统下,byte都占1个字节、short都占2个字节、int都占4个字节、long都占8个字节、double都占8个字节; (4)在 Java 中float占4个字节,由于表示的数据精度范围较小, 一般在工程上用到浮点数都优先考虑 double; (5)计算机中字符本质是整数,在C语言中用ASCII表示字符、在Java中则用Unicode表示字符,因此在Java中char占2个字节-----可表示的字符种类更多,包括中文; (关于Unicode更多详情指路大佬这边-----https://zhuanlan.zhihu.com/p/35172335) (6)boolean类型并没有明确的规定内存占用字节个数; (更多比较严谨的说明指路大佬这边-----https://blog.csdn.net/amoscn/article/details/97377833) (7)浮点数与整数在内存中的储存方式不同,所以浮点型不能单纯的使用2^n的形式来计算;又因为其内存布局遵守IEEE 754标准(和C语言一致),用有限的内存空间表示可能无限的小数----导致存在一定的精度误差,因此浮点数是近似值而非精确值; (4)float、long类型书写规范:
下面是不注意就容易写成这样的错误形式
long a=2^31;
float b=3.14;
在上面情况中,由于整形默认为int类型,long长整型赋值一
个超出int范围的值是会编译不通过的;由于浮点型默认
double类型,float与double不兼容,所以也会编译不通过。
下面是正确格式
long a=2^31L;
float b=3.14f;
- 在Java中,当整型数字(字面值常量)给整型变量赋值时,编译器会自动检测该数据是否超过该变所对应的数据类型(所以就算一开始默认成int类型对byte、short类型也没有影响);但是当使用变量来赋值的时候,编译器就不会去检测了。
示例代码如下:
int a=100;
short s=200;
byte b=50;
b=100;
b=a;
- 类型转换: Java是一种强类型编程语言,当不同类型之间的变量相互赋值的时候,会有较为严格的检验;Java中的类型转换主要分为两种:自动类型转换(隐式)和强制类型转换(显式)
- 隐式类型转换:在编译期间,编译器自动进行转换;特点为将数据范围小的类型自动转换成数据范围大的类型。
- 显式类型转换:编译器不会进行自动转换,需要手动进行转换;特点为将数据范围大的类型转换为小的类型时会报错,需要手动进行转换。
- 关于类型转换需要注意的点:
(1)如果把范围大的类型赋值给范围小的,需要强制类型转换,但是可能会发生精度丢失; (2)强制类型转换不一定能成功,不相干的类型不能互相转换; (3)将一个字面值常量进行赋值的时候,Java会自动针对数字范围进行检查; (4)不同数字类型的变量之间赋值,表示范围更小的类型能隐式转换成范围更大的类型。 - 类型提升:
- (1)不同类型的数据之间互相运算时,数据类型小的会被提升到数据类型大的。
示例代码如下:
int a=10;
int b=20;
int c=a+b;
long d=a+b;
- (2)对于byte、short类型,比4个字节小会先提升成4个字节的int类型,再进行运算。
原因:由于计算机的CPU通常是按照4个字节为单位从内存中读写数据,为了让硬件方面操作更方便,所以会让低于4个字节的byte、short类型先提升再运算。
示例代码如下:
byte a=10;
byte b=20;
byte c=a+b;
byte c=(byte)(a+b);
- 字符串类型: 在Java中使用String类定义字符串类型,在有些情况下需要将字符串和整型数字之间进行转换。
示例代码如下:
int num=10;
String str1=num+"";
String str2=String.valueOf(num);
String str="100";
int num=Integer.parseInt(str);
- 引申:关于字符集、字符编码。字符集就是字符的集合;字符编码就是按照一定规则对不同的字符进行存储,例如UTF-8、GB2312、GBKB(关于字符集、字符编码更多详情指路大佬这边------https://www.shangmayuan.com/a/a6a95d9f8c9c402f882a13d6.html)
|