本文只做自学笔记使用,之前已有一点点java基础,只记录我不知道的一些知识点,具体以书中内容为准。
一、类型、变量与运算符
1.1 变量、类型与运算符
1、类型分为基本类型Primitive Type和类类型Class Type(也称参考类型 Reference Type)。基础类型与所占字节数如下表,boolean有点特殊,当为数组时,一个元素只占一个字节,如果自己本身是一个变量的话就占四个字节。因为对32位的处理器,四个字节读取方便,效率更高。
整型 | 浮点型 | ||||||
short | int | long | float | double | byte | boolean | char |
2 | 4 | 8 | 4 | 8 | 1 | 数组1/变量4 | 2 |
2、常用格式控制符号
符号 | 说明 |
%% | 在字符串中表示%,因为%%被作为控制符号前置 |
%6.2f | 保留2位小数,占6位字符,如果不满,前面用空格占位 |
%e,%E | 科学计数法表示浮点型变量,e则表示的字符小写,E为大写 |
%o | 8进制 |
%x,%X | 16进制表示,x则小写,X大写 |
%c,%C | 将整型、byte等变量表示成字符变量,c小写,C大写 |
%b,%B | 输出布尔型变量,空/0则为false/FALSE,反正为true/TRUE,b为小写,B为大写 |
%n | 输出平台指定的换行符号 |
1.2 变量
1、字面常数表示
int number1 = 1.23e-1; //科学计数法,即0.123
int number2 = 0b101_101; //二进制,下划线可以让长数字看起来更清楚
int number3 = 0xC; //16进制
int number4 = 014; //8进制
char number5 = '\''; //使用忽略符号表示单引号
2、除上述单引号外,其余常用忽略符号如下:
忽略符号 | 说明 |
\\ | 反斜杠\ |
\" | 双引号 |
\uxxx | 十六进制数指定Unicode字符输出,x表示数字 |
\xxx | 八进制指定Unicode字符输出,x表示数字 |
\b | 倒退一个字符 |
\f | 换页 |
\n | 换行 |
\r | 光标移至行首 |
1.3 类型转换
1、程序默认使用的字面常数为int和double,所以下面的情况都会报错,可以使用强制转换,或者使用注释中的方法修改
long number1 = 2147483648; //int可存储最大为2147483647,改为2147483648L即可
float PI = 3.14; //精度缺失
2、整数不断自增也不会超过最大值,会直接变为负数,因为最大int值为“01111111 11111111 11111111 11111111”,自增操作,计算机通过二进制计算为“11111111 11111111 11111111 11111111”,即-2147483648.