Java基础知识考点Java开卷考试
开卷考试,共2个小时,要求卷面整洁,书写清晰。
一判断题10分,每题1分
在编程时编写过多的注释,会使编译之后生成的程序文件变大。(错)
放心,编译器会删除所有的注释。所以,哪怕你在程序中写了一部长篇小说,也不会拖慢程序的运行速度。
一个Java 源文件中只能定义一个公有类,并且类名必须与文件名一致。(对)
.通过在程序中引入“import javax.swing.*; ”语句,就可以使用javax.swing 包中的所有类(包括其嵌套的子包中的类)。(错)
要使用嵌套子包中的类,必须再次添加import子句
J2SE 的功能是J 2 ME 的一个子集。(错)
Java 规定所有的方法都必须放到某个类中,不存在独立于类的方法。(对)
java中所有类是https://www.360docs.net/doc/9a12176094.html,ng.Object 类的子类(对)
Swing是一套GUI组件,采用了新的思路设计Java应用程序的界面,它完全地替换掉了原有的AWT。(错)
Swing仍然使用AWT的事件模型,并非完全抛弃。
值得注意的NetBeans 6.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)”、“类库(Class Library)”、“包(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 = new int[10];
int[] arr2 = new int[100];
那么以下语句能通过编译吗?
arr1 = arr2;
如果你认为可以通过编译,得到这个结论的依据是什么?如果不能通过编译,你认为其原因是什么?
可以。因为哪怕是基本类型的数组,数组本身也是引用的,用=号时,只是将一个数组的地址,指向另一个,并不是进行复制。
请看以下代码:
double d1 = 100.1;
double d2 = 1001/10;
System.out.println(d1 == d2); // 输出:false
明明d1 与d2 是相等的,为什么程序运行时会输出一个让人意外的结果:false ?
Double d2=1001/10 1001和10都是int型它们相除得出一个int型100
前面用double类型所以是100.0 所以的d1和d2不相等。
请看以下示例代码:
String s1 = "Hello";
String s2 = "Hello";
System.out.println(s1 == s2); // 输出:true
String s3 = new String("Hello");
String s4 = new String("Hello");
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)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义static final成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instanceof 运算符可以用来决定某对象的类是否实现了接口。
三简单编程题30分,每题5分,共6个小题。
以所有学习过程中练习过的作业为原型,注意适当的变化和新要求。
试凑法、迭代法、最大最小值、打印图形、求素数、排序等。
1.编写一个程序,用户输入任何一个字符串之后,反转输出其结果。其运行结果如下所示:
请输入一个字串:我在学习Java 程序设计,您输入了:计设序程avaJ 习学在我
package fei;
public class fanchuan {
p ublic static void main(String[] args) {
S tring s="计设序程avaJ 习学在我";
c har array[]=s.toCharArray();
f or(int i=array.length-1;i>=0;i--){
System.out.println(s.charAt(i));
}}}
package fei;
import java.util.Scanner;
public class Fanchuan2 {
p ublic static void main(String[] args) {
Scanner sc= new Scanner(System.in);// System.out
String word = sc.nextLine();
System.out.println(word);
S tringBuffer sbb = new StringBuffer(word);
S ystem.out.println(sbb.reverse().toString());//自定
c har a[]=word.toCharArray();
f or(int i=a.length-1;i>=0;i--){
System.out.println(a[i]);
}//把a里的东西反序赋给b
c har[] b=new char[a.length];
f or(int j=0,i=a.length-1;j System.out.println("j="+j+",i="+i); b[j]=a[i];} S tring end =new String(b); S ystem.out.println(end);}} 2.请编写一个方法,其声明如下: 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){ i nt[] a=null; a=new int[count]; for(int i=0;i a[i]=begin+(int)(Math.random()*(end-begin)); } return a; } p ublic static void main(String[] args) { }} (2) 编写一个方法,它接收一个int数组作为参数,外界只需调用一次这个方法,可以马上得到这个数组的最大值、最小值和平均值信息。 class ArrayInfo { public int max=0; public int min=0; public double average=0; } 定义好了ArrayInfo类后,此方法就很容易编写了: public static ArrayInfo getArrayInfo(int[] arr) { ArrayInfo obj = new ArrayInfo(); int sum = 0; obj.max = obj.min = arr[0]; 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,虚部为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 toString() { return real + "+" + imaginary + "i"; } } 四综合编程题20分 类,方法,继承等。 一个图书管理系统的面向对象设计方案: Book 代表书,有“Name (书名)” 、“Author (作者名)” 、“Price (单价)” 和“IsBorrowed (是否被借出)” 四个属性。 类Library 代表图书馆,其内部字段books 用于保存图书馆中所有的书。它的FindBook() 方法依据书名查找同名的书(可能有多本)。另一个Get AllBooks() 方法获取馆藏所有书的详细信息。 类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 图书管理系统; import java.util.Scanner; public class TestBook { //测试类,检测程序实例化 public static void main(String[] agrs){ Library all[]=new Library[3]; //总共有三本书 Library left[]=new Library[1]; //每次借阅一本 all[0]=new Library("Java 程序设计","张三著",45.0,"No.1"); all[1]=new Library(" Java 核心技术","李四著",50.0,"NO.2"); all[2]=new Library("Java 程序设计","王五著", 38.0,"No.3" ); //书的信息(书名,作者,价格,书号) Reader r=new Reader("oneBeautifulGirl",11101010,"计科",1); //借书人的信息(姓名,学号,专业,班级) r.FindBook(all); //找书 r.GetAllBook(left); //自己拥有的书 r.BorrowBook(all,left); // 借书 r.ReturnBook(all,left); //还书 } } class Library { //图书馆类 S tring Name; //书的属性(书名,作者,价格,书号) S tring Author; S tring Number; d oubl e Price; p ublic int num; public Library(String name, String author, double price,String number) { N ame=name; A uthor=author; P rice=price; N umber=number; } public void showBookInfo(){ System.out.println("**************************"); System.out.println("书名:"+Name); System.out.println("作者:"+Author); System.out.println("价格:"+Price); System.out.println("书号:"+Number); System.out.println("**************************"); }} class Reader{ //借书者类 S canner 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){ https://www.360docs.net/doc/9a12176094.html,s=n; this.number=num; this.grade=g; this.classes=c; } v oid FindBook(Library[] all){ //查书for(int i=0;i<3;i++) all[i].showBookInfo(); } v oid GetAllBook(Library[] left){ for (int i = 0; i < 1; i++) { //借阅哪本书 if(left[i]!=null) left[i].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(all[i].num)){ all[i].showBookInfo(); break; } } System.out.println("你要借吗?请输入1,表示借。"); int j; 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本");} } void ReturnBook(Library[] all,Library[] left){ //还书S ystem.out.println("请输入您要还的书的书号"); i nt n=scan.nextInt(); f or(int i=0;i<3;i++){ if(n==all[i].num){ for(int j=0;j<1;j++){ if(left[j]==all[i]){ left[j]=null; System.out.println("还书成功"); } }}}}} package 练习; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class CalButtons { @SuppressWarnings("serial") c lass CalButtonPane extends JPanel implements ActionListener{ String[] keys={"7","8","9","/","4","5","6", "*","1","2","3","-","0",".","=","+"}; JButton[] keyb=new JButton[keys.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 keyb[i]=new JButton(keys[i]); keyb[i].addActionListener(this); this.add(keyb[i]); } clear=new JButton("Clear"); clear.addActionListener(this); keyb[0].addActionListener(this); } class Calculator extends JFrame{ JPanel p; JTextField t; CalButtonPane cp; public Calculator(){ super("Java计算器"); setDefaultCloseOperation(EXIT_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.0"); t.setHorizontalAlignment(JTextField.RIGHT); cp=new CalButtonPane(t); }} p ublic void actionPerformed(ActionEvent e){ JButton o=(JButton)e.getSource(); System.out.println("Btn被点击了"); if(e.getSource() == keyb[0]){ // btn 7 show +="7"; System.out.println("7被点击了"); t.setText(show); } 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; j++;i=0;action=4; } else if(c=='='){ switch(action){ case 1:t.setText((sum+=num)+"");break; case 2:t.setText((sum-=num)+"");break; case 3:t.setText((sum*=num)+"");break; case 4:t.setText((sum/=num)+"");break; } t.setText(sum+""); i=0;j=0;action=0; } else if(c=='.'){ if(t.getText().indexOf(".")==-1) t.setText(t.getText() +c); } else if(c=='C'){ i=0;j=0;sum=0;action=0; t.setText("0"); } else{ if(i==0)t.setText(""); t.setText(t.getText() +c); i++; } } } p ublic static void main(String[] agrs){ new Calculator(); } } /*假如有500个小孩,手拉手拉成一圈,从其中一个小朋友开始一次编号为1-500, 从1号小朋友开始循环1到3报数,数到3的小朋友退出,编写一个java应用程序,计算出 最后一个小朋友的号码是多少? */ public class Count3Quit{ p ublic static void main(String[] args){ boolean[] arr = new boolean[500]; for(int i=0;i arr[i] = true; } int leftCount = arr.length; int countNum =0; int index = 0; while(leftCount > 1){ if(arr[index] == true){ countNum++; if(countNum == 3){ countNum=0; arr[index]=false; leftCount--;}} index ++; if(index == arr.length){ index = 0;}} for(int i=0;i if(arr[i] == true){ System.out.println(i); } }}} 1. 有以下程序片段,下列哪个选项不能插入到行1。( D ) 1. 2.public class Interesting{ 3.//do sth 4. } (只能有一个public修饰的class) A、import java.awt.*; B、package mypackage; C、class OtherClass{ } D、public class MyClass{ } 2. 以下哪项是接口的正确定义?( B D ) A、interface B { void print(){};} (接口里的方法都是抽象的,不能有方法体) B、abstract interface B { void print() ;} C、abstract interface B extends A1,A2 //A1、A2为已定义的接口 { abstract void print(){ };} (同上) D、interface B { void print();} 1.接口可以声明为public(公共)或默认的访问权限。接口隐含表明是抽象的(abstract)的。 2.接口的方法默认即为public(公共)且是abstract(抽象)的. 3.接口中的变量默认即为public(公共), static(静态) and final(最终的)。 接口声明编译器如何解释呢 public interface Searchable {}public abstract interface Searchable {} abstract interface Searchable {}abstract interface Searchable {} interface Searchable {}abstract interface Searchable {} 一、选择题(每题2分,共40分) 1、下面哪个是Java语言中正确的标识符( C ) A、3com B、import C、that D、this 2、下面哪个语句(初始化数组)是不正确的:(B) A.int x[] = {1,2,3}; B.int x[3] = {1,2,3}; C.int[] x = {1,2,3}; D.int x[] = new int[]{1,2,3}; 3、下述概念中不属于面向对象方法的是( D )。 A.对象、消息 B.继承、多态 C.类、封装 D.过程调用 4、下面的代码段中,执行之后i 和j 的值是什么? ( B ) int i = 1; int j; j = i++*2+3*--i; A.1, 2 B.1, 5 C.2, 1 D.2, 2 5、下面哪条语句把方法声明为抽象的公共方法?(B ) A.public abstract method(); B.public abstract void method(); C.public abstract void method(){} D.public void method() extends abstract; 6、下面关于java中类的说法哪个是不正确的?( C ) A.类体中只能有变量定义和成员方法的定义,不能有其他语句。 B.构造函数是类中的特殊方法。 C.类一定要声明为public的,才可以执行。 D.一个java文件中可以有多个class定义。 7、假设A类有如下定义,设a是A类的一个实例,下列语句调用哪个是错误的?( C ) class A { int i; static String s; void method1() { } static void method2() { } } A、System.out.println(a.i); B、a.method1(); C、A.method1(); D、A.method2() 8、容器被重新设置大小后,哪种布局管理器的容器中的组件大小不随容器大小 的变化而改变? ( B ) A、CardLayout B、FlowLayout C、BorderLayout D、GridLayout 9、下列哪个用户图形界面组件在软件安装程序中是常见的? ( C ) A.滑块 B.进度条 C.按钮 D.标签 J a v a编程基础知识点汇总及习题集答案 集团文件发布号:(9816-UATWW-MWUB-WUNN-INNUL-DQQTY- 目录 第一章 Java入门 (2) 第二章 Java基础 (5) 第三章条件转移 (14) 第四章循环语句 (20) 第五章方法 (26) 第六章数组 (33) 第七章面向对象 (42) 第八章异常 (63) 第一章 Java入门 知识点汇总 1、JAVA 三大体系 Java SE:(J2SE,Java2 Platform Standard Edition,标准版),三个平台中最核心的部分,包含Java 最核心的类库。 JavaEE:(J2EE,Java 2 Platform, Enterprise Edition,企业版),开发、装配、部署企业级应用,包含Servlet、JSP、JavaBean、JDBC、EJB、Web Service等。 Java ME:(J2ME,Java 2 Platform Micro Edition,微型版),用于小型电子设备上的软件开发。 2、JDK,JRE,JVM的作用及关系作用 ★JVM:保证Java语言跨平台 ★JRE:Java程序的运行环境 ★JDK:Java程序的开发环境 关系 ★JDK:JRE+工具 ★JRE:JVM+类库 3、JDK环境变量配置 path环境变量:存放可执行文件的存放路径,路径之间 用逗号隔开 classpath环境变量:类的运行路径,JVM在运行时通过classpath加载需要的类 4、重点掌握两个程序 :Java编译器工具,可以将编写好的Java文件(.java)编译成Java字节码文件(.class); :Java运行工具,启动Java虚拟机进程,运行编译器生成的字节码文件(.class) 5、一切程序运行的入口public static void main (String args []){ World!”); } 课堂笔记 一、选择题48分每题2分 1.面向对象的三大特性不包括() A 封装 B 继承 C 多态 D 消息通信 2.下列声明哪个是错误的() A int i = 10; B float f = 1.1; C double d = 34.4; D long m = 4990; 3.程序的执行结果是() public class Test { public static void main(String [] args){ System.out.println(“”+'a'+1); } } A 98 B a 1 C 971 D 197 4.程序的执行结果是() public class Test { int x; public static void main(String [] args){ Test t = new Test(); t.x=5; change(t); System.out.println(t.x); } public static void change(Test t){ t.x=3; } } A 5 B 3 C 编译出错 D 以上答案都不对 5.关于类与对象说法错误的是() A 类是模板,对象是产品 B 人是类,男人是对象 C 类是对某一事物的描述是抽象的,对象是实际存在的该类事物的个体 D 汽车设计图是类,制造的若干汽车是对象 6.关于构造函数说法错误的是() A 构造函数名与类相同 B 构造函数无返回值,可以使用void 修饰 C 构造函数在创建对象时被调用 D 在一个类中如果没有明确的给出构造函数,编译器会自动提供一个构造函数7.程序的执行结果是() public class Test { public static void main(String [] args){ String str1= new String("abc"); String str2 = new String("abc"); String str3=str1; if(str1.equals(str2)){ System.out.println("true"); }else{ System.out.println("false"); } if(str1==str3){ Java 一章至五章考试 一. 填空题(8 分) 1. 面向对象的三大原则是( 封装),( 继承) 和( 多态).2 分 2. 如果想在对象实例化的同时就初始化成员属性,则使用( 构造函数).2 分 3. ( 实体) 方法和( 构造) 方法不能修饰为abstract ?2分 二.选择题(60 分) 1) 在Java 语言中,下列(a,d )是不满足命名规范的变量名。(选择二项) a) 姓名 b) $Name c) _instanceof d) instanceof 2) 下列Java 代码片段的输出结果是( a ) 。 char c='a'; int i=c; float f=i; byte b=(byte)c; System.out.println(c+","+i+","+f+","+b); a) 编译错误 b) a,97,97,97 c) a,97,97.0,97 d) a,97,97.0f,97 3) 下列Java 代码中,空白处的代码是(b,c )。( 选择两项) public interface Fee{ public float calLabFee(float unitPrice, float time); } public class FeeImpl implements Fee { public float calLabFee(float unitPrice, float time){ return unitPrice * time; } } public class FeeInterfaceTest { public static void main(String[] args){ ________________ Float labFee = fee.calLabFee(400.00,5); } } 新员工考试 一、选择题(共30题,每题 2 分) 1. 下面哪些是合法的标识符?(多选题) A. $persons B. TwoUsers C. *point D. this E. _endline 答案A,B,E 分析Java 的标识符可以以一个Unicode 字符,下滑线(_),美元符($)开始,后续字符可以是前面的符号和数字,没有长度限制,大小写敏感,不能是保留字(this 保留字)。 2. 哪些是将一个十六进制值赋值给一个long 型变量?(单选题) A. long number = 345L; B. long number = 0345; C. long number = 0345L; D. long number = 0x345L 答案D 分析十六进制数以Ox开头,Io ng型数以L (大小写均可,一般使用大写,因为小写的 l 和数字1 不易区分)。 3. 下面的哪些程序片断可能导致错误? (多选题) A. String s = "Gone with the wind"; String t = " good "; String k = s + t; B. String s = "Gone with the wind"; String t; t = s[3] + "one"; C. String s = "Gone with the wind"; String standard = s.toUpperCase(); D. String s = "home directory"; String t = s - "directory"; 答案B,D 分析 A:String 类型可以直接使用+进行连接运算。 B:String 是一种Object ,而不是简单的字符数组,不能使用下标运算符取其值的某个元 素,错误。 C:toUpperCase()方法是String 对象的一个方法,作用是将字符串的内容全部转换为大写并返回转换后的结果(String 类型)。 D:String 类型不能进行减(- )运算,错误。 4. point x 处的哪些声明是句法上合法的? (多选题) cIass Person { private int a; pubIic int change(int m){ return m; } } pubIic cIass Teacher extends Person { public int b; Java试题 1) java程序中,main方法的格式正确的是()。(选择一项) a)static void main(String[] args) b)public void main(String[] args) c)public static void main(String[]s) d)public static void main(String[] args) 2)给定java代码,如下: public byte count(byte b1,byte b2){ return______; } 要使用这段代码能够编译成功,横线处可以填入()。(选择一项)a)(byte) (b1-b2) b)(byte) b1-b2 c) b1-b2 d) (byte) b1/b2 3)在Java中,在包下定义一个类,要让包下的所有类都可以访问这个类,这个类必须定义为()。(选择一项) a)protected b)private c)public d)friendly 4)在Java中,下列()语句不能通过编译。 (选择一项) a) String s= “join”+ “was”+ “here”; b) String s= “join”+3; “”+new Person() toString() c) int a= 3+5 d) float f=5+; double float 6)给定java代码如下,运行时,会产生()类型的异常。(选择一项) String s=null; (“abc”); a)ArithmeticException b)NullPointerException c)IOException d)EOFException 已到文件尾,再读取抛出 7) 在java中,()对象可以使用键/值的形式保存数据。(选择一项) a)ArrayList List 有序可重复 b) HashSet Set 无序不可重复同一对象是重复 的 c) HashMap Map(key/value)重复定义:hashCode、 equals(业务) d) LinkedList List 8)给定如下java代码,编译运行之后,将会输出()。 public class Test{ public static void main(String args[]){ int a=5; Java试题 一单项选择 1)在Java中,在包com.db下定义一个类,要让包com.util下的所有类都可以访问这个类,这个类必须定义为()。() a)protected b)private c)public d)friendly 2)在Java中,下列()语句不能通过编译。(选择一项) a) String s= “join”+ “was”+ “here”; b) String s= “join”+3; c) int a= 3+5 d) float f=5+5.5; 3)给定java代码如下,运行时,会产生()类型的异常。(选择一项) String s=null; s.concat(“abc”); a)ArithmeticException b)NullPointerException c)IOException d)EOFException 4) 在java中,()对象可以使用键/值的形式保存数据。(选择一项) a)ArrayList b) HashSet c) HashMap d) LinkedList 5)给定如下java代码,编译运行之后,将会输出()。 public class Test{ public staticvoid main(String args[]){ int a=5; System.out.println(a%2==1) ?(a+1) /2:a/2) ; } } (选择一项) a)1 b)2 c)2.5 d)3 6)以下Java语句中,String str = “123456789”;str =str.subString(1,3);执行后str中的值为。(选择一项) a) “23” b)“123” Java基础考试题 班级:__________ 姓名:___________ 日期:_____________ 一、笔试(45题,每题2分) 1) 分析下面的Java程序段,编译运行后的输出结果是()。 public class Test { public static void changeString(StringBuffer sb) { sb.append("stringbuffer2"); } public static void main(String[] args) { StringBuffer sb = new StringBuffer("stringbuffer1"); changeString(sb); System.out.println("sb = " + sb.toString()); } } A. sb = stringbuffer2stringbuffer1 B. sb = stringbuffer1 C. sb = stringbuffer2 D. sb = stringbuffer1stringbuffer2 2) 在Java中,包有多种用途,但不包含()。 A. 将类组合成较小的单元,便于使用 B. 有助于避免命名冲突 C. 有助于提高运行效率 D. 允许在更广的范围内保护类、数据和方法 3) 在Java中,如果要在字符串类型s="java"中,得到字母'v' 出现的位置,选()语句。 A)s.matches('v'); B)s.charAt('v'); C)s.indexOf('v'); D)s.substring('v'); 4)下列代码运行后,变量c的值是()。 int a=15,b=10; double c=a/b; a) 1.5 b) 1.0 c) 1 d) 0 5)main方法如下所示,该程序的运行结果是()。 public static void main(String [] args){ int i=0; System.out.print(i++); } a) 输出0 b) 输出1 c) 编译错误d) 运行时出现异常 《Java面向对象程序设计》 姓名: 一、判断题(15’) 1.Java程序里,创建新的类对象用关键字new,回收无用的类对象使用关键字free。错 finalize()方法 2.对象可以赋值,只要使用赋值号(等号)即可,相当于生成了一个各属性与赋值对象相同的新对象。错方法赋值采用相应的方法 3.有的类定义时可以不定义构造函数,所以构造函数不是必需要写的。对4.类及其属性、方法可以同时有一个以上的修饰符来修饰。对 5.Java的屏幕坐标是以像素为单位,容器的左下角被确定为坐标的起点错6.抽象方法必须在抽象类中,所以抽象类中的方法都必须是抽象方法。错7.Final类中的属性和方法都必须被final修饰符修饰。错 8.最终类不能派生子类,最终方法不能被覆盖。对 9.子类要调用父类的方法,必须使用super关键字。错 10.一个Java类可以有多个父类。错 二、选择题(30’) 1、关于被私有保护访问控制符private protected修饰的成员变量,以下说法正确的是(C) A.可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类 B.可以被两种类访问和引用:该类本身、该类的所有子类 C.只能被该类自身所访问和修改 D.只能被同一个包中的类访问 2、关于被私有访问控制符private修饰的成员变量,以下说法正确的是(C)A.可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类 B.可以被两种类访问和引用:该类本身、该类的所有子类 C.只能被该类自身所访问和修改 D.只能被同一个包中的类访问 3、关于被保护访问控制符protected修饰的成员变量,以下说法正确的是(D)A.可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类 B.可以被两种类访问和引用:该类本身、该类的所有子类 C.只能被该类自身所访问和修改 D.只能被同一个包中的类访问 4、下列关于修饰符混用的说法,错误的是(D) A.abstract不能与final并列修饰同一个类 B. abstract类中不可以有private的成员 C.abstract方法必须在abstract类中 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? //这是一个菲波拉契数列问题 public class lianxi01 { public static void main(String[] args) { System.out.println("第1个月的兔子对数: 1"); System.out.println("第2个月的兔子对数: 1"); int f1 = 1, f2 = 1, f, M=24; for(int i=3; i<=M; i++) { f = f2; f2 = f1 + f2; f1 = f; System.out.println("第" + i +"个月的兔子对数: "+f2); } } } 【程序2】 题目:判断101-200之间有多少个素数,并输出所有素数。 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。 public class lianxi02 { public static void main(String[] args) { int count = 0; for(int i=101; i<200; i+=2) { boolean b = false; for(int j=2; j<=Math.sqrt(i); j++) { if(i % j == 0) { b = false; break; } else { b = true; } } if(b == true) {count ++;System.out.println(i );} } System.out.println( "素数个数是: " + count); } } 考砸了,把做错的题目重新复习一下对应的知识点 一、单项选择(每题2.5分,20 * 2.5’=50’)A 1.下面哪种情况属于方法重载。 A)方法名相同,参数类型与个数不同 B)方法参数类型相同 C)方法参数个数相同 D)方法名相同,方法参数类型与个数也相同 2.你想用下面的代码查找数组最后一个元素的值,当你编译并运行它的时候,会发 生什么?C public class MyAr{ public static void main(String argv[]){ int[] i = new int[5]; System.out.println(i[5]); } } A).编译通过并输出0 B).编译通过并输出 null C).编译通过但发生运行时错误 D).编译出错 3.JFrame的默认布局管理器是什么?C 4.Frame 的默认布局是FlowLayout 5.JFrame的默认布局是BorderLayout A)FlowLayout B)GridLayout C)BorderLayout D)CardLayout 6.给定下面的类定义D class Base{ Base(int i){} } class DefCon extends Base{ DefCon(int i){ //XX } } 如果将标记//XX 的地方替换为下面的行,哪一行是独立合法的? A).super(); B).this(); C).this(99); D).s uper(99); 7.启动线程方法正确的是___D________。 A)run( )方法 B)suspend( )方法 C)stop( )方法 D)start( )方法 6、在Java中,调用Math.random() 方法可能返回的结果是(B) Math.random 返回的是一个double值此值大于0.0 且小于1.0 A)132.34 B)0.342 C)29.34E10 D) 1.0009 7、下面的哪一个声明是合法的?B A) public protected amethod(int i) B) public void amethod(int i) C) public void amethod(void) D) void public amethod(int i) 8、假设有以下Java代码:C import java.applet.*; import java.awt.*; public class My_Applet extends Applet { … } 如果要在HTML页中嵌入以上Applet,可按下面()方式完成。(选择一项) A) B) C) D) 9、在Java中,要想使只有定义该类所在的包内的类可以访问该类,应该用(A)关 键字。 A)不需要任何关键字 B)private C)final D)protected 10、下述哪些说法是正确的?A JA V A语言基础内部测试题 选择题(针对以下题目,请选择最符合题目要求的答案,针对每一道题目,所有答案都选对,则该题得分,所选答案错误或不能选出所有答案,则该题不得分。)(每题2分) 没有注明选择几项的,只选择一项 1、JAVA所定义的版本中不包括:() A、JAVA2 EE B、JAVA2 Card C、JAVA2 ME D、JAVA2 HE E、JAVA2 SE 2、下列说法正确的是() A、JAVA程序的main方法必须写在类里面 B、JAVA程序中可以有多个main方法 C、JAVA程序中类名必须与文件名一样 D、JAVA程序的main方法中如果只有一条语句,可以不用{}(大括号)括起来 3、Java中,在如下所示的Test类中,共有()个构造方法。 public class Test{ private int x; public Test(){ x=35; } public void Test(double f){ =(int)f; } public Test(String s){} } A、0 B、 1 C、 2 D、3 4、变量命名规范说法正确的是() A、变量由字母、下划线、数字、$符号随意组成; B、变量不能以数字作为开头; C、A和a在java中是同一个变量; D、不同类型的变量,可以起相同的名字; 5、下列javaDoc注释正确的是() A、/*我爱北京天安门*/ B、quals("john") C、"john" = "john" D、"john".equals(new String("john")) 6、下列输出结果是() int a = 0 ; while ( a < 5 ) { switch(a){ case 0: case 3 : a = a + 2; case 1 : case 2 : a = a + 3; default : a = a + 5; } } ( a ) ; A、0 B、5 C、10 D、其他 7、下列代码输出结果是( ) int i = 10; while ( i > 0 ){ i = i + 1; if ( i = =10 ){ break; } } A.while循环执行10次 B.死循环 C.循环一次都不执行 D.循环执行一次 8、下面有关for循环的描述正确的是() A、for循环体语句中,可以包含多条语句,但要用大括号括起来 B、for循环只能用于循环次数已经确定的情况 C、在for循环中,不能使用break语句跳出循环 D、for循环是先执行循环体语句,后进行条件判断 9、下列()属于引用数据类型(选择两项) A、String B、char C、用户自定义的Student类类型 一、选择题 1、下面哪个是Java语言中正确的标识符(a) A、3com B、import C、that D、this 2、下面哪个语句(初始化数组)是不正确的:(b) A.int x[] = {1,2,3}; B.int x[3] = {1,2,3}; C.int[] x = {1,2,3}; D.int x[] = new int[]{1,2,3}; 3、下述概念中不属于面向对象方法的是( a)。 A.对象、消息 B.继承、多态 C.类、封装 D.过程调用 4、下面的代码段中,执行之后i 和j 的值是什么? ( a ) int i = 1; int j; j = i++*2+3*--i; A.1, 2 B.1, 5 C. 2, 1 D. 2, 2 5、下面哪条语句把方法声明为抽象的公共方法?(a)A.public abstract method(); B.public abstract void method(); C.public abstract void method(){} D.public void method() extends abstract; 6、下面关于java中类的说法哪个是不正确的?(c) A.类体中只能有变量定义和成员方法的定义,不能有其他 语句。 B.构造函数是类中的特殊方法。 C.类一定要声明为public的,才可以执行。 D.一个java文件中可以有多个class定义。 7、假设A类有如下定义,设a是A类的一个实例,下列语 句调用哪个是错误的?(d) class A { int i; static String s; void method1() { } static void method2() { } } A、System.out.println(a.i); B、a.method1(); C、A.method1(); D、A.method2() 10、在Java 中如果要在字符串类型对象s=“JAVA”,中找 出‘V’出现的位置可使用下面哪个方法:(b) A.mid(2,s); B.charAt(2); C.s.indexOf(‘V’); D.indexOf(s,’V’); 13、给出下面代码: public class Person{ static int arr[] = new int[10]; Java基础试题 姓名 一、选择题(每题2分,共30分) 1.请写出标识符的命名规则描述正确的是[多选](ABCD ) A、由英文字母、数字、_和$组成,长度不限。 B、标识符的第一个字符不能是数字 C、标识符区分大小写。 D、标识符不能包含空格。 2. 下列属于正确标识符的选项有[多选](BDGH) A. int B. $_Count C. 3M D. Hello E. b-7 F. ms#d G. bool H. D9658 3、下列哪一个不属于java的基本类型( B ) A、int B、String C、float D、byte 4、下列那条语句能编译通过( A ) A、String String=”String”; B、float float=”3.14”; C、int int = 11; D、int i= 1.1; 5、下列代码的执行结果是: ( D ) public class Test1{ public static void main(String args[]){ float t=9.0f; int q=5; System.out.println((t++)*(--q)); } } A、40 B、40.0 C、36 D、36.0 6、int长度描述正确的是(A ) A、-2^31到2^31 - 1 B、-2^32到2^32 - 1 C、-2^7到2^7 - 1 D、-2^8到2^8 - 1 7、关于==和equals方法描述不正确的是( D ) A、==是运算符、equals是方法 B、==只比较对象,equals会先比较对象,如果不是一个对象,会对对象的值进行比较。 C、String a= "1"; String b= "1"; System.out.println(a==b); 输出结果为:true D、String a=new String("1");String b=new String("1"); System.out.println(a==b);输出结果为:true 8、下列关于哪个不属于java的特性( D ) A、封装 B、继承 C、多态 D、重载 9、某一个子类要继承一个父类,要使用关键字(B ) A、import B、extends C、implements D、java 10、某一个子类要实现一个父接口,要使用关键字(C ) A、import B、extends C、implements D、java 11、以下关于接口和类的说法正确的是( C ) J a v a基础试题和答案 Revised by Petrel at 2021 J a v a试题1)java程序中,main方法的格式正确的是()。(选择一项) a)staticvoidmain(String[]args) b)publicvoidmain(String[]args) c)publicstaticvoidmain(String[]s) d)publicstaticvoidmain(String[]args) 2)给定java代码,如下: publicbytecount(byteb1,byteb2){ return______; } 要使用这段代码能够编译成功,横线处可以填入()。(选择一项)a)(byte)(b1-b2) b)(byte)b1-b2 c)b1-b2 d)(byte)b1/b2 3)在Java中,在包com.db下定义一个类,要让包com.util下的所有类都可以访问这个类,这个类必须定义为()。(选择一项) a)protected b)private c)public d)friendly 4)在Java中,下列()语句不能通过编译。(选择一项) a)Strings=“join”+“was”+“here”; b)Strings=“join”+3; c)inta=3+5 d)floatf=5+5.5; 5)在Java中下列()方法可以把JFrame的布局管理器设为FlowLayout类型(选择一项) a)jFrame.setLayout(newFlowLayout()); b)jFrame.addLayout(newFlowLayout()) c)jFrame.setFlowLayout() d)jFrame.addFlowLayout() 6)给定java代码如下,运行时,会产生()类型的异常。(选择一项)Strings=null; s.concat(“abc”); a)ArithmeticException b)NullPointerException c)IOException d)EOFException 7)在java中,()对象可以使用键/值的形式保存数据。(选择一项) a)ArrayList b)HashSet c)HashMap d)LinkedList 8)给定如下java代码,编译运行之后,将会输出()。publicclassTest{ publicstaticvoidmain(Stringargs[]){ inta=5; (a+1)/2:a/2); } }(选择一项) 姓名 一、选择题(每题2分,共30分) 1.请写出标识符的命名规则描述正确的是[多选]( ABCD ) A、由英文字母、数字、_和$组成,长度不限。 B、标识符的第一个字符不能是数字 C、标识符区分大小写。 D、标识符不能包含空格。 2. 下列属于正确标识符的选项有[多选](BDGH) A. int B. $_Count C. 3M D. Hello E. b-7 F. ms#d G. bool H. D9658 3、下列哪一个不属于java的基本类型( B ) A、int B、String C、float D、byte 4、下列那条语句能编译通过( A ) A、String String=”String”; B、float float=””; C、int int = 11; D、int i= ; 5、下列代码的执行结果是: ( D ) public class Test1{ public static void main(String args[]){ float t=; int q=5; } } A、 40 B、 C、36 D、 6、int长度描述正确的是( A ) A、-2^31到2^31 - 1 B、-2^32到2^32 - 1 C、-2^7到2^7 - 1 D、-2^8到2^8 - 1 7、关于==和equals方法描述不正确的是( D ) A、==是运算符、equals是方法 B、==只比较对象,equals会先比较对象,如果不是一个对象,会对对象的值进行比较。 C、String a= "1"; String b= "1"; 输出结果为:true D、String a=new String("1");String b=new String("1"); 输出结果为:true 8、下列关于哪个不属于java的特性( D ) A、封装 B、继承 C、多态 D、重载 9、某一个子类要继承一个父类,要使用关键字( B ) A、import B、extends C、implements D、java 10、某一个子类要实现一个父接口,要使用关键字( C ) A、import B、extends C、implements D、java 11、以下关于接口和类的说法正确的是( C ) A、接口和类都可以实现多重继承 B、子类可以继承多个父类 C、子类可以实现多个接口 D、一个子类不能同时继承某一个父类和实现某一个接口 12、一个非抽象子类,如果要实现某个接口,则( A ) A、必须实现该接口中的所有抽象方法 B、可以实现部分抽象方法 C、可以不实现任何抽象方法 J a v a基础试题及其答案 The latest revision on November 22, 2020 Java试题 1) java程序中,main方法的格式正确的是()。(选择一项) a)static void main(String[] args) b)public void main(String[] args) c)public static void main(String[]s) d)public static void main(String[] args) 2)给定java代码,如下: public byte count(byte b1,byte b2){ return______; } 要使用这段代码能够编译成功,横线处可以填入()。(选择一项) a)(byte) (b1-b2) b)(byte) b1-b2 c) b1-b2 d) (byte) b1/b2 3)在Java中,在包下定义一个类,要让包下的所有类都可以访问这个类,这个类必须定义为()。(选择一项) a)protected b)private c)public d)friendly 4)在Java中,下列()语句不能通过编译。 (选择一项) a) String s= “join”+ “was”+ “here”; b) String s= “join”+3; “”+new Person() toString() c) int a= 3+5 d) float f=5+; double float 6)给定java代码如下,运行时,会产生()类型的异常。(选择一项) String s=null; (“abc”); a)ArithmeticException b)NullPointerException c)IOException d)EOFException 已到文件尾,再读取抛出 7) 在java中,()对象可以使用键/值的形式保存数据。(选择一项) a)ArrayList List 有序可重复 b) HashSet Set 无序不可重复同一对象是重复的 c) HashMap Map(key/value)重复定义:hashCode、equals(业务) d) LinkedList List 8)给定如下java代码,编译运行之后,将会输出()。 public class Test{ public static void main(String args[]){ int a=5; Sys((a%2==1) (a+1) /2:a/2) ;三目表达式 } } (选择一项) a)1 b)2 1、作用域public,private,protected,以及不写时的区别 答:区别如下: 作用域当前类同一package 子孙类其他package public √√√√ protected √√√× friendly √√×× private √××× 不写时默认为friendly 2、ArrayList和Vector的区别,HashMap和Hashtable的区别 答:就ArrayList与Vector主要从二方面来说. 一.同步性:Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的 二.数据增长:当需要增长时,Vector默认增长为原来一培,而ArrayList却是原来的一半 就HashMap与HashTable主要从三方面来说。 一.历史原因:Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现 二.同步性:Hashtable是线程安全的,也就是说是同步的,而HashMap是线程序不安全的,不是同步的 三.值:只有HashMap可以让你将空值作为一个表的条目的key或value 3、char型变量中能不能存贮一个中文汉字?为什么? 答:是能够定义成为一个中文的,因为java中以unicode编码,一个char占16个字 节,所以放一个中文是没问题的 4、多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么? 答:多线程有两种实现方法,分别是继承Thread类与实现Runnable接口同步的实现方面有两种,分别是synchronized,wait与notify 5、继承时候类的执行顺序问题,一般都是选择题,问你将会打印出什么? 答:父类: package test; public class FatherClass { public FatherClass() { System.out.println("FatherClass Create"); } } 子类: package test; import test.FatherClass; public class ChildClass extends FatherClass { public ChildClass()Java基础测试题(答案)
java基础测试题及答案
Java编程基础知识点汇总及习题集答案
java基础测试题
java基础笔试测试题与答案
java基础考试题及答案
Java基础试题及其答案
最新Java基础试题及其答案
Java基础笔试机试测试题(带答案)
Java基础试题及答案
JAVA入门练习50题(含答案)
Java基础试题
JAVA试题及答案
java基础测试题
java基础测试题含答案
Java基础试题和答案
java基础测试题_含答案
Java基础试题及其答案
JAVA基础考题和答案