Java基础知识考点Java开卷考试_第1页
Java基础知识考点Java开卷考试_第2页
Java基础知识考点Java开卷考试_第3页
Java基础知识考点Java开卷考试_第4页
Java基础知识考点Java开卷考试_第5页
免费预览已结束,剩余7页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实用文档开卷考试,共2个小时,要求卷面整洁,书写清晰。一判断题10分,每题1分在编程时编写过多的注释,会使编译之后生成的程序文件变大。(错)放心,编译器会删除所有的注释。所以,哪怕你在程序中写了一部长篇小说,也不会拖 慢程序的运行速度。一个Java源文件中只能定义一个公有类,并且类名必须与文件名一致。(对). 通过在程序中引入 “import javax.swing.*; ”语句,就可以使用 javax.swing包中的所有类(包括其嵌套的子包中的类)。(错)要使用嵌套子包中的类,必须再次添加 import子句J2SE的功能是 J 2 ME的一个子集。 (错)Java规定所有的方法都必须放到某

2、个类中,不存在独立于类的方法。(对)java中所有类是java.lang.Object类的子类(对)Swing是一套GUI组件,采用了新的思路设计Java应用程序的界面,它完全地替换掉了原有的AWT。(错)Swing仍然使用AWT的事件模型,并非完全抛弃。值得注意的NetBeans 6.9.1完成最新的更新组件后,创建Java桌面应用程序时,有了一个 新的提示消息框:二简答题40分,每题5分,共8个小题。现代编程语言有两种主要的类型:一种是“ 编译型”的,比如 C ,程序源码必须经过编译才能运行;另一种是“解释型”的,这种类型的语言(比如早期的 Basic )通常都 拥有一个交互环境,用户输入

3、一句代码计算机就执行一句代码。Java属于上述哪种类型?如果你认为Java不属于上述任何一种类型,那么它是不是一种新的编程语言类型?Java源程序需要编译,但运行时需要即时“解释”为本地 CPU能执行的机器指令,所以 它不属于“纯”的编译型或解释型,而是一种混合类型。Java中有两个关键字:void和null ,它们有什么区别?void是无类型,null是空值,一个是对返回类型来说,一个对值来说的。Void表示这个方法执行结束后不返回任何值。void : Public void sort();表示方法没有返回值Null表示一个对象为null,就是没有分配内存,没有初始化。3.简述“类(Clas

4、s)"、"类库(Class Library)"、"包(Package) "、" Jar 文件” 这四个概念间的联系。类库其实是一个“统称”,它是类的集合。包则是类库的组织形式,它类似于C+中的namespace,可以解决类的同名问题。Jar则是一个采用Zip格式压缩的文件包,主要是为了方便 Java组件的复用,简化Java 应用程序的部署和发布。Jar包中可以保存任意类型的多个文件和多级嵌套的文件夹。比如 JDK就包容了不少Jar压缩包,你可以使用解压缩工具(比如 WinRAR)去查看它的内容。可以把Jar文件看成是Java类库的一个

5、物理“载体”,之所以称其为“物理”的,是因为我们 可以在计算机中直接“看见”并“操作”它。在一个很大的循环(比如循环100000次)中,如果需要进行大量字符串的连接操作,通常人们会使用 StringBuffer (或 StringBuilder)而不是 String类型,请解释这么做的理由。StringBuffer可存放允许修改的字符串,String对一串字符进行操作,不可变类。StringBuffer内部结构是数组,字符可以动态改变,String是final类型,不可改变。因为String的对象是不能修改的,进行加操作,会产生新的对象,在很大的循环中这样做会浪费内存空间。而 StringBu

6、ffer是对同一个内存对象,进行修改,节省内存,增加效率。现有两个长度不同的数组:int arrl = new int10;int arr2 = new int100;那么以下语句能通过编译吗?arrl = arr2;如果你认为可以通过编译,得到这个结论的依据是什么?如果不能通过编译,你认为其原因是什么?可以。因为哪怕是基本类型的数组,数组本身也是引用的,用 二号时,只是将一个数组的 地址,指向另一个,并不是进行复制。请看以下代码:double di = 100.1;double d2 = 1001/10;System.out.println(d1 = d2);/ 输出:false明明d1与d

7、2是相等的,为什么程序运行时会输出一个让人意外的结果:false ?Double d2=1001/101001和10都是int型 它们相除得出一个 int型100前面用double类型 所以是100.0所以的d1和d2不相等。请看以下示例代码:String s1 = "Hello"String s2 = "Hello"System.out.println(s1 = s2); 输出:trueString s3 = new String("Hello");String s4 = new String("Hello");

8、System.out.println(s3 = s4); 输出:false请解释一下为什么上述代码中“System.out”两句代码输出完全不同的结果?请看代码String s="北京"s=s+"奥运会"请问上面代码产生几个String对象3个请看代码short s=1;short t=s+1;以上代码是否可以编译,如果不能,请说明原因不能,1是int型 s为short型 都转换为int型 short t= (short) (s+1)谈谈你对interface的理解和应用。接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可

9、通过实现这样的接口而获得。接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义static final成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换, instanceof运算符可以用来决定某对象的类是否实现了接口。三简单编程题30分,每题5分,共6个小题。以所有学习过程中练习过的作业为原型,注意适当的变化和新要求。试凑法、迭代法、最

10、大最小值、打印图形、求素数、排序 等。1 .编写一个程序,用户输入任何一个字符串之后,反转输出其结果。其运行结果如下所示:请输入一个字串:我在学习 Java程序设计,您输入了:计设序程 avaJ习学在我package fei;public class fanchuan public static void main(String口 args) String s="计设序程avaJ习学在我"char array尸s.toCharArray();for (int i=array. length -1;i>=0;i-)System. out .println(s.charA

11、t(i);package fei;import java.util.Scanner;public class Fanchuan2 public static void main(String口 args) Scanner sc= new Scanner(System. in ); / System.outString word = sc.nextLine();System. out .println(word);StringBuffer sbb = new StringBuffer(word);System. out.println(sbb.reverse().toString();自定cha

12、r a=word.toCharArray();for (int i=a. length -1;i>=0;i-)System. out .println(ai);把a里的东西反序赋给bchar b= new char a. length ;for (int j=0,i=a. length -1;j<a. length ;j+,i-)System. out.println( "j=" +j+ ",i=" +i);b昨ai;String end = new String(b);System. out .println(end);2 .请编写一个方法

13、,其声明如下:public static int口 getRandomizeNumbers(int begin, int end, int count) 此方法将生成一个数组,包容count个begin,end)范围内的随机整数.package fei;public class Zuoye2 public static int getRandomizeNumbers( int begin, int end, int count) int a= null ;a=new int count;for (int i=0;i<count;i+)ai=begin+( int )(Math. rand

14、om()*(end-begin);return a;public static void main(String口 args) 3 2) 编写一个方法,它接收一个int数组作为参数,外界只需调用一次这个方法,可以马上得到这个数组的最大值、最小值和平均值信息。class ArrayInfopublic int max=0;public int min=0;public double average=0;定义好了 ArrayInfo类后,此方法就很容易编写了:public static ArrayInfo getArrayInfo(int arr) ArrayInfo obj = new Arra

15、yInfo();int sum = 0;obj.max = obj.min = arr0;for (int value : arr) if (value > obj.max) obj.max = value;if (value < obj.min) obj.min = value;sum += value;obj.average = (double) sum / arr.length;return obj;(4)数学中,一个复数包容着一个实部( Real)和一个虚部(Imaginary)。请设计一个Complex类,它的实例代表一个复数,并且用户可以这样使用它:创建一个实部为3,虚

16、部为4的复数Complex obj=new Complex(3,4);/Complex对象具备按照数学中复数的习惯表示形式输出的能力。System.out.println(obj); 输出:3+4i送分题,覆盖一下toString()方法就行了。class Complex public double real;public double imaginary;public Complex(double realValue, double imaginaryValue) real = realValue;imaginary = imaginaryValue;public String toStri

17、ng() return real + "+" + imaginary + "i" 四综合编程题20分类,方法,继承等。一个图书管理系统的面向对象设计方案:Book代表书,有 “Name (书名)"、"Author (作者名)"、"Price (单价) 和“IsBorrowed (是否被借出)"四个属性。类Library代表图书馆,其内部字段 books用于保存图书馆中所有的书。它的 FindBook()方法依据书名查找同名的书(可能有多本)。另一个 Get AllBooks()方法获取 馆藏所有书的详细信

18、息。“ReturnBook (还书)”和类Reader代表读者,Name字段代表其姓名,读者可以“BorrowBook (借书)请编程完成以下工作:1. 用Java编程实现上述 3个类。(15分)5分),其中预存有以下 3本书:2. 在main()方法内书写以下测试代码:(1)创建一个 Library 类的实例 myLittleLibraryJava程序设计,张三著,45元Java核心技术,李四著,50元Java程序设计,王五著,38元3. )显示图书馆中所有图书的信息,输出样例如下:Java程序设计,张三著,45元,可借Java核心技术,李四著,Java程序设计,王五著,(3)创建一个Rea

19、der类的实例程序设计50元,可借38元,未还oneBeautifulGirl ,她先在 myLittleLibrary中查找Java(4) oneBeautifulGirl借了张三著的那一本书。现在显示图书馆中所有图书的信息(5) oneBeautifulGirl把书还了,再次显示图书馆中图书信息。package图书管理系统; import java.util.Scanner;public测程序实例化classTestBook测试类,检public static void main(String口 agrs)Library3;Library1;Library总共有三本书Library每次借阅

20、一本all0=new Library("Javaall1=new Library(" Javaall2=new Library("Javaall=newleft=new程序设计","张三著",45.0,"No.1");核心技术","李四著",50.0,"NO.2");程序设计","王五著", 38.0,"No.3");书的信息(书名,作者,价格,书号)Reader r=new Reader("oneBeau

21、tifulGirl”,11101010,"计科”,1);借书人的信息(姓名,学号,专业,班级)找书自己拥有的书/借书还书图书馆类书的属性(书名,作者,价格,书号)r.FindBook(all);r.GetAllBook(left);r.BorrowBook(all,left); r.ReturnBook(all,left);class Library String Name;String Author;String Number;double Price;public int num;public Library(String name, String author, double

22、price,String number) Name=name;Author=author;Price=price;Number=number;public void showBookInfo()借书者类/借书人的信息属性/姓名,学号,专业,班级查书借阅哪本书System.out.println("*");System.out.println("书名:"+Name);System.out.println("作者:"+Author);System.out.println("价格:"+Price);System.out.

23、println("书号:"+Number);System.out.println("*");class ReaderScanner scan=new Scanner(System.in);String names;int number;String grade;int classes;int score=0;Reader(String n,int num,String g,int c) s=n;this.number=num;this.grade=g; this.classes=c;voidFindBook(Library口 all)f

24、or(int i=0;i<3;i+)alli.showBookInfo();void GetAllBook(Library口 left)for (int i = 0; i < 1; i+) if(lefti!=null)lefti.showBookInfo();void BorrowBook(Library口 all,Library口 left)借书System.out.println("请输入您要查找的书名:");String k=scan.next(); int i;for( i=0;i<10;i+)if(k.equals(alli.num) alli

25、.showBookInfo(); break; System.out.println("你要借吗?请输入 1,表示借。"); int j;j=scan.nextInt();if(j=1)System.out.println("借阅成功");leftscore=alli;score+=1;if(score<2)System.out.println("您还可以借阅"+(1-score)+"本"); elseSystem.out.println("对不起,一个人只能借1 本"); voidRet

26、urnBook(Library口 all,Library口 left)还书System.out.println("请输入您要还的书的书号");int n=scan.nextInt();for(int i=0;i<3;i+)if(n=alli.num)for(int j=0;j<1;j+)if(leftj=alli)leftj=null;System.out.println("还书成功"); package 练习;import java.awt.*;import java.awt.event.*;import javax.swing.*;pub

27、lic class CalButtons SuppressWarnings("serial")class CalButtonPane extends JPanel implements ActionListenerString口 keys="7","8","9","/","4","5","6","*","1","2","3","-",&q

28、uot;0",".","=","+"JButton口 keyb=new JButtonkeys.length;JTextField t;JButton clear;double sum =0,num;int i=0;int j=0,l,action;String show =""CalButtonPane (JTextField t)super(new GridLayout(6,6,8,8);this.t=t;for(int i=0;i<keys.length;i+) keybi=new JButt

29、on(keysi);keybi.addActionListener(this); this.add(keybi);clear=new JButton("Clear");clear.addActionListener(this);keyb0.addActionListener(this);class Calculator extends JFrameJPanel p;JTextField t;CalButtonPane cp;public Calculator()super("Java 计算器");setDefaultCloseOperation(EXIT

30、_ON_CLOSE);calInit();Container cc=getContentPane();cc.setLayout(new BorderLayout();cc.add(t,"North");cc.add(cp,"Center");cc.add(cp.clear,"South");this.setLocation(300,200);this.pack();this.setResizable(false);this.setVisible(true);void calInit()t=new JTextField("0.

31、0");t.setHorizontalAlignment(JTextField.RIGHT); cp=new CalButtonPane(t);public void actionPerformed(ActionEvent e)JButton o=(JButton)e.getSource();System.out.println("Btn 被点击了 ");if(e.getSource() = keyb0)/ btn 7show +="7";System.out.println("7 被点击了 ");t.setText(sho

32、w);String s=o.getText();char c=s.charAt(0);num=Double.parseDouble(t.getText();if(c='+')实用文档加法运算if(j=0)sum=num;else if(action=1)sum+=num;t.setText(sum+"");j+; i=0;action=1;else if(c='-')减法运算if(j=0)sum=num;else if(action=2)sum-=num;t.setText(sum+"");j+;i=0;action=2;else if(c='*')乘法运算if(j=0)sum=num;else if(action=3)sum*=num;t.setText(sum+"");j+;i=0;action=3;else if(c='/')除法运算if(j=0) sum=num;else if(action=4)sum/=num;t.setTe

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论