注释、标识符、关键字
-
Java中的注释有三种
单行注释
多行注释
文档注释
public class HelloWorld { /* 这是第一个Java程序 * 它将输出 Hello World * 这是一个多行注释的示例 */ public static void main(String[] args){ // 这是单行注释的示例 /* 这个也是单行注释的示例 */ System.out.println("Hello World"); } }
-
Java 所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符。
关于 Java 标识符,有以下几点需要注意:
-
所有的标识符都应该以字母(A-Z 或者 a-z),美元符($)、或者下划线(_)开始
-
首字符之后可以是字母(A-Z 或者 a-z),美元符($)、下划线(_)或数字的任何字符组合
-
关键字不能用作标识符
-
标识符是大小写敏感的
-
合法标识符举例:age、$salary、_value、__1_value
-
非法标识符举例:123abc、-salary
-
-
下面列出了 Java 关键字。这些保留字不能用于常量、变量、和任何标识符的名称。
类别 | 关键字 | 说明 |
---|---|---|
访问控制 | private | 私有的 |
protected | 受保护的 | |
public | 公共的 | |
default | 默认 | |
类、方法和变量修饰符 | abstract | 声明抽象 |
class | 类 | |
extends | 扩充,继承 | |
final | 最终值,不可改变的 | |
implements | 实现(接口) | |
interface | 接口 | |
native | 本地,原生方法(非 Java 实现) | |
new | 新,创建 | |
static | 静态 | |
strictfp | 严格,精准 | |
synchronized | 线程,同步 | |
transient | 短暂 | |
volatile | 易失 | |
程序控制语句 | break | 跳出循环 |
case | 定义一个值以供 switch 选择 | |
continue | 继续 | |
do | 运行 | |
else | 否则 | |
for | 循环 | |
if | 如果 | |
instanceof | 实例 | |
return | 返回 | |
switch | 根据值选择执行 | |
while | 循环 | |
错误处理 | assert | 断言表达式是否为真 |
catch | 捕捉异常 | |
finally | 有没有异常都执行 | |
throw | 抛出一个异常对象 | |
throws | 声明一个异常可能被抛出 | |
try | 捕获异常 | |
包相关 | import | 引入 |
package | 包 | |
基本类型 | boolean | 布尔型 |
byte | 字节型 | |
char | 字符型 | |
double | 双精度浮点 | |
float | 单精度浮点 | |
int | 整型 | |
long | 长整型 | |
short | 短整型 | |
变量引用 | super | 父类,超类 |
this | 本类 | |
void | 无返回值 | |
保留关键字 | goto | 是关键字,但不能使用 |
const | 是关键字,但不能使用 |
注意:Java 的 null 不是关键字,类似于 true 和 false,它是一个字面常量,不允许作为标识符使用。
数据类型
Java 的两大数据类型:
-
内置数据类型
-
引用数据类型
1.内置类型
Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。 byte:-
byte 数据类型是8位、有符号的,以二进制补码表示的整数;
-
最小值是 -128(-2^7);
-
最大值是 127(2^7-1);
-
默认值是 0;
-
byte 类型用在大型数组中节约空间,主要代替整数,因为 byte 变量占用的空间只有 int 类型的四分之一;
-
例子:byte a = 100,byte b = -50。
-
short 数据类型是 16 位、有符号的以二进制补码表示的整数
-
最小值是 -32768(-2^15);
-
最大值是 32767(2^15 - 1);
-
Short 数据类型也可以像 byte 那样节省空间。一个short变量是int型变量所占空间的二分之一;
-
默认值是 0;
-
例子:short s = 1000,short r = -20000。
-
int 数据类型是32位、有符号的以二进制补码表示的整数;
-
最小值是 -2,147,483,648(-2^31);
-
最大值是 2,147,483,647(2^31 - 1);
-
一般地整型变量默认为 int 类型;
-
默认值是 0 ;
-
例子:int a = 100000, int b = -200000。
-
long 数据类型是 64 位、有符号的以二进制补码表示的整数;
-
最小值是 -9,223,372,036,854,775,808(-2^63);
-
最大值是 9,223,372,036,854,775,807(2^63 -1);
-
这种类型主要使用在需要比较大整数的系统上;
-
默认值是 0L;
-
例子: long a = 100000L,long b = -200000L。 "L"理论上不分大小写,但是若写成"l"容易与数字"1"混淆,不容易分辩。所以最好大写。
-
float 数据类型是单精度、32位、符合IEEE 754标准的浮点数;
-
float 在储存大型浮点数组的时候可节省内存空间;
-
默认值是 0.0f;
-
浮点数不能用来表示精确的值,如货币;
-
例子:float f1 = 234.5f。
-
double 数据类型是双精度、64 位、符合 IEEE 754 标准的浮点数;
-
浮点数的默认类型为 double 类型;
-
double类型同样不能表示精确的值,如货币;
-
默认值是 0.0d;
-
boolean数据类型表示一位的信息;
-
只有两个取值:true 和 false;
-
这种类型只作为一种标志来记录 true/false 情况;
-
默认值是 false;
-
例子:boolean one = true。
-
char 类型是一个单一的 16 位 Unicode 字符;
-
最小值是 \u0000(十进制等效值为 0);
-
最大值是 \uffff(即为 65535);
-
char 数据类型可以储存任何字符;
-
例子:char letter = 'A';。
数据类型 | 默认值 |
---|---|
byte | 0 |
short | 0 |
int | 0 |
long | 0L |
float | 0.0f |
double | 0.0d |
char | 'u0000' |
String (or any object) | null |
boolean | false |
2.引用类型
-
在Java中,引用类型的变量非常类似于C/C++的指针。引用类型指向一个对象,指向对象的变量是引用变量。这些变量在声明时被指定为一个特定的类型,比如 Employee、Puppy 等。变量一旦声明后,类型就不能被改变了。
-
对象、数组都是引用数据类型。
-
所有引用类型的默认值都是null。
-
一个引用变量可以用来引用任何与之兼容的类型。
-
例子:Site site = new Site("Runoob")。
类型转换
-
自动类型转换
整型、实型(常量)、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算。
转换从低级到高级。
低 ------------------------------------> 高
byte,short,char—> int —> long—> float —> double
数据类型转换必须满足如下规则:
-
\1. 不能对boolean类型进行类型转换。
-
\2. 不能把对象类型转换成不相关类的对象。
-
\3. 在把容量大的类型转换为容量小的类型时必须使用强制类型转换。
-
\4. 转换过程中可能导致溢出或损失精度,例如:
int i =128;
byte b = (byte)i;因为 byte 类型是 8 位,最大值为127,所以当 int 强制转换为 byte 类型时,值 128 时候就会导致溢出。
-
\5. 浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入,例如:
(int)23.7 == 23;
(int)-45.89f == -45
-
强制类型转换
-
\1. 条件是转换的数据类型必须是兼容的。
-
\2. 格式:(type)value type是要强制类型转换后的数据类型
隐含强制类型转换
-
1、 整数的默认类型是 int。
-
\2. 小数默认是 double 类型浮点型,在定义 float 类型时必须在数字后面跟上 F 或者 f。
这一节讲解了 Java 的基本数据类型。下一节将探讨不同的变量类型以及它们的用法。
-
变量、常量
Java 中主要有如下几种类型的变量
- 局部变量
- 类变量(静态变量)
- 成员变量(非静态变量)
Java 常量
常量在程序运行时是不能被修改的。
在 Java 中使用 final 关键字来修饰常量,声明方式和变量类似:
final double PI = 3.1415927;
虽然常量名也可以用小写,但为了便于识别,通常使用大写字母表示常量。
字面量可以赋给任何内置类型的变量。例如:
byte a = 68; char a = 'A'
byte、int、long、和short都可以用十进制、16进制以及8进制的方式来表示。
当使用字面量的时候,前缀 0 表示 8 进制,而前缀 0x 代表 16 进制, 例如:
int decimal = 100; int octal = 0144; int hexa = 0x64;
和其他语言一样,Java的字符串常量也是包含在两个引号之间的字符序列。下面是字符串型字面量的例子:
"Hello World" "two\nlines" "\"This is in quotes\""
字符串常量和字符变量都可以包含任何 Unicode 字符。例如:
char a = '\u0001'; String a = "\u0001";
运算符
计算机的最基本用途之一就是执行数学运算,作为一门计算机语言,Java也提供了一套丰富的运算符来操纵变量。我们可以把运算符分成以下几组:
- 算术运算符
- 关系运算符
- 位运算符
- 逻辑运算符
- 赋值运算符
- 其他运算符
6、包机制、JavaDoc
在Java中,为了更好的组织类,Java提供了包机制,用于区别类名的命名空间。它的语法格式为:package package1[.package2[.package3...]];
在正式的开发中,一般都采用公司域名倒置来作为包名,比如,www.baidu.com,在开发中,一般就会使用com.baidu.XXX来分包。
我们使用包机制将其具体划分,更有助于开发,也对维护也起了极大的帮助,使我们对项目的管理更为方便快捷,良好的分包,让整个项目看起来就会一目了然,更加的清晰。