您的位置:首页 > 职场人生

黑马程序员-Java基础知识预备之Java数据类型和运算符

2013-07-08 15:02 661 查看
-------android培训java培训、期待与您交流!----------

本博文主要内容:
1.代码注释

2.Java关键字

3.基本数据类型

4.运算符

一、注释

1.单行注释://

2.多行注释:开始用"/*",结尾用"*/"。

3.文档注释:程序员在一软件开发完成后,通常会给客户提供一个说明书,而这个说明书实际就是我们看到的跟Java的API文档相像。生成这个API就要求程序员对源码进行文档注释。详细说明如下:

javac 的常用选项有如下几个。

-d<directory>:该选项指定一个路径,用于将生成的API文档放到指定目录下。

-windowtitle<test>:该选项指定一个字符串,用于设置API文档的浏览器窗口标题。

-doctitle<html-code>:该选项指定一个HTML格式的文本,用于指定概述页面的标题。

-header<html-code>:该选项指定一个HTML格式的文本,包含每个页面的页眉。

常用的javadoc标记如下。
@author: 指定Java程序的作者。

@version: 指定源文件的版本。

@deprecated: 不推荐使用的方法。

@param: 方法的参数说明信息。

@return: 方法的返回值说明信息。

@see: "参见",用于指定交叉参考的内容。

@exception: 抛出异常的类型。

@throws: 抛出的异常,和exception同义。

需要指出的是,这标记的使用有位置限制。

类或接口文档注释:@see、@deprecate、@author、@version等。

方法或构造器文档注释:@see、@deprecated、@param、@return、@throws和@exception等。

Field文档注释:@see和@deprecated等。

代码示例如下:

package Demo;
/**
* Description:
* <br/>网站: <a href="http://www.itheima.com">黑马程序员></a>
* <br/>Copyright (C), 2011-2013, Demo
* <br/>This program is protected by copyright laws.
* <br/>Program Name: test
* <br/>Date: 2013
* @author http://1139347837.blog.51cto.com/ * @version 1.0
*/
public class JavadocTagTest//记住这里一定要用public修饰,
//不然会出现:“javadoc: 错误 - 找不到可以文档化的公共或受保护的类。”的错误,而导致不能生成API文档。
{
/**
* 获取打招咱字符的方法
* @param name 该参数指定向谁打招呼
* @return 返回打招呼的字符串
*/
public String hello(String name)
{
return name + ",Hello!";
}
}
因为javadoc工具默认不会提取@author和@version两个标记的信息,如果需要提取这两个标记的信息,则需要在javadoc工具时指定-author和-version两个选项。

格式如下:

javadoc -d myhelp -windowtitle 测试 -doctitle 学习javadoc工具的使用的API文档 -header 我的类 -version -author Test*.java

二、Java关键字
abstractassertbooleanbreakbytecase
catchcharclasscontinuedefaultdo
doubleelseenumextendsfinalfinally
floatforifimplementsimportint
interfaceinstanceoflongnativenewpackage
strictfpsuperswitchsynchronizedthisthrows
throws transienttryvoidvolatilewhile
三、基本数据类型
我们常把Java里的基本数据类型分为4类,如下图所示:



(1)Java 7新增的二进制整数
在某些时候,程序需要直接使用进制整数,一是因为二进制整数更能表达整数在内在中的存在形式,二是有些程序(比如在一些游戏的开发时)使用二进制整数会更便捷。
Java 7新增二进制整数,以0b(不是字母O)或0B开头。部分程序如下:
class BinValueTest
{
public static void main(String[] args)
{
//定义两上8位的二进制整数
int binValue1 = 0b11010110;
byte binValue2 = 0b01010101;
//定义一个32位的二进制整数,最高位为符号位,1表示负数。
int binValue3 = 0B1000_0000_0000_0000_0000_0000_0000_0011;
/*
如上在数值中使用下划线也是Java 7新增的,不管是整形数值,还是浮点型数值,
都可以使用下划线,从而可以方便程序员更直观地分辨数值常量中到底包含多少位。
*/
System.out.println(binValue1);//214
System.out.println(binValue2);//85
System.out.println(binValue3);//-2147483645
}
}
如上代码中,定义32位的二进制整数时,最高位是符号位,1表示负数,而负数在计算机里是以补码形式存在的,因此还需要换算成原码。
补码的计算规则:正数的补码和原码完全相同,负数的补码是其反码加1;反码是对原码按位取反,符号位(最高位)保持不变。 上32位二进制整数binValue3转换成十进制数的过程如下图所示。


正如前面所指出的,一个Java整数常量默认就是int类型,因此使用二进制形式定义整数时,二进制整数默认占32位,其中第32位是符号位;只有在二进制整数后添加l或L后缀,这个二进制整数才默认占64位,其中第64位就是符号位。
示例代码如下:
class BinValueTest2
{
public static void main(String[] args)
{
/*
定义一个8位二进制整数,该数值默认占32位,因此它是一个正数。
只是强制类型转换成byte时产生了溢出,最终导致binValue4变成了-21
*/
byte binValue4 = (byte)0b11101011;
/*
定义一个32位的二进制整数,最高位是符号位。但由于数值后添加了L后缀,
因此该整数实际占64位,注意此时,第32位的1不是符号位。
*/
long binValue5 = 0b1000_0000_0000_0000_0000_0000_0000_0011L;
System.out.println(binValue4);//-21
System.out.println(binValue5);//2147483651
}
}
(2)字符型 字符型通常用于单个的字符,字符常量必须使用单引号括起来,Java语言使用16位的Unicode字符集作为编码方式,而Unicode被设计成支持世界上所有书面语言的字符,包括中文字符,因此Java程序支持各种语言的字符。
字符型常量有如下3种表示形式。
直接通过单个字符来指定字符型常量,例如'A'、'9'和'0'等。
通过转义字符表示特殊字符型常量,例如'\n'、'\t'等。
直接使用Unicode值来表示字符型常量,格式是'\u××××',其中××××代表一个十六进制的整数。
Java语言中常用的转义字符如下表所示。
转 义 字 符说 明Unicode 表示方式
\b退格符\u0008
\n换行符\u000a
\r回车符\u000d
\t制表符\u0009
\"双引号\u0022
\'单引号\u0027
\\反斜线\u005c
(3)还有其它两种:浮点型和布尔型。其中浮点型有两种,分别是float和double。而布尔型只有一个boolean类型,用于表示逻辑上的“真”或“假”。在Java语言中,boolean类型的数值只能是true和false,不能用0或非0来代表。其他基本数据类型的值也不能转换成boolean类型。具体这里便不作介绍。

四、运算符
(1)算术运算符 需要注意以下几个:
++ 自增(前) a = 2; b = ++a; a = 3; b = 3;
++ 自增(后) a = 2; b = a++; a = 3; b = 2;
-- 自减(前) a = 2; b = --a; a = 1; b = 1;
-- 自减(后) a = 2; b = a--; a = 1; b = 2;

(2)逻辑运算符 需要注意以下几点(还有非:!):
^ 异或:就是和 | 有点不一样,当true ^ true = false;即:两边相同结果是false,不相同为true。
& 与 && 的特点:
& : 无论左边是true还是false,右边都运算。 && : 当左边为false时,右边不运算。
| 与 || 的特点:
| : 两边都参与运算。
|| : 当左边为true时,右边才运算。

(3)位运算符
& :按位与。
| :按位或。
~ :按位非。
^ :按位异或。
<<: 左移运算符。
>>: 右移运算符。
最高位补什么由原有数据的最高位值而定。
如果最高位为0,右移后,用0补空位。
如果最高位为1,右移后,用1补空位。
>>>: 无符号右移运算符。
均用0补空位。 &、|、~、^运算过程如下图所示。


对于左移:<< (实际为被移数 × 2的所移次数幂)
对于右移:>> (实际为被移数 ÷ 2的所移次数幂)
运算过程如下图所示。


(4)扩展后的赋值运算符
+=: 对于x += y, 即对应于x = x + y.
-=: 对于x -= y, 即对应于x = x - y.
*=: 对于x *= y, 即对应于x = x * y.
/=: 对于x /= y, 即对应于x = x / y.
%=: 对于x %= y, 即对应于x = x % y.
&=: 对于x &= y, 即对应于x = x & y.
|=: 对于x |= y, 即对应于x = x | y.
^=: 对于x ^= y, 即对应于x = x ^ y.
<<=:对于x <<= y, 即对应于x = x << y.
>>=:对于x >>= y, 即对应于x = x >> y.
>>>=:对于x >>>= y, 即对应于x = x >>> y.
只要能使用这种扩展后的赋值运算符,通常都推荐使用它们。因为这种运算符不仅具有更好的性能,而且程序会更加健壮。下示例为 += 运算符的用法。
class EnhanceArithmeticTest
{
public static void main(String[] args)
{
//定义一个byte类型的变量
byte a  = 5;
//下面语句会产生“可能损失精度”的错误,因为5默认是int类型,a + 5就是int类型。
//把int类型赋给byte类型的变量,所以会出错。
a = a + 5;

//定义一个byte类型的变量
byte b = 5;
//下面语句不会发生错误
b += 5;
}
}


(5)其它一些运算符:比较运算符、三目运算符等等。

-------android培训java培训、期待与您交流!----------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  关键字 注释
相关文章推荐