《21天学通Java(第7版)》——VC程序员的学习笔记2

第2章 Java编程基础

       这一章节的内容基本上与C是相同的,故只列出几许差异和个人认为需要注意的点。

2.1 语句与表达式

       同VC,C语言的程序员可以略过该节。

2.2 变量和数据类型

       1、有3 种变量:实例变量、类变量和局部变量。实例变量用于定义对象的属性。类变量定义类的属性,适用于类的所有实例。局部变量用于方法定义乃至方法中更小的语句块中。仅当Java 虚拟机执行这些方法或语句块时,它们才被使用,离开方法或块之后,它们将不复存在。(局部变量在失效后将被自动回收,不能再使用,与C不同。例如:

       forint i=0;i<10;i++

       {

              ……

       }

       System.out.println("i = "+i);             //Java,编译出错,变量i找不到符号

       TRACE(_T("i = %d", i);               //VS2008,编译通过,i = 0

       2、良好的习惯是给所有局部变量指定初始值。默认情况下,实例变量和类变量的初始值取决于其数据类型。

              数值变量:0。

              字符变量:"\0"。

              布尔变量:false。

              对象:null。

       3、Java 语言使用Unicode 字符集,有Unicode 字符号的重音字符和其他符号也可用于变量名中。

       4、变量通常被赋予一个有意义的,由多个单词组合而成的名称。为方便辨识,可使用下述通用规则:

              变量名的第一个字母小写;

              变量名中其他单词的第一个字母大写;

              其他字母都小写。

       5、虽然在变量名中可以使用下划线,但除非在如下情况下,否则不应使用它:整个变量名都是大写时,使用下划线将各个单词分开。

       6、虽然在变量名中可以使用美元符号,但在任何情况下都不应这样做。Java 官方文档建议不要使用它,因此程序员都遵循这种约定。

       7、Java 提供了8 种基本数据类型,用于存储整数、浮点数、字符和布尔值。它们通常被称为简单类型(primitive type)。不管在什么操作系统和平台上,这些数据类型的长度和特征都相同,这与其他编程语言的某些数据类型不同。

       8、所有类型都是有符号的,给变量指定哪种类型取决于需要存储的值的范围。所有这些整型变量都不能正确存储超出其取值范围的值,所以在指定类型时一定要小心。(C中变量类型还有无符号型

       9、boolean类型,其取值为true 或false。(C中布尔类型可以是truefalse,也可以是0或非0的数字,java中不能用0或非0

       10、所有这些变量类型名都是小写的,在程序中必须这样使用它们。存在与这些数据类型名称相同,但大小写不同的类,如Boolean 和Double。

       11、类型void, 表示“空”(nothing),用于指出方法不返回任何值。

       12、在Java 中,可以创建各种类型的常量:实例常量、类常量和局部常量。

       13、要声明常量,可在变量声明前加上关键字final,并指定初始值。(C中使用关键字const

       14、常量名都为大写。Java 程序员都这样做,以表明这是常量而不是变量;虽然Java 并未要求常量名必须大写,但最好遵循这种做法。

       15、常量名由多个单词组成时,将整个常量名都大写将导致各个单词难以区分,应使用下划线将各个单词分开。

2.3 注释

       Javadoc 注释以/**打头,*/以结束。这些分界符之间的内容都被视为用于描述类及其方法的官

方文档。Javadoc 注释可被诸如javadoc(JDK 中的一个命令行工具)等实用程序读取。javadoc 使用这种注释可创建一组网页,用于说明Java 类的功能、指出Java 类在继承层次结构中的位置、描述其每个方法。(其他注释方法“//”、“/*....*/”与C相同

2.4 字面量

       除变量外,还可以在Java 语句中使用字面量。字面量可以是任何直接表示一个值的数字、文本或其他信息。(其实就是等号右边的常量值

       1、一个int 类型的整型字面量,可将其赋给byte 或short类型的变量,因为它足够小,在这些整数类型的取值范围内。

       2、位于int 取值范围之外的整型字面量将被视为long 类型。也可以再数字后面加L或l表示该值为long型,如4L。(C中如果字面量大于变量类型的取值范围,将表现为溢出

       3、对于很大的整型字面量,为提高其可读性,可在其中添加下划线。这种下划线的作用与表示千分位的逗号相同,旨在让数字更易读。(C中无此表示法

       4、所有的浮点数字面量都被视为double 类型,而不是float 类型。要将字面量的类型指定为float,可加上字母F(或f)。在浮点数字面量中,可以使用指数表示法,即使用字母e(或E),而指数可以是负数。

       5、二进制字面量以0b 打头,八进制字面量以0 打头,十六迚制字面量以0x打头。(C中没有二进制的规定,八进制和十六进制相同

       6、布尔值true 和false 也是字面量。boolean 变量的取值只能是true 或false。

       7、字符字面量是用单引号括起的单个字符,。Java 使用16 位的Unicode 标准,除ASCII 字符外,还支持其他数以千计的字符。有些字符字面量表示的是非打印字符或不能通过键盘输入的字符。

       8、以下转义字符与C不同,字母d 表示一个数字或十六迚制数字(a~f或A~F)。

转义符

含义

\d

八进制

\xd

十六进制

\ud

Unicode字符

       9、Java 中的字符串是一种对象,而不是一种基本数据类型String。同时,不像C 语言那样,字符串被存储在数组中。字符串字面量是用双引号括起的一系列字符,字符串中可以包含转义字符。(类似于VC中的CString

       10、在支持Unicode 的系统上,Unicode 编码序列\u2122 将生成一个TM符号。

       11、虽然Java 支持对Unicode 字符的传输,但要在程序运行时显示这些字符,计算机也必须支持Unicode。Unicode 提供了一种对字符进行编码的方式,可用于支持该标准的系统。Java 支持任何Unicode 字符的显示,只要该字符能够被主机的某种字体表示出来。

2.5 表达式和运算符

       1、&和&&之间的差别在于对组合表达式所做的工作量。如果使用&,则不管什么情况下,&两边的表达式都将被计算;如果使用&&,则当左边的表达式为false 时,将不计算右边的表达式。因此,&&的效率更高,因为它不做不必要的工作。&优先级高于&&。

       2、||和|之间,||的效率更高,左边为true时就不再计算右边的值。|优先级高于||。

       3、instanceof 运算符返回true 或false 值,这取决于该对象是否属于指定的类或其子类的一个实例。优先级同(++ −− ! ~)。

       4、运算符+拼接多个字符串。如果拼接运算的任何一个部分是String 或String 字面量,则其他所有元素都将被作为字符串进行处理:

              System.out.println(4 + " score and " + 7 + " years ago");

       这将产生文本输出4 score and 7 years ago,就像整数字面量4 和7 是字符串一样。(这点和C不同

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章