1、基本格式:
修饰符 class 类名{
代码体
}
1、java中程序代码可分为结构定义语句和功能执行语句,结构定义语句用于声明一个类或方法,功能执行语句用于实现具体的功能。每条执行语句的最后都要加上分号(;)。列如:
int a =1;
切记勿把英文分号(;)误写成中文分号(;)
2、java语言是严格区分大小写的。在定义类时,勿将class写成Class,否则将编译报错。如若在程序中定义一个computer的同时,还可以定义一个Computer,computer和Computer是两个完全不同的符号,使用时务必注意。
3、在编写java时,为了便于阅读,通常会使用一种良好的格式进行排版,但这并不是必需的,我们也可以在两个单词或符号之间任意的换行,列如下面这段代码的编写方式也是可以的。
pubilc class Helloworld{public static void
main (String[
]args){System.out.println("这是第一个java程序!");}
}
虽然java没有严格的要求用什么的格式来编排程序代码,出于可读性的考虑,应该让自己编写的程序代码整齐美观,层次清晰,通常会使用下面这种形式:
public class Hellowrid{
public static void main(String[] args){
System.out.println("这是第一个java程序");
}
}
4、java程序中一句连续的字符串不能分开在两行中书写,列如,下面这条语句在编译时会报错:
System.out.println("这是第一个java程序!");
如果为了便于阅读,想将一个太长的字符串分在两行中书写,可以先将这个字符串分成两个字符串,然后用加号(+)将这两个字符串连起来,在加号(+)处断行。上面的语句可以修改成如下形式:
System.out.println("这是第一个"+
"java程序!");
2、注释:
在编写程序时,为了代码易于阅读,通常会在实现功能的同时为代码加一些注释。注释是对程序的某个功能或者某行代码的解释说明,它只在java源文件中有效,在编译程序时编译器会忽略这些注释信息,不会将其编译到class字节码文件中去。
java中的注释有三种类型,具体如下。
1、单行注释
单行注释通常用于对程序中的某一行代码进行解释,用符号“//”表示,“//”后面为被注释的内容,具体示例如下:
int a = 1; //定义一个整型变量
2、多行注释
多行注释顾名思义就是在注释中的内容可以为多行,它以符号“/*”开头,以符号“*/”结尾,多行注释具体示例如下:
/*int a =1;
int b =6;*/
3、文档注释
文档注释是以“/**”开头,并在注释内容末尾以“*/”结束。文档注释是对一段代码概括的解释说明,可以使用javadoc命令将文档注释提出来生成帮助文档,关于这点将在后面的章节做详细讲解。
扩展:
在java中,有的注释可以嵌套使用,有的则不可以,下面列出两种具体的情况。
1、多行注释“/*..........*/”中可以嵌套单行注释“//”,列如:
/* int a =1; //定义一个整型的a
int b =2;*/
2、多行注释“/*......*/”中不能嵌套多行注释“/*......*/”,列如:
/*
/*int a =1;*/
int b =2;
*/
上面的代码无法通过注释编译,原因在于第一个“/*”会和第一个“*/”进行配对,而第二个“*/”则找不到匹配。
3、标识符
在编译过程中,经常需要在程序中定义一些符号来标记一些名称,如包名、类名、方法名、参数名、变量名等,这些符号被称为标识符。标识符可以由任意顺序的大小写字母、数字、下划线(_)和美元符号($)组成,但表示符不能以数字开头,不能是java中的关键字。
下面的这些标识符是合法的。
username
username123
user_name
_username
$ username
注意,下面这些标识符都是不合法的!
123username
class
98.3
Hello Worid
在java程序中定义的标识符必须要严格遵守上面列出的规范,否则程序再编译时会报错。除了上面列出的规范,为了增强代码的可读性,建议初学者在定义标识符时还应遵循以下规则:
- 包名所有字母一律小写,列如 cn. itcast. test。
- 类名和接口名每个单词的首字母都要大写,列如 ArrayList Iterator。
- 常量名所有字母都大写,单词之间用下划线连接,列如 DAY_OF_MONTH。
- 变量名和方法名的第一个单词首字母小写,从第二个单词开始每个单词首字母大写,列如 lineName、getLineNumber。
- 在程序中,应该尽量使用有意义的英文单词来定义标识符,使用程序便于阅读。列如使用userName表示用户名,passWord表示密码。
4、关键字
关键字是编程语言里事先定义好并赋予了特殊含义的单词,也称作保留字。和其他语言一样,java中保留了许多关键字,列如,class、public等,下面列举的是java中所有的关键字。
abstract | boolean | break | byte | case |
catch | char | const | class | continue |
default | do | double | else | extends |
final | finally | float | fot | goto |
if | implements | import | instanceof | int |
interface | long | native | new | package |
private | protected | public | return | sshort |
static | strictfg | super | switch | this |
throw | throws | transient | try | void |
volatile | while | synchronized |
上面举例的关键字中,每个关键字都有特殊的作用。列如package关键字用于包的声明,import关键字用于引入包,class关键字用于类的声明。在本文章后面的章节将逐步对其他关键字进行讲解,再此没有必要对所有关键字进行记忆,只需要了解即可。
使用java关键字时,有几个值注意的地方:
- 所有的关键字都是小写
- 程序中的标识符不能以关键字命名
5、常量
常量就是在程序中固定不变的值,是不能改变的数据。列如数字1、字符'a'、浮点数3.2等。在java中,常量包括整型常量、浮点数常量、布尔常量、字符常量等。
1、整型常量
整型常量是整数类型的数据,有二进制、八进制、十进制和十六进制4种表示形式,具体表示形式如下。
- 二进制:由数字0和1组成的数字序列。在JDK7.0中允许使用字面值来表示二进制数,前面要以0b或0B开头,目的是为了和十进制进行区分,如0b01101100、0B10110101。
- 八进制:以0开头并且其后由0~7范围内(包括0和7)的整数组成的数字序列,如0324。
- 十进制:由数字0~9范围内(包括0和9)的整数组成的数字序列。如198。
- 十六进制:以0x或者0X开头并且其后由0~9、A~F(包括0和9、A和F)组成的数字序列,如0x25AF。
需要注意的是,在程序中为了标明不同的进制,数据都有特定的标识,八进制必须以0开头如0711、0123;十六进制必须以0x或0X开头,如0xaf3、0Xff;整数以十进制表示时,第一位不能是0,0本身除外。列如十进制的127,用二进制表示为01111111,用八进制表示为0177,用十六进制表示为0x7F或0X7F。
2、浮点数常量
浮点数常量就是在数学中遇到的小数,分为fioat单精度浮点数和double双精度浮点数两种类型。其中,单精度浮点数后面以F或f结尾,而双精度浮点数则是以D或d结尾。当然,在使用浮点数时也可以在结尾不加任何的后缀,此时虚拟机会默认为double双精度浮点数。浮点数常量还可以通过指数形式来表示。具体示例如下:
2e3f 3.6d 0f 3.84d 5.022e+23f
上述列出的浮点数常量中用到的e和f,初学者可能感到困惑,后面的“变量的数据类型”章节中将会详细介绍。
3、字符常量
字符常量用于表示一个字符,一个字符常量要用一对英文半角格式的但引号' '引起来,它可以是英文字母、数字、标点符号以及由转义序列来表示的特殊字符。具体示例如下:
'a' '1' '&' '\r' '\u0000'
上面的示例中,'\u0000'表示一个空白字符,既在单引号之前没有任何字样。之所以能这样表示,是因为java采用的是Unicode字符集,Unicode字符以\u开头,空白字符在Unicode码表中对应的值应为'\u0000'。
4、字符串常量
字符串常量用于表示一串连续的字符串,一个字符串常量要用一对英文半角格式的双引号" "引起来,具体示例如下:
"Helloworld" "123" "Welcome \n XXX" " "
一个字符串可以包含一个字符串或多个字符,也可以不包含任何字符,既长度为零。
5、布尔常量
布尔常量即布尔型的两个值true和false,该常量用于区分一个事务的真假。
6、null常量
null常量只有一个值null,表示对象的引用为空。关于null常量将会在接下来的章节中详细介绍。
多学一招:特殊字符——反斜杠(\)
在字符串常量中,反斜杠(\)是一个特殊的字符,被称为转义字符,它的作用是用来转义后面一个字符。转义后的字符通常用于表示一个不可见的字符或具有特殊含义的字符,列如换行(\n)。下面列出一些常见的转义字符。
- \r 表示回车,将光标定位到当前行的开头,不会跳到下一行。
- \n 表示换行符,换到下一行的开头。
- \t 表示制表符,将光标移到下一个制表符的位置,就像在文档中用Tab键一样。
- \b 表示退格符号,就像键盘上的Backspace键。
以下的字符都有特殊意义,无法直接表示,所以用反斜杠加上另外一个字符来表示。
- \' 表示单引号字符,java代码中单引号表示字符的开始和结束,如果直接写单引号字符('),程序会认为前两个是一对,会报错,因此需要使用转义字符(\')。
- \" 表示双引号字符,java代码中双引号表示字符串的开的开始和结束,来包含在字符串中的双引号需要转义,比如"he says,\ "thank you\". "。
- \\表示反斜杠字符,由于在java代码中的反斜杠(\)是转义字符,因此需要表示字面意义上的\,就需要使用双反斜杠(\\)。
多学一招:整型常量进制间的转换
通过前面的介绍可以知道,整型常量可以分别用二进制、八进制、十进制和十六进制表示,不同的进制并不影响数据本身,同一个整型常量可以在不同进制之间转换,具体转换方式如下:
1、十进制转二进制之间的转换
十进制转二进制就是一个除以2取余数的过程。把要转换的数,除以2,得到商和余数,将商和继续除以2,直到商为0。最后将所有余数倒叙排列,得到的数就是转换结果。
以十进制的6转换为二进制为例进行说明
三次除以2计算得到的余数依次为0、1、1,将所有的余数倒叙排列是110。所以十进制的6转换成二进制,结果是110
2、二进制转十进制
二进制转化成十进制要从右到左用二进制位上的每个数去乘以2的相应次方,列如,将最右边的第一位的数乘以2的0次方,第二位的数乘以2的1次方,第n位的数乘以2的n-1次方,然后把所有乘的结果相加,得到的结果就是转换后的十进制。
如把一个二进制数01100100转换为十进制,转换方式如下:
0*2的0次方+0*2的1次方+0*2的2次方+0*2的3次方+0*2的4次方+0*2的5次方+0*2的6次方+0*2的7次方=100
由于0乘以多少都是0,所有上述表达也可以简写为:
1*2的2次方+1*2的5次方+1*2的6次方=100
上式得到的结果100就是二进制01100100转化后的十进制
2、二进制和八进制、十六进制之间的转换
编程过程中之所以要用八进制和十六进制,是因为它们与二进制之间互相转换很方便,而且它们比一串长的二进制数方便书写和记忆。
(1)二进制转八进制
二进制转八进制时,首先需要将二进制数自右向左每三位分成一段,然后将二进制的每段的三位数转为八进制的一位数,转换过程中数值的对应关系如表:
二进制和八进制数值对应表
二进制 | 八进制 | 二进制 | 八进制 | 二进制 | 八进制 | ||
000 001 010 | 0 1 2 | 011 100 101 | 3 4 5 | 110 111 | 6 7 |
将一个二进制数100101010转为八进制,具体步骤如下:
① 每三位分成一段,结果为:100 101 010。
② 将每段的数值分别查表替换,结果如下:
100→4
101→5
010→2
③ 将替换的结果进行组合,转换的结果为0452(注意八进制必须以0开头)。
(2)二进制转十六进制
将二进制转十六进制时,与转八进制类似,不同的是要将二进制数每四位分成一段,查表转换即可。二进制转十六进制过程中数值的对应关系如表:
二进制 | 十六进制 | 二进制 | 十六进制 | 二进制 | 十六进制 | 二进制 | 十六进制 | |||
0000 0001 0010 0100 | 0 1 2 3 | 0100 0101 0110 0111 | 4 5 6 7 | 1000 1001 1010 1011 | 8 9 A B | 1100 1101 1110 1111 | C D E F |
要将一个二进制数101001010110转为十六进制,具体如下:
① 每四位分成一段,结果为:101001011001。
② 将每段的数值分别查表替换,结果如下:
1010→A
0101→B
0110→6
③ 将替换的结果进行组合,转换的结果为0xA56或0XA56(注意十六进制必须以0x或者0X开头)