Java基础知识考点Java开卷考试.docx

上传人:b****1 文档编号:152941 上传时间:2023-04-28 格式:DOCX 页数:19 大小:23.02KB
下载 相关 举报
Java基础知识考点Java开卷考试.docx_第1页
第1页 / 共19页
Java基础知识考点Java开卷考试.docx_第2页
第2页 / 共19页
Java基础知识考点Java开卷考试.docx_第3页
第3页 / 共19页
Java基础知识考点Java开卷考试.docx_第4页
第4页 / 共19页
Java基础知识考点Java开卷考试.docx_第5页
第5页 / 共19页
Java基础知识考点Java开卷考试.docx_第6页
第6页 / 共19页
Java基础知识考点Java开卷考试.docx_第7页
第7页 / 共19页
Java基础知识考点Java开卷考试.docx_第8页
第8页 / 共19页
Java基础知识考点Java开卷考试.docx_第9页
第9页 / 共19页
Java基础知识考点Java开卷考试.docx_第10页
第10页 / 共19页
Java基础知识考点Java开卷考试.docx_第11页
第11页 / 共19页
Java基础知识考点Java开卷考试.docx_第12页
第12页 / 共19页
Java基础知识考点Java开卷考试.docx_第13页
第13页 / 共19页
Java基础知识考点Java开卷考试.docx_第14页
第14页 / 共19页
Java基础知识考点Java开卷考试.docx_第15页
第15页 / 共19页
Java基础知识考点Java开卷考试.docx_第16页
第16页 / 共19页
Java基础知识考点Java开卷考试.docx_第17页
第17页 / 共19页
Java基础知识考点Java开卷考试.docx_第18页
第18页 / 共19页
Java基础知识考点Java开卷考试.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

Java基础知识考点Java开卷考试.docx

《Java基础知识考点Java开卷考试.docx》由会员分享,可在线阅读,更多相关《Java基础知识考点Java开卷考试.docx(19页珍藏版)》请在冰点文库上搜索。

Java基础知识考点Java开卷考试.docx

Java基础知识考点Java开卷考试

开卷考试,共2个小时,要求卷面整洁,书写清晰。

一判断题10分,每题1分

      在编程时编写过多的注释,会使编译之后生成的程序文件变大。

〔错〕

   放心,编译器会删除所有的注释。

所以,哪怕你在程序中写了一部长篇小说,也不会拖慢程序的运行速度。

  一个Java源文件中只能定义一个公有类,并且类名必须与文件名一致。

〔对〕

.       通过在程序中引入“importjavax.swing.*;〞语句,就可以使用包中的所有类〔包括其嵌套的子包中的类〕。

〔错〕

      要使用嵌套子包中的类,必须再次添加import子句

       J2SE的功能是J2ME的一个子集。

〔错〕

Java规定所有的方法都必须放到某个类中,不存在独立于类的方法。

〔对〕

java中所有类是java.lang.Object类的子类〔对〕

Swing是一套GUI组件,采用了新的思路设计Java应用程序的界面,它完全地替换掉了原有的AWT。

〔错〕

    Swing仍然使用AWT的事件模型,并非完全抛弃。

  值得注意的NetBeans6.9.1完成最新的更新组件后,创立Java桌面应用程序时,有了一个新的提示消息框:

 

二简答题40分,每题5分,共8个小题。

现代编程语言有两种主要的类型:

一种是“编译型〞的,比方C,程序源码必须经过编译才能运行;另一种是“解释型〞的,这种类型的语言〔比方早期的Basic〕通常都拥有一个交互环境,用户输入一句代码计算机就执行一句代码。

   Java属于上述哪种类型?

如果你认为Java不属于上述任何一种类型,那么它是不是一种新的编程语言类型?

Java源程序需要编译,但运行时需要即时“解释〞为本地CPU能执行的机器指令,所以它不属于“纯〞的编译型或解释型,而是一种混合类型。

Java中有两个关键字:

void和null,它们有什么区别?

void是无类型,null是空值,一个是对返回类型来说,一个对值来说的。

Void表示这个方法执行结束后不返回任何值。

void :

Public void sort();表示方法没有返回值

Null 表示一个对象为null,就是没有分配内存,没有初始化。

3.   简述“类〔Class〕〞、“类库(ClassLibrary)〞、“包〔Package〕〞、“ Jar 文件〞这四个概念间的联系。

    类库其实是一个“统称〞,它是类的集合。

包那么是类库的组织形式,它类似于C++中的namespace,可以解决类的同名问题。

   Jar那么是一个采用Zip格式压缩的文件包 ,主要是为了方便Java组件的复用,简化Java应用程序的部署和发布。

Jar包中可以保存任意类型的多个文件和多级嵌套的文件夹。

比方JDK就包容了不少Jar压缩包,你可以使用解压缩工具(比方WinRAR)去查看它的内容。

可以把Jar文件看成是Java类库的一个物理“载体〞,之所以称其为“物理〞的,是因为我们可以在计算机中直接“看见〞并“操作〞它。

在一个很大的循环〔比方循环100000次〕中,如果需要进行大量字符串的连接操作,通常人们会使用StringBuffer〔或StringBuilder〕而不是String类型,请解释这么做的理由。

StringBuffer可存放允许修改的字符串,String对一串字符进行操作,不可变类。

StringBuffer内部结构是数组,字符可以动态改变,String是final类型,不可改变。

因为String的对象是不能修改的,进行加操作,会产生新的对象,在很大的循环中这样做会浪费内存空间。

而StringBuffer是对同一个内存对象,进行修改,节省内存,增加效率。

现有两个长度不同的数组:

int[]arr1=newint[10];

int[]arr2=newint[100];

那么以下语句能通过编译吗?

arr1=arr2;

如果你认为可以通过编译,得到这个结论的依据是什么?

如果不能通过编译,你认为其原因是什么?

可以。

因为哪怕是根本类型的数组,数组本身也是引用的,用=号时,只是将一个数组的地址,指向另一个,并不是进行复制。

请看以下代码:

doubled1=100.1;

doubled2=1001/10;

System.out.println(d1==d2);//输出:

false

明明d1与d2是相等的,为什么程序运行时会输出一个让人意外的结果:

false?

Doubled2=1001/101001和10都是int型它们相除得出一个int型100

前面用double类型所以是100.0所以的d1和d2不相等。

请看以下例如代码:

Strings1="Hello";

Strings2="Hello";

System.out.println(s1==s2);//输出:

true

Strings3=newString("Hello");

Strings4=newString("Hello");

System.out.println(s3==s4);//输出:

false

请解释一下为什么上述代码中“System.out…〞两句代码输出完全不同的结果?

请看代码

Strings="北京";

s=s+"奥运会";

请问上面代码产生几个String对象

3个

请看代码

shorts=1;

shortt=s+1;

以上代码是否可以编译,如果不能,请说明原因

不能,1是int型s为short型都转换为int型shortt=〔short〕〔s+1〕

谈谈你对interface的理解和应用。

接口〔interface〕是抽象类的变体。

在接口中,所有方法都是抽象的。

多继承性可通过实现这样的接口而获得。

接口中的所有方法都是抽象的,没有一个有程序体。

接口只可以定义staticfinal成员变量。

接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。

当类实现特殊接口时,它定义〔即将程序体给予〕所有这种接口的方法。

然后,它可以在实现了该接口的类的任何对象上调用接口的方法。

由于有抽象类,它允许使用接口名作为引用变量的类型。

通常的动态联编将生效。

引用可以转换到接口类型或从接口类型转换,instanceof运算符可以用来决定某对象的类是否实现了接口。

三简单编程题30分,每题5分,共6个小题。

以所有学习过程中练习过的作业为原型,注意适当的变化和新要求。

试凑法、迭代法、最大最小值、打印图形、求素数、排序等。

1.编写一个程序,用户输入任何一个字符串之后,反转输出其结果。

其运行结果如下所示:

请输入一个字串:

我在学习Java程序设计,您输入了:

计设序程avaJ习学在我

packagefei;

publicclassfanchuan{

publicstaticvoidmain(String[]args){

Strings="计设序程avaJ习学在我";

chararray[]=s.toCharArray();

for(inti=array.length-1;i>=0;i--){

System.out.println(s.charAt(i));

}}}

packagefei;

importjava.util.Scanner;

publicclassFanchuan2{

publicstaticvoidmain(String[]args){

Scannersc=newScanner(System.in);

Stringword=sc.nextLine();

System.out.println(word);

StringBuffersbb=newStringBuffer(word);

System.out.println(sbb.reverse().toString());//自定

chara[]=word.toCharArray();

for(inti=a.length-1;i>=0;i--){

System.out.println(a[i]);

}//把a里的东西反序赋给b

char[]b=newchar[a.length];

for(intj=0,i=a.length-1;j

System.out.println("j="+j+",i="+i);

b[j]=a[i];}

Stringend=newString(b);

System.out.println(end);}}

2.请编写一个方法,其声明如下:

publicstaticint[]getRandomizeNumbers(intbegin,intend,intcount)

此方法将生成一个数组,包容count个[begin,end)范围内的随机整数.

packagefei;

publicclassZuoye2{

publicstaticint[]getRandomizeNumbers(intbegin,intend,intcount){

int[]a=null;

a=newint[count];

for(inti=0;i

a[i]=begin+(int)(Math.random()*(end-begin));

}

returna;

}

publicstaticvoidmain(String[]args){

}}

(2)编写一个方法,它接收一个int数组作为参数,外界只需调用一次这个方法,可以马上得到这个数组的最大值、最小值和平均值信息。

classArrayInfo

{

publicintmax=0;

publicintmin=0;

publicdoubleaverage=0;

}

定义好了ArrayInfo类后,此方法就很容易编写了:

publicstaticArrayInfogetArrayInfo(int[]arr){

ArrayInfoobj=newArrayInfo();

intsum=0;

obj.max=obj.min=arr[0];

for(intvalue:

arr){

if(value>obj.max){

obj.max=value;

}

if(value

obj.min=value;

}

sum+=value;

}

obj.average=(double)sum/arr.length;

returnobj;

}

 

(4)数学中,一个复数包容着一个实部〔Real〕和一个虚部〔Imaginary〕。

请设计一个Complex类,它的实例代表一个复数,并且用户可以这样使用它:

//创立一个实部为3,虚部为4的复数

Complexobj=newComplex(3,4);

//Complex对象具备按照数学中复数的习惯表示形式输出的能力。

System.out.println(obj);//输出:

3+4i

送分题,覆盖一下toString()方法就行了。

classComplex{

publicdoublereal;

publicdoubleimaginary;

publicComplex(doublerealValue,doubleimaginaryValue){

real=realValue;

imaginary=imaginaryValue;

}

publicStringtoString(){

returnreal+"+"+imaginary+"i";

}

}

四综合编程题20分

类,方法,继承等。

一个图书管理系统的面向对象设计方案:

      Book代表书,有“Name〔书名〕〞、“Author〔作者名〕〞、“Price〔单价〕〞和“IsBorrowed〔是否被借出〕〞四个属性。

      类Library代表图书馆,其内部字段books用于保存图书馆中所有的书。

它的FindBook()方法依据书名查找同名的书〔可能有多本〕。

另一个GetAllBooks()方法获取馆藏所有书的详细信息。

      类Reader代表读者,Name字段代表其姓名,读者可以“ReturnBook〔还书〕〞和“BorrowBook〔借书〕〞。

      请编程完成以下工作:

1.             用Java编程实现上述3个类。

〔15分〕

2.             在main()方法内书写以下测试代码:

〔5分〕

(1)    创立一个Library类的实例myLittleLibrary,其中预存有以下3本书:

             Java程序设计,张三著,45元

            Java核心技术,李四著,50元

            Java程序设计,王五著,38元

(2)    显示图书馆中所有图书的信息,输出样例如下:

            Java程序设计,张三著,45元,可借

            Java核心技术,李四著,50元,可借

            Java程序设计,王五著,38元,未还

(3)    创立一个Reader类的实例oneBeautifulGirl,她先在myLittleLibrary中查找?

Java程序设计?

(4)    oneBeautifulGirl借了张三著的那一本书。

现在显示图书馆中所有图书的信息.

(5)    oneBeautifulGirl把书还了,再次显示图书馆中图书信息。

 package图书管理系统;

importjava.util.Scanner;

publicclassTestBook{//测试类,检测程序实例化

publicstaticvoidmain(String[]agrs){

Libraryall[]=newLibrary[3];//总共有三本书

Libraryleft[]=newLibrary[1];//每次借阅一本

all[0]=newLibrary("Java程序设计","张三著",45.0,"No.1");

all[1]=newLibrary("Java核心技术","李四著",50.0,"NO.2");

all[2]=newLibrary("Java程序设计","王五著",38.0,"No.3");

//书的信息〔书名,作者,价格,书号〕

Readerr=newReader("oneBeautifulGirl",11101010,"计科",1);

//借书人的信息(姓名,学号,专业,班级)

r.FindBook(all);//找书

r.GetAllBook(left);//自己拥有的书

r.BorrowBook(all,left);//借书

r.ReturnBook(all,left);//还书

}

}

classLibrary{//图书馆类

StringName;//书的属性〔书名,作者,价格,书号〕

StringAuthor;

StringNumber;

doublePrice;

publicintnum;

publicLibrary(Stringname,Stringauthor,doubleprice,Stringnumber){

Name=name;

Author=author;

Price=price;

Number=number;

}

publicvoidshowBookInfo(){

System.out.println("**************************");

System.out.println("书名:

"+Name);

System.out.println(""+Author);

System.out.println("价格:

"+Price);

System.out.println("书号:

"+Number);

System.out.println("**************************");

}}

classReader{//借书者类

Scannerscan=newScanner(System.in);

Stringnames;//借书人的信息属性

intnumber;//姓名,学号,专业,班级

Stringgrade;

intclasses;

intscore=0;

Reader(Stringn,intnum,Stringg,intc){

this.names=n;

this.number=num;

this.grade=g;

this.classes=c;

}

voidFindBook(Library[]all){//查书

for(inti=0;i<3;i++)

all[i].showBookInfo();

}

voidGetAllBook(Library[]left){

for(inti=0;i<1;i++){//借阅哪本书

if(left[i]!

=null)

left[i].showBookInfo();

}

}

voidBorrowBook(Library[]all,Library[]left){//借书

System.out.println("请输入您要查找的书名:

");

Stringk=scan.next();

inti;

for(i=0;i<10;i++){

if(k.equals(all[i].num)){

all[i].showBookInfo();

break;

}

}

System.out.println("你要借吗?

请输入1,表示借。

");

intj;

j=scan.nextInt();

if(j==1){

System.out.println("借阅成功");

left[score]=all[i];

score+=1;

}

if(score<2){

System.out.println("您还可以借阅"+(1-score)+"本");

}else{

System.out.println("对不起,一个人只能借1本");}}

voidReturnBook(Library[]all,Library[]left){//还书

System.out.println("请输入您要还的书的书号");

intn=scan.nextInt();

for(inti=0;i<3;i++){

if(n==all[i].num){

for(intj=0;j<1;j++){

if(left[j]==all[i]){

left[j]=null;

System.out.println("还书成功");

}}}}}}

package练习;

importjava.awt.*;

importjava.awt.event.*;

importjavax.swing.*;

publicclassCalButtons{

@SuppressWarnings("serial")

classCalButtonPaneextendsJPanelimplementsActionListener{

String[]keys={"7","8","9","/","4","5","6",

"*","1","2","3","-","0",".","=","+"};

JButton[]keyb=newJButton[keys.length];

JTextFieldt;

JButtonclear;

doublesum=0,num;

inti=0;

intj=0,l,action;

Stringshow="";

CalButtonPane(JTextFieldt){

super(newGridLayout(6,6,8,8));

this.t=t;

for(inti=0;i

keyb[i]=newJButton(keys[i]);

keyb[i].addActionListener(this);

this.add(keyb[i]);

}

clear=newJButton("Clear");

clear.addActionListener(this);

keyb[0].addActionListener(this);

}

classCalculatorextendsJFrame{

JPanelp;

JTextFieldt;

CalButtonPanecp;

publicCalculator(){

super("Java计算器");

setDefaultCloseOperation(EXIT_ON_CLOSE);

calInit();

Containercc=getContentPane();

cc.setLayout(newBorderLayout());

cc.add(t,"North");

cc.add(cp,"Center");

cc.add(cp.clear,"South");

this.setLocation(300,200);

this.pack();

this.setResizable(false);

th

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

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2