第一章 语言基础.docx

上传人:b****8 文档编号:10519464 上传时间:2023-02-17 格式:DOCX 页数:64 大小:42.78KB
下载 相关 举报
第一章 语言基础.docx_第1页
第1页 / 共64页
第一章 语言基础.docx_第2页
第2页 / 共64页
第一章 语言基础.docx_第3页
第3页 / 共64页
第一章 语言基础.docx_第4页
第4页 / 共64页
第一章 语言基础.docx_第5页
第5页 / 共64页
点击查看更多>>
下载资源
资源描述

第一章 语言基础.docx

《第一章 语言基础.docx》由会员分享,可在线阅读,更多相关《第一章 语言基础.docx(64页珍藏版)》请在冰豆网上搜索。

第一章 语言基础.docx

第一章语言基础

第一章语言基础

考点01源文件

规则01:

源文件是一个包含java代码的文本文件,以java作为文件后缀名。

源文件通过编译产生的可执行的字节代码文件,即类文件,该源文件对应的类文件以.class作为文件后缀名。

该文件中的字符必须满足java语言的语法规定,否则在编译时会产生编译错误。

采用JDK命令行方式编译一个源文件的示例如下:

Javacsourcefilename.java

规则02:

一个源文件最多只能包含一个顶层的public类定义。

如果在一个源文件中存在两个或两个以上的public类定义,则会产生编译错误,但允许没有顶层的public类定义,并且一个源文件可以包含不限数量多个非public类定义。

规则03:

源文件名必须满足java语言标识符的规定。

规则04:

一个源文件可以不包含任何代码定义,即它是一个空文件,编译时不会产生编译错误,一个包含类定义的最小源文件的内容仅为classclassname{}。

规则05:

在一个源文件中,如果存在一个顶层的public类定义,则该源文件名必须与顶层的public类名一致。

如果源文件中没有一个顶层public类定义,则该源文件名可以随意命名,不需要与源文件中定义的任何类名一致,只要符合java语言标识符规定即可。

规则06:

一个源文件共有3种顶层元素,分别为package(包声明),import(输入语句)和class(类声明)。

这3种顶层元素并非必须同时出现,如果同时存在,则必须要按package、import、class的顺序出现,即任何输入语句都出现在所有类定义之前。

如果使用包声明,则包声明必须出现在类各输入语句之前。

规则07:

包是用来组织类的,在源文件中包声明通过关键字package后跟包名称来实现。

包名由一系列以句点作为分隔符的路径名构成。

由于包名称的构成元素映射的是系统路径名,所以包名的字符满足路径名的要求,例如不能包含/、\、:

、*、?

等字符。

注意,一个源文件最多只能包含一个包声明语句。

如果源文件中没有包声明语句,则类被放置在默认的包中。

规则08:

import语句用于引用其他包中的类,以供源文件中的代码使用。

既可以引入一个明确指定的类,例如importjava.util.Dictionary,也可以通过通配符*引入整个包中的所有类,但需要在使用类写全其所在包名,例如java.util.Datenow=newjava.util.Date(),这正是应用import语句解决写全包名烦琐问题的所在。

注意,import语句不同于包声明语句,在一个源文件中,包声明语句只能有一条,而import语句则可以有多条,并用分号隔开。

规则09:

如果在通过通配符*此入的两个不同的包中存在同名的类,例如java.util和java.sql包中都有一个名为date的类,当代码中不加包名直接使用date类时,则会产生编译错误因为编译器无法确定那个包中的同名类被使用。

解决此问题有两种方式,一是明确引入要使用包中的类,二是在使用类时写全包名来明确调用。

规则10:

java.lang包由系统自动引入,不需要明确引入就可使用其中的类。

规则11:

注释语句既可以单独占有一行,也可以放在一行语句的后面。

注释可以出现在源文件中3种顶层元素package、import和class之前。

 

示例01:

请问,以下哪些描述是正确的?

请选择所有正确答案:

(1)如果package语句存在,则必须出现在源文件的非空白首行。

(2)如果import语句存在,则必须出现在源文件的非空白首行。

(3)如果main()方法存在,则必须出现在源文件的非空白首行。

(4)如果在源文件中声明了一个public接口,则其名称必须和源文件名一致。

答案:

(1)(4)

详解:

本题考查的核心是java源程序和结构。

选项

(1)正确,因为java语言规定,package顶层元素必须出现在源程序的首行。

即时于注释行之后,所有非注释语句之前,包括顶层元素Import语句和Class定义语句。

选项

(2)错误,因为java语言import顶层元素只有当没有package顶层元素时,才必须位于首行。

如果存在顶层元素时,则必须位于package顶层元素之后,其他语句之前。

选项(3)错误,因为java语言没有规定main()方法必须位于首行,且由于main()方法属于类,其正确位置应位于类体内。

选项(4)正确,因为java语言规定源文件的文件名必须和公共类名相同。

示例02:

请问,为了使一个名为MyClass的public类成功编译,需满足以下哪些条件?

请选择一个正确答案:

(1)MyClass类中必须定义一个正确的main()方法。

(2)MyClass类必须定义在MyClass.java源文件中。

(3)MyClass类必须定义在MyClass包中。

(4)MyClass类必须被导入。

答案:

(2)

详解:

本题考查的核心是源文件中类的限定,一个Java源文件中可以包含不受数量限制的多个非公共类定义,但只能包含一个公共类定义,因为每个被声明为public的类都必须而且只能被包含在自己的源文件中,该公共类名要和源文件名致,所以只有选项

(2)正确。

选项

(1)错误,因为一个类中可以没有main()方法,main()方法只是作为Java应用程序的入口而已。

示例03:

请问,现有一个Java源文件,其中包含有一个名为Example的public类,为了成功编译该文件,需要满足以下哪些条件?

请选择一个正确答案:

(1)源文件必须导入java.lang包。

(2)源文件必须声明一个main()方法。

(3)源文件名必须为Example.java。

(4)源文件必须具有package包语句。

答案:

(3)

详解:

本题考查的核心是源文件名的限定,一个Java源文件名必须和其中惟一的顶层public类名一致,所以只有选项(3)正确,选项

(1),

(2)和选项(4)是否存在,与源文凭是否能编译成功无关。

示例04:

请问,以下哪些是正确的Java注释形式?

请选择所有正确答案:

(1)\\Thisisacomment.

(2)/*Thisisacomment.*/

(3)/**Thisisacomment.*/

(4)\*Thisisacomment.*\

答案:

(2)(3)

详解:

本题考查的核心是Java注释的正确书写形式,Java语言共有两种注释,一种是多行注释,以/*开头,跨越多行,最后以*/结束,另一种是单行注释,以//开头,没有结束标记,表示这一行的所有内容都是注释。

因此,只有选项

(2),(3)和注释格式正确,而选项

(1),(4)的注释格式不正确。

示例05:

请问,为了使一个名为Example的类可以成功编译、运行,必须满足以下哪些条件?

请选择正确答案:

(1)Example类必须定义在Example.java文件中。

(2)Example类必须声明为public类。

(3)Example类必须定义一个正确的main()方法。

(4)Example类必须导入java.lang包。

答案:

(3)

详解:

本题考查的核心是Java应用类的限定。

本题材的难点在于实现“成功运行”。

选项

(1)错误。

因为一个Java类并不需要和源文件名一致,除非它是源文件中惟一的public类。

选项

(2)错误,如果Example类不是名为源文件中惟一的类,则不必声明为public类,选项(4)错误,因为java.lang包是由虚拟机自动导入类的,选项(3)正确,因为题目要求该是能够成功运行,因此该类就必须声明一个main()方法来作为执行的入口,如果没有main()方法,照样可正常编译,但无法执行。

示例06:

请问,以下哪些修饰符不能用于顶层类?

请选择一个正确答案:

(1)public

(2)private

(3)abstract

(4)final

答案:

(2)

详解;本题考查的核心是顶层类的限制。

在Java中规定,能够应用在一个非内部类即顶层类的访问修饰符只有public一个。

一个顶层类规定它不能是一个私有类,即不能用private修饰符修饰。

其实,这个道理很简单,如果该顶层类为私有,那么该类就无法被访问,也就失去存在的意义。

考点02关键字和标识符

规则01:

Java语言中共有51个关键字和保留字。

abstract

booleanbreakbyte

casecatchcharclassconstcontinue

defaultdodouble

elseextends

falsefinalfinallyfloatfor

goto

ifimplementsimportinstanceofintimterface

long

nativenewnull

packageprivateprotectedpublic

return

shortsrsticstricftpsuperswithsynchronized

thisrhrowthrowstransienttruetry

voidvolatile

while

 

规则02:

goto和const是保留字,尽管在Java语言中末被使用,但程序员不能使用其作为标识符。

规则03:

Java语言中规定,标识符不能使用规定的关键字和保留字,并且标识符只能以字母、$或_开头,随后的字符只能是字母、$、_和数字。

示例01:

请问,以下哪些是Java中合法的标识符?

请选择所有正确答案:

(1)_xpoints

(2)r2d2

(3)bBb$

(4)set-flow

(5)thisisCrazy

答案:

(1)

(2)(3)(5)

详解:

本题考查的核心是标识的正确表示,选项(4)错误,因为-不是Java中构成标总值符和合法字符。

示例02:

请问,以下哪些是合法变量名?

请选择氖正确答案:

(1)_int

(2)%large

(3)$fred

(4)integer

(5)2much

答案:

(1)(3)(4)

详解:

本题考查的核心是标识符的正确表示,选项

(2)错误,因为%不是Java中构成标识符的合法字符。

选项(5)错误,尽管数字是构成Java标总值符的合法字符,但不能以数字作为标识符开头字符。

示例03:

请问,以下啊些是Java中的合法标识符?

请选择所有正确答案:

(1)%id

(2)$id

(3)_id

(4)#id

答案:

(2)(3)

详解:

本题考查的核心是标识符的正确表示,选项

(1)错误,因为%不是Java中构成标识符的合法字符,选项(4)错误,因为#不是Java中构成标识符的合法字符。

示例04:

请问,以下哪些是Java中的合法标识符?

请选择正确答案:

(1)my-id

(2)my_id

(3)101ids

(4)id101

答案:

(2)(4)

详解:

本题考查的核心是标识符的正确表示。

选项

(1)错误,因为-不是Java中构成标识符的合法字符。

选项(3)错误,尽管数字是构成Java标识符,但不能以数字作为标只符开头字符。

示例05:

请问,以下哪些是合法的标识符?

请选择所有正确答案:

(1)%abcd

(2)Sabcd

(3)1abcd

(4)package

(5)_a_long_name

答案:

(2)(5)

详解:

本题考查的核心是标识符的正确表示。

选项

(1)错误,因为%符号不是Java中构成标识符的合法字符,选项(3)错误,尽管数字是构成Java标识符的合法字符,但不能以数字1作为标识符开头字符。

选项(4)错误,因为package是Java语言中的保留字,它不能作为标识符使用。

示例06:

请问,以下哪此是Java中合法的关键字?

请选择所有正确答案:

(1)array

(2)boolean

(3)integer

(4)protect

(5)super

答案:

(2)(5)

详解:

本题考查的核心是Java中的合法关键字的辨认。

选项

(1)错误,因为Java语言中数组为一个对象,声明一个数组采用元素类型表示,并无关键字array。

选项(3)错误,因为integer代表一个整型封装器,不是关键字。

选项(4)错误,因为关键字protect的正确形式应为protected。

示例07:

请问,以下哪些是Java语言中合法的关键字?

请选择所有正确答案:

(1)then

(2)synchronized

(3)volatile

(4)transient

(5)this

答案:

(2)(3)(4)(5)

详解:

本题考查的核心是Java中的合法关键字的辨认,选项

(1)错误,因为then关键字在VB、pascal等语言中用于if条件语句结构中,而在Java语言中的if结构为if{}else{},不需要then关键字。

示例08:

请问,以下哪些是Java语言中的关键字?

请选择所有正确答案:

(1)run

(2)default

(3)implement

(4)import

答案:

(2)(4)

详解:

本题考查的核心是Java中的合法关键字的辨认。

选项

(1)错误,因为run关键字未在Java语言中定义。

选项(3)错误,因为关键字implement的正确形式应为impements,代表类实现某接口。

示例09:

请问,以下哪些是Java中定义的合法关键字?

请选择所有正确答案:

(1)NULL

(2)sizeof

(3)friend

(4)extends

(5)synchronized

答案:

(4)(5)

详解:

本题考查的核心是Java中的合法关键字的辨认。

选项

(1)错误,Java中的关键字都是小写字符,不能有大写字符存在。

选项

(2)错误,不像C++语言中有运算符sizeof,其在Java中未有定义,因为Java中所有基本类型的大小都是固定的。

选项(3)错误,因为关键字friend不是Java语言中定义的合法关键字。

Java语言中规定,在属性或类前不加任何访问修饰符,其效果同C++中的friendly.

示例10:

请问,以下哪些是Java中定义的合法关键字?

请选择一个正确答案:

(1)NULL

(2)null

(3)extends

(4)Main

答案:

(2)(3)

详解:

本题考查的核心是Java中的合法关键字的辨认。

选项

(1)和选项(4)错误,因为Java中的关键字都是小写字符,不能有大写字符存在。

示例11:

请问,以下哪些是Java中定义的合法关键字?

请选择所有正确答案:

(1)interface

(2)sizeof

(3)super

(4)volatile

答案:

(1)(3)(4)

详解:

三题考查的核心是Java中合法关键字的辨认,选项

(2)错误,sizeof用在C和C++语言中,在C和C++语言中,不同的数据在不同的机器上可能有不同的大小,通过sizeof可以实现“移植”,但在Java中不需要sizeof运算来满足这方面的需要,因为所有数据类型在所有机器上的大小都是相同的。

考点03基本数据类型

规则01:

Java语言中共有8种基本数据类型,分别为布尔型(boolean)、字符型(char)、字节型(byte)、短整型(short)、整型(int)、长整型(long)、单精度型(float)和双精度型(double)。

规则02:

8种基本数据类型的有效字节表示位数。

类型有效比特数类型有效比特数

boolean1int32

byte8float32

char16long64

short16double64

规则03:

Java语言中的boolean数据类型的取值只能为true或false,不像其他语言,

例如C++,可以允许用整型值代替true或false。

规则04:

Java语言中共有4种带符号的整数型基本数据类型,分别为byte、short、int和long。

规则05:

4种带符号的整数基本数据类型的取值范围也有规定。

类型有效字节数最小值最大值

byte8-2727-1

short16-215215-1

int32-231231-1

long64-263263-1

取值范围计算公式为2(numberofbit-1)到2(numberofbit-1)-1.最小值和最大值中底数2的指数均比对应类型的有效字节数小1.

规则06:

java语言中的char基本数据类型属于整数型,但是无符号的整数型其取值范围为0~216-1.

规则07:

java语言中的字符型是基于16位的统一字符集,不是基于7位的ASCII字符集.为了和ASCII字符集兼容,统一字符集包括了ASCII字符集,即用高9位为0的字符映射为ASCII字符集中对应编码的字符。

也就是说,高9位为0,低7位和ASCII字符集中对应字符的编码一致。

例如,65在ASCII字符集和统一字符集中均代表大写字母A。

规则08:

Java语言中共有两种浮点型基本数据类型,分别为float和double,它们对应的封装类Float和Double都定义有NaN、POSITIVE_INFINITY、NEGATIVE_INFINITY常量,用于表示非正常运算结果,NaN(NotaNumber)常量类属性代表运算结果是一个非数值,POSITIVE_INFINITY常量类属性代表正无限大,NEGATIVE_INFINITY常量类属性代表负无限大。

注意,尽管两个INFINITY常量代表无限值,但其只是一个特殊数值,而不是非数值,这一点不同于NaN常量类属性。

示例01:

请问,以下哪个是int型数据的正确取值范围?

请选择一个正确答案:

(1)取决于编译器。

(2)-231..231-1

(3)-231-1..231

(4)-215..215-1

(5)-215-1..215

答案:

(2)

详解:

本题材考查的核心是int型数据取值范围,int型是32位的带符号数据类型,其取值范围为-232-1..232-1-1,即选项

(2)(-231..231-1)正确。

示例02:

给出以下代码,请问变量X的有效取值范围?

intx;

请选择一个正确答案:

(1)-231..231-1

(2)-231-1..231

(3)-215..215-1

(4)-215-1..215

(5)取决于运行平台。

答案:

(1)

详解:

本题考查的核心依然是int型数据的取值范围,只不过换了一种提问方式和范围表达方式。

示例03:

请问,字符型数据的取值范围是什么?

请选择一个正确答案:

(1)0..216

(2)0..216-1

(3)0..215

(4)0..215-1

答案:

(2)

详解:

本题考查的核心是字符型数据的取值范围。

字符型是一个不带符号的16位整数,其取值范围为0..216-1,因此选项

(2)正确。

注意,char属于整数型,但它是惟一的无符号整数型。

示例04:

请问,字节基本数据类型的取值范围是什么?

请选择一个正确答案:

(1)0..+255

(2)-127..+128

(3)-128..+127

(4)0..65535

(5)-32767..+32768

答案:

(3)

详解:

本题考查的核心是字节型数据的取值范围。

字节型是一个带符号8位整数,其取值范围为-27..27-1即-128..+127,所以选项(3)正确。

示例05:

请问,以下哪些是短整型数据的取值范围?

请选择一个正确答案:

(1)0..216

(2)-216..216

(3)-215..215

(4)-215..215-1

答案:

(4)

详解:

本题考查的核心是短整型数据的取值范围。

短整型是一个带符号的16位整数,其取值范围为-215..215-1,所以选项(4)正确。

示例06:

请问,Java语言中一个长整数由几位字节表示?

请选择一个正确答案:

(1)取决于编译器。

(2)2

(3)4

(4)8

(5)64

答案:

(5)

详解:

本题考查的核心是长整型数据的有效字节表示位数,选项(5)正确,因为long型数据的有效字节表示位数为64位,选项

(1)错误,因为Java语言中的数据类型长度是独立于平台的,与具体编译器无关。

示例07:

请问,以下哪些代码片断正确?

请选择所有正确答案:

(1)publictransientstaticfinalint_FRAMEX=850;

(2)this(“a”,”b”);

(3)privatetransientstaticfinalint_FRAMEX=850;

(4)booleanb=0;

答案:

(1)

(2)(3)

详解:

本题材考查的核心是数据类型的正确取值。

选项(4)错误,因为Java语言中boolean型的取值只能为true或false,不像其他语言(例如C++)可以允许用整型值0、1代替false和true。

示例08:

请问,以下哪些描述是正确的?

请选择所有正确答案:

(1)字符型char具有16位宽度。

(2)Unicode编码字符具有16位宽度。

(3)Unicode编码字符具有32位宽度。

(4)UTF编码字符具有24位宽度。

答案:

(1)

(2)

详解:

本题考查的核心是字符型数据的有效字节表示位数。

Java语言中的字符型是基于16位的统一字符编码集,不像C和C++中的8位字符。

这是因为8位字符只能表示255个字符,这对早期基于U.S./English字母表的计算机技术已是足够。

但是要适应现在所有国家的字母有是远远不够的,所以采用16位字符,这样可以表示出65000以上的不同字符,因此选项

(1)、

(2)正确。

示例09:

给出以下代码,请问该程序的运行结果是什么?

classExample{

publicstaticvoidmain(Stringargs[]){

booleanflag=false;

if(flag=true){

System.out.println(“true”);

}

else{

System.out.println(“false”);

}

}

}

请选择一个正确答案:

(1)代码编译失败,if语句错误。

(2)代码编译成功,但在运行期时if语句处抛出异常。

(3)打印输出true。

(4)打印输出false。

(5)无内容输出。

答案:

(3)

详解:

本题考查的核心是布尔型数据的使用。

Java语言中的boolean类型的取值只能为true或false。

本题的难点在于if表达式不是一个比较表达式而是一个赋值表达式,实际上if表达式只要其最终运算结果为一个确定的布尔型数值即可,而不必为一个逻辑表达式。

示例中由于flag取值为true,执行System.out.println(“true”)语句,最终输出结果为true,所以选项(3)正确。

示例10:

请问,以下啊个描述正确?

请选择所有正确答案:

(1)int类型是一个32位的有符号整数值。

(2)short类型是一个16位的无符号整数值。

(3)char类型是一个16位的Unicode编码字符。

(4)float类型是一个64位的浮点数值。

(5)long类型是一个64位的有符号整数值。

答案:

(1)(3)(5)

详解:

本题考查的核心是基本型数据的有效字节表示位数。

各数据类型具体有效字节数参考规则02

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 其它模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1