目录
第一个JAVA程序的总结和提升
- Java对大小写敏感,如果出现了大小写拼写错误,程序无法运行关键字cass表明Java程序中的全部内容都包含在类中,Java是一种面向对象的语言。
- main方法是Java应用程序的入口方法,它有固定的书写格式:
public static void main(String[] args){...}
- 在Java中,用花括号划分程序的各个部分,任何方法的代码都必须以 "{" 开始,以 "}" 结束,由于编译器忽略空格,所以花括号风格不受限制。
- Java个语句可以跨多行。每个语句必须以分号结束,回车不是语句的结束标志
- 一个源文件可以有多个class
- public只能有一个,如果class前加了public,那么该类名一定要跟文件名保持一致
注释
单行注释://
多行注释/代码中注释:/* */
数据类型
整数变量
整型常数的三种表示形式
十进制整数,如:9-5000
八进制整数,要求以0开头,如:015
十六进制数,要求0x或0X开头,如:0x15
Java语言的整型常数默认为int型,声明long型常量可以后加‘I或‘L‘(建议使用大写,小写容易误认人为数字1)
类型 | 占用存储空间 | 表数范围 |
byte | 1字节 | -128-127 |
short | 2字节 | 约正负3万 |
int(integer) | 4字节 | 约正负21亿 |
long | 8字节 | 正负2^64 |
进制转换
int a = 10;
System.out.println(Integer.toBinaryString(a)); //转二进制
System.out.println(Integer.toOctalString(a)); //转八进制
System.out.println(Integer.toHexString(a)); //转十六进制
浮点型
类型 | 占用存储空间 | 表数范围 |
float | 4字节 | 约正负3.4^38 |
double | 8字节 | 约正负1.8^308 |
- 默认是 double
- 浮点数存在舍入误差,很多数字不能精确表示。如果需要进行不产生舍入误差的精确数字计算,需要使用 BigDecimal类。
- 最好避免比较中使用浮点数。
- float类型又被称作单精度类型,尾数可以精确到7位有效数字,在很多情况下,foat类型的精度很难满足需求。
- double表示这种类型的数值精度是foat类型的两倍,又被称作双精度,绝大部分应用程序都采用 double类型
表示形式:十进制数、科学计数法
浮点数值默认为 double类型。要将其变为foat类型,需要在后面增加F/f.如:3.14F
字符型(2个字节)
- 单引号用来表示字符常量。例如A是一个字符,它与“A”是不同的,A·表示含有一个字符的字符串。
- char类型用来表示在 Unicode编码表中的字符
- Unicode编码被设计用来处理各种语言的所有文字,它占2个字节,可允许有65536个亨符; Java语言中还允许使用转义字符 “\” 来将其后的字符转变为其它的含义, char c2='\n';//代表换行符
- char是在0-65535范围,运算时直接当作整数来运算
- 可以把0-65535之问的整数直接转型为char
与int间的转换:
char c4 = 'a';
int i = c4 + 2;
char c5 = (char)i;
System.out.println(c5);
结果:c
eg:循环打印a-z
for(int j=0;j<26;j++){
char temp = (char)(c4+j);
System.out.print(temp);
}
boolean类型(一位,不是一个字节)
- boolean类型有两个值,true和 false
- boolean类型用来判断逻辑条件,一般用于程序流程控制
类型转换
自动类型转换
容量小的数据类型可以自动转换为容量大的数据类型。
特例:可以将整型常量直接赋值给byte,shot,char等类型变量,而不需要进行强制类型转换,只要不超出其表数范围
eg:
int i = 3;
double d = i;
float f = i;
double d2 = f;
在图中,黑色的实线表示无数据丢失的自动类型转换,而红色的虚线表示在转换时可能会精度的损失。
强制类型转换
强制类型转换,又被称为造型,用于显式的转换—个数值的类型在有可能丢失信息的情况下进行的转换是通过造型来完成的,但可能造成精度降低或溢出。
当将一种类型强制转换成另一种类型,而又超出了目标类型的表示范围,就会被截断成为一个完全不同的值。
eg:
int i2 = 100;
char c3 = (char)i2;
System.out.println(c3);
要强制转换的值不在将要转换的范围之内:输出完全不同的值(无意义的值)。
运算时类型提升问题
int a = 3;
long b = 4;
int c = a + b; //报错,做所有的二元运算符(+——*/%),都会有类型提升的问题
解决方法:
int a = 3;
long b = 4;
int c = (int)(a + b);
基本类型转化时常见错误和问题
1.操作比较大的数时,要留意是否溢出,尤其是整数操作时
当运算结果高出源变量的范围时,将其中一个数强转换为更高类型,保存结果的变量类型也要符合范围
2.不要命名为l的变量
long类型使用大写L不要用小写