《java 核心技术卷 Ι 基础知识(第九版)》学习笔记
第三章 Java的基本程序设计结构
1 第一个应用程序
public class FirstTest{
public static void main(String[] args){
System.out.println("Hello,World!");
}
}
上述代码中,先关键字public称为访问修饰符,用于控制程序的其他部分对这段代码的访问级别,访问权限。
关键字class表明java程序中的全部内容都包含在类中。
关键字class后面紧跟类名。类名的规则:必须以字母开头,后面可以跟字母和数字任意组合,长度没有限制,不能使用关键字和保留字作为类名。
从类名FirstTest看,标准类名命名规范为:类名以大写字母开头,如果由多个单词组成,每个单词的第一个字母大写,其他是小写。
代码的文件名与public类类名相同,并且以.java为扩展名,也就是说上述代码对应的文件名为FirstTest.java。
java编译器对该代码进行编译(javac FirstTest.java),会在同一个目录下生成同名不同扩展名的字节码文件(FirstTest.class),然后命令后输入java FirstTest 程序执行后,控制台会输出Hello,World!
main()方法为程序执行的入口,必须是public static的。
在main方法中,使用了System.out对象并调用了它的println方法。注意,(.)点号用于调用方法成员变量。调用方法:object.method();
方法不管有无参数都需在方法名后面加上括号()。
System.out.println("hello");输出hello后换行。
System.out.print("hello");输出hello后不换行。后面输出紧跟在o字母之后。
2 注释
三种注释
① 单行注释 // 注释内容从//到本行最后
②多行注释 /* */ /* */之间的所有字符会被编译器忽略
③文档注释 /** */ 在/** */之间的所有字符会被编译器忽略,java特有的(用于生成文档);
多行注释和文档注释不能嵌套使用。
3 数据类型
java数据类型分为基本数据类型和引用数据类型。基本数据类型有8种,分别是4种整型、2种浮点型、1种布尔型和一种字符型。
3.1 整型
整型包括四种,从小到大分别是byte、short、int、long。它们表示没有小数部分的数值,允许是负数。
1、byte:byte型(字节型)数据在内存中占用1个字节,表示的存储数据范围为:-128~127。
2、short:short型(短整型)数据在内存中占用2个字节。很少使用,它限制数据的存储为先高字节,后低字节,这样在某些机器中会出错。
3、int:int型(整型)数据在内存中占用4个字节。最常用的整型。它所表示的数据范围足够大,而且适合于32位、64位处理器。但对于大型计算,常会遇到很大的整数,超出int类型所表示的范围,这时要使用long类型。
4、long:long型(长整型)数据在内存中占用8个字节。long型数据末尾要加L或l。
十进制整数,如123,-123,11。
八进制整数,以0开头,如023表示十进制数19,-0111表示十进制数-81。
十六进制整数,以0x或0X开头,如0x123表示十进制数291,-0X12表示十进制数-18。
从java7开始,可以使用二进制数,加上前缀0b,如0b101就是5。
同时,java7开始,可以为数字加下划线,并不影响数值只是为了让人更容易读。如1_000_000表示一百万。
3.2 浮点型
浮点型用于表示没有小数部分的数值。两种浮点型:float(单精度浮点型)和double(双精度浮点型)。
float:4字节,32位。float型数需加上后缀F或f,它运行速度相比double更快,占内存更小,但是当数值非常大或者非常小的时候会变得不精确。精度要求不高的时候可以使用float类型。
double:8字节,64位。没有后缀f或F的浮点型数默认就是double类型,double型数也可以加后缀d或D。它的精度是float类型的两倍,绝大部分应用程序都采用double类型。
3.3 char类型
Java使用Unicode字符集表示字符,Unicode是完全国际化的字符集,可以表示全部人类语言中的字符。Unicode需要16位宽,所以Java中的char类型也使用16 bit表示。 赋值是这样的:char ch1 = 23; char ch2 = 'A';
3.4 boolean类型
boolean(布尔)类型有两个值:false和true,用来判定逻辑条件。不能与整型值不能进行相互转换。
注意:在C和C++中,数值可以代替boolean值。0相当于布尔值false,非0相当于true。java中不可以这样。