搜档网
当前位置:搜档网 › 传智播客_Java基础入门习题答案

传智播客_Java基础入门习题答案

传智播客_Java基础入门习题答案
传智播客_Java基础入门习题答案

Java 基础入门》习题答案

第1章Java 开发入门

一、填空题1、Java EE、Java SE、Java ME 2、JRE 3、javac 4、bin 5、path、classpath 二、选择题1、ABCD 2、C 3、D

4、B

5、B 三、简答题1、面向对象、跨平台性、健壮性、安全性、可移植性、多线程性、动态性等。2、JRE(Java Runtime Environment,Java 运行时环境),它相当于操作系统部分,提供了Java 程序运行时所需要的基本条件和许多Java 基础类,例如,IO 类、GUI 控件类、网络类等。JRE 是提供给普通用户使用的,如果你只想运行别人开发好的Java 程序,那么,你的计算机上必须且只需安装JRE。JDK(Java Development Kit,Java 开发工具包),它包含编译工具、解释工具、文档制作工具、打包工具多种与开发相关的工具,是提供给Java 开发人员使用的。初学者学习和使用Java 语言时,首先必须下载和安装JDK。JDK 中已经包含了JRE 部分,初学者安装JDK 后不必再去下载和安装JRE 了。四、编程题

public class HelloWorld { public static void main(String[] args) { System.out.println("这是第一个Java 程序!"); } }

第2章Java 编程基础

一、填空题1、class 2、true 和false 3、单行注释、多行注释、文档注释4、基本数据类型、引用数据类型5、1、2、4、8 6、& && | || 7、0 8、5

9、34 10、56 二、判断题1、错2、对3、错4、对5、错三、选择题1、AD 2、AD 3、C 4、ABCD 5、C 6 、A 7、AC 8、

A 9、

B 10、A 四、程序分析题1、编译不通过。int 值4 和b 相加时,由于变量b 的类型为byte,取值范围没有int 类型大,存不下int 类型的值,因此编译不通过。2、编译不通过。这是因为y 是在最里层的代码块中定义的一个变量,只有在那个代码块中才可使用,在使用y = x;语句时已经超过了y 变量的作用域,所以编译无法通过。3、打印结果为:3。4、打印结果为:9 8 7 五、问答题1、Java 语言的八种基本数据类型有:byte 字节型,占一个字节。short 短整型,占两个字节。int 整型,占4 个字节。long 长整型,占8 个字节。float 单精度浮点型,占 4 个字节。double 双精度浮点型,占8 个字节。char 字符型,占两个字节。boolean 型,表示逻辑值,有true 和false 两个值,分别占一个字节。2、如果使用“&”在表达式之间进行连接,那么无论任何情况,“&”两边的表达式都会参与计算。如果使用“&&”进行连接,当“&&”左边的表达式为false,则不会执行其右边的表达式。例如定义int x = 2,y = 0; boolean b = x < y & x / 2 > 0 表达是会发生被0 除异常,因为x / y 的表达式执行了。而boolean b = x < y & x / 2 > 0 是不会出现这种异常的,因为x < y 为false,表达式x / y 不会执行。3、方法重载指的是在一个类中可以声明多个同名的方法,而方法中参数的个数或者数据类型不一致。调用这些同名的方法时,JVM 会根据实际参数的不同绑定到不同的方法。

六、编程题1、参考答案

public class Test01 { public static void main(String[] args) { int sum = 0; for (int i = 1; i < 100; i++) { if (i % 2 != 0) sum += i; } System.out.println(sum); } }

2、参考答案

public class Test02 { public static void main(String args[]) { int y = function(0);

System.out.println(y); } public static int function(int x) { int y; if (x > 0) { y = x + 3; } else if (x == 0) { y = 0; } else { y = x * x - 1; } return y; } }

3、参考答案

public class Test03 { public static void main(String[] args) { int[] arr = { 25, 24, 12, 76, 101, 96, 28 }; for (int i = 0; i < arr.length - 1; i++) { // 定义内层循环for (int j = 0; j < arr.length - i - 1; j++) { if (arr[j] > arr[j + 1]) { // 比较相邻元素// 下面的三行代码用于交换两个元素int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } for (int i = 0; i < arr.length; i++) { System.out.print(arr[i] + " "); // 打印元素和空格} } }

第3章面向对象(上)

一、填空题1、封装、继承、多态2、new 3、成员变量、局部变量4、类、类5、this 6、finalize()

7、静态变量8、内部类9、javadoc 10、private 二、判断题1、对2、对3、错4、对5、错三、选择题1、B 2、D 3、B 4、ABC 5、ABCD 6、ACD 7、ABCD 8、ABCD 9、D 10、D 四、程序分析题1、程序不能编译通过,因为在类A 中的成员变量secret 用private 修饰,所以在类Test1 中无法访问。2、程序不能编译通过,因为在静态方法method()中不能访问非静态成员变量x。3、程序能够编译通过,运行的结果为“inner” 。五、简答题1、构造方法是类的一个特殊成员,它会在类实例化对象时被自动调用。而普通方法只有在使用的时候才会被调用。在定义构造方法时要求方法名与类名相同、在方法名的前面没有返回值类型的声明、在方法中不能使用return 语句返回一个值2、单例模式可以保证在整个程序运行期间针对该类只存在一个实例对象。六、编程题1、参考答案

class Student { private String name; private double grade; public Student() { } public Student(String name, double grade) { https://www.sodocs.net/doc/cb3757376.html, = name; this.grade = grade; } public String getName() { return name; } public void setName(String name) { https://www.sodocs.net/doc/cb3757376.html, = name; } public double getGrade() { return grade; } public void setGrade(double grade) { this.grade = grade; } } public class Test01 { public static void main(String[] args) { Student stu1 = new Student();

stu1.setName("zhangsan"); stu1.setGrade(99); Student stu2 = new Student("lisi" 100); } }

2、参考答案

class Father {

private String name = "zhangjun"; class Child { public void introFather() { System.out.println("My Father's name is " + name); } } } public class Test02 { public static void main(String[] args) { Father.Child child = new Father().new Child(); child.introFather(); }

}

第4章面向对象(下)

一、填空题1、继承2、方法,抽象类3、import 4、子类、父类、基类5、Exception 6、final 7、super 8、Object 9、try、catch 10、jar –cvf,java –jar 二、判断题1、错2、对3、错4、对5、对三、选择题1、B 2、C 3、ABC 4、ABCD 5、C 6、AC 7、C 8、D 9、A 10、B 四、程序分析题1、程序编译能通过,这是因为int x = 2 / 0; System.out.println(x);这两条语句使用了try 块,捕获了程序因为除以0 而产生的异常情况,之后程序会继续向下执行,输出“进入catch 代码块” ,“进入finally 代码块” 。2、程序编译不通过,这是因为在程序中使用了final 关键字修饰Animal 类,使得Animal 类不能被继承。shout()方法中同样使用了final 关键字,使得该方法不能被重写。

3、程序编译能通过,输出结果为“动物叫!”和“汪汪……” ,因为在程序中调用shout()方法时,首先会通过super.shout()调用父类的方法说出“动物叫!”之后再输出“汪汪……”

4、程序编译不通过,因为接口中定义的方法不能有方法体,所以定义的eat()方法是错误的。接口中的方法必须在子类中全部实现,由于run()方法在子类中并没有重新实现,所以这也是错误的。五、简答题1、在继承关系中,子类的方法与父类的某一方法具有相同的方法名、返回类型和参数列表,则称子类的该方法重写(覆盖)父类的方法。2、多态意味着一个对象有着多种形态,可以在特定的情况下,表现不同的状态,从而对应着不同的属性和方法。简单的说,多态就是使用父类类型的变量引用子类对象,根据被引用子类对象的特性,程序会得到不同的运行效果。3、在Java 中,使用abstract 关键字修饰的类称之为抽象类。抽象类是不能被实例化的,通常需要写一个子类来继承抽象类,同时实例化子类来获得该类的对象。抽象类通常用于表示一种抽象的概念。接口可以说是一种特殊的抽象类,接口中只能定义常量和抽象方法。由于接口的特殊性,在定义时需要使用interface 关键字。六、编程题1、参考答案

class Student { public String name; public int age; public Student(String name,int age){ https://www.sodocs.net/doc/cb3757376.html,=name; this.age=age; } public void show(){ System.out.println("name: "+name+" age: "+age); } } class UnderGraduate extends Student{ public String degree; public UnderGraduate(String name,int age,String degree){ super(name, age); this.degree=degree; } public void

show(){ System.out.println("name: "+name+" age: "+age+" degree: "+degree); } } public class Test01{ public static void main(String[] args) { Student student = new Student("zhangsan" 16); student.show(); UnderGraduate underGraduate = new UnderGraduate("lisi" 20, "bechalor"); underGraduate.show(); }

}

2、参考答案

interface Shape { double area(double givenValue); } class Square implements Shape{ public double area(double sideLength)

{ return sideLength*sideLength; } } class Circle implements Shape{ public double area(double r) { return Math.PI*r*r; } } public class Test02 { public static void main(String[] args) { Shape square = new Square(); Shape circle = new Circle();

System.out.println(square.area(2)); System.out.println(circle.area(3)); } }

3、参考答案

class NoThisSongException extends Exception{ public NoThisSongException(){ super(); } public NoThisSongException(String message){ super(message); } } class Player{ public void play(int index)throws NoThisSongException{ if(index>10){ throw new NoThisSongException("您播放的歌曲不存在"); } System.out.println("正在播放歌曲"); } } public class Test03 { public static void

main(String[] args) { Player player = new Player(); try {

player.play(13); } catch (NoThisSongException e) { System.out.println("异常信息为:"+e.getMessage()); } } }

第5章多线程

一、填空题1、线程、通信2、Thread、Runnable 3、就绪4、synchronized、对象、this 5、进程6、新建状态(New)、就绪状态(Runnable)、运行状态(Running)、阻塞状态(Blocked)、死亡状态(Terminated) 7、10、1 8、开启一个新线程、run()方法9、wait()、notify()、notifyAll() 10、setDaemon(true)、start() 二、判断题1、错2、对3、对4、错5、错三、选择题1、B 2、AC 3、ABC 4、BC 5、ABD 6、ABC 7、C 8、D 9、AB 10、ABCD 四、程序分析题1、程序不能编译通过,因为RunHandler 类没有实现Runnable 接口,因此RunHandler 的实例对象不能作为参数传递给Thread 的构造方法。2、程序不能编译通过,因为Thread 的子类 A 重写的run()方法的访问级别不能低于父类run()方法的。访问级别3、程序不能编译通过,因为同步方法中调用wait()方法的对象必须为同步锁对象。4、t.start(); 五、简答题1、一种是继承https://www.sodocs.net/doc/cb3757376.html,ng 包下的Thread 类,覆写Thread 类的run()方法,在run()方法中实现运行在线程上的代码。

new Thread() { public void run(){} }.start();

另一种就是实现https://www.sodocs.net/doc/cb3757376.html,ng.Runnable 接口,同样是在run()方法中实现运行在线程上的代码。

new Thread(new Runnable(){ public void run(){} }).start()

2、调用sleep()方法,正在执行的线程主动让出CPU 去执行其他线程,在sleep()方法指定的时间过后,CPU 才会回到这个线程上继续往下执行,如果当前线程进入了同步锁,sleep()方法并不会释放锁,即使当前线程使用sleep()方法让出了CPU,但其它被同步锁挡住了的线程也无法得到执行。wait()

在一个已经进入了同步锁的线程内进行调用,让当前线程暂时让出同步锁,以便其它正在等待此锁的线程可以得到同步锁并运行。当其它线程调用了notify()方法后,调用wait()方法的线程就会解除wait 状态,当再次获得同步锁后,程序可以继续向下执行。六、编程题1、参考答案

public class MyThread extends Thread{ public MyThread(String name) { super(name); } public void run()

{ System.out.println(this.getName()); } public static void main(String[] args) { new MyThread("Thread1").start(); new

MyThread("Thread2").start(); } }

2、参考答案

public class MyRunnable implements Runnable { public void run() { for (int i = 0; i < 50; i++) { System.out.println("new"); } } public static void main(String[] args) { new Thread(new MyRunnable()).start(); for (int i = 0; i < 100; i++) { System.out.println("main"); } } }

3、参考答案

public class Test01 { public static void main(String[] args) { Teacher t = new Teacher(); new Thread(t, "陈老师").start(); new Thread(t, "高老师").start(); new Thread(t, "李老师").start(); } } class Teacher implements Runnable { private int notes = 80; public void run() { while (true) {

dispatchNotes(); // 调用售票方法if (notes <= 0) { break; } } } private synchronized void dispatchNotes() { if (notes > 0) { try

{ Thread.sleep(10); // 经过的线程休眠10 毫秒} catch (InterruptedException e) { e.printStackTrace(); }

System.out.println(Thread.currentThread().getName() + "---发出的笔记" + notes--); } } }

4、参考答案

public class Accumulator extends Thread { private int stratNum; public static int sum; public Accumulator(int startNum)

{ this.stratNum = startNum; } public static synchronized void add(int num) { sum += num; } public void run() { int sum = 0; for (int i = 0;

i < 10; i++) { sum += stratNum + i; } add(sum); } public static void main(String[] args) throws Exception { Thread[] threadList = new Thread[10]; for (int i = 0; i < 10; i++) { threadList[i] = new Accumulator(10 * i + 1); threadList[i].start(); } for (int i = 0; i < 10; i++)

{ threadList[i].join(); }

System.out.println("Sum is : " + sum); } }

第6章JavaAPI

一、填空题1、String、StringBuffer 2、Date、Calendar、DateFormat 3、getRuntime() 4、sqrt() 5、DateFormat 6、π 、e 7、Random、java.util 8、length() 9、静态10、edcba 二、判断题1、错2、错3、对

4、错

5、对

6、B

7、C

8、A

9、A 10、B

三、选择题1、C 2、C 3、D 4、C 5、C 四、程序分析题1、程序编译能通过,输出结果如下

5 7.0 -8.0 -5 8.1 -6.1

2、程序编译能通过,输出结果如下

str.length():15 str.charAt(0):d lastIndexOf(m):10 substring(2,4):fe indexOf(g):5

五、简答题1、String 类是不可变类,即字符串值一旦初始化后就不可能改变。StringBuffer 是可变字符串类,类似String 的缓冲区,可以修改字符串的值。2、Date 类用来表示某个特定的瞬间,能够精确到毫秒。而在实际应用中,往往需要把一个日期中的年、月、日等信息单独返回进行显示或处理,这个类中的大部分方法都已被标记过时。Calender 类基本取代了Date 类,该类中定义了一系列用于完成日期和时间字段操作的方法。Calendar 的getTime()方法,getTime()返回一个表示Calendar 时间值的Date 对象,同时Calendar 有一个setTime(Date date)方法,setTime()方法接收一个Date 对象,将Date 对象表示的时间值设置给

Calendar 对象,通过这两个方法就可以完成Date 和Calendar 对象之间的转换。六、编程题1、参考答案

public class Test01 { public static void main(String[] args) { String str = "HelloWorld"; // 字符串转成char 数组char[] ch =

str.toCharArray(); StringBuffer buffer = new StringBuffer(); for (int i = str.length() - 1; i >= 0; i--) { if (ch[i] >= 'A' && ch[i] <= 'Z')

{ buffer.append(String.valueOf(ch[i]).toLowerCase()); } else if (ch[i] >= 'a' && ch[i] <= 'z')

{ buffer.append(String.valueOf(ch[i]).toUpperCase()); } } System.out.println(buffer.toString()); } }

2、参考答案

import java.text.DateFormat; import java.util.Calendar; import java.util.Date; public class Test02 { public static void main(String[] args) { Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.DATE, 100); Date date = calendar.getTime(); DateFormat format = DateFormat.getDateInstance(DateFormat.FULL); String string = format.format(date); System.out.println(string); } }

3、参考答案

import java.util.Random; public class Test03 { public static void main(String[] args) { Random rand = new Random(); int[] num = new int[5]; for (int i = 0; i < num.length; i++) { num[i] = 20 + rand.nextInt(31); System.out.println(num[i]); } }

}

第7章集合类

一、填空题1、集合2、Comparator 3、有序、可重复,无序、不可重复4、hashNext()、next() 5、Collection、Map 6、键、值7、ListIterator 8、ArrayList、LinkedList,HashSet、TreeSet,HashMap、TreeMap 9、put()、get() 10、Collections、Arrays 二、判断题1、错2、对3、对4、错5、对三、选择题1、BC 2、A 3、D 4、ABD 5、C 6、AB 7、D 8、AB 9、ABC 10、B 四、程序分析题1、程序可以编译通过,输出结果是“a、b、c” ,因为TreeSet 集合不允许存放重复元素,第 2 次增加的元素c 会覆盖之前存入的元素c,所以输出结果是“a、b、c” ,而不是“a、b、c、c” 。2、程序不可以编译通过,这是由于向ArrayList 集合中存入元素时,集合并不能记住元素的类型,因此在取出元素时,只能使用Object 类型,而不能使用String 类型。3、程序可以编译通过,但是什么也没有打印。使用ListIterator 进行从后向前的遍历集合,可以使用以下两种方法,一是使用listIterator(int index)方法将索引index 的值设置为集合元素的数目,也就是ListIterator it = list.listIterator(3);,二是将程序先从前向后遍历,然后再从后向前遍历。

4、程序编译不通过,由于Map 集合在遍历的过程中不能使用集合对象本身删除元素,这会导致并发修改异常,若想删除集合中的元素,可以使用Iterator 的remove()方法。五、简答题1、为了使程序能方便的存储和操作数目不固定的一组数据,JDK 提供了一套类库,这些类都位于java.util 包中,统称为集合。集合框架中包含 3 个接口,分别是List、Set、Map。2、List 的特点是元素有序、元素可重复。List 接口的主要实现类有ArrayList 和LinkedList。Set 的特点是元素无序、元素不可重复。Set 接口的主要实现类有HashSet 和TreeSet。Map 的特点是存储的元素是键(Key)、值(Value)映射关系,元素都是成对出现的。Map 接口的主要实现类有HashMap 和TreeMap。3、Collection 是一个单例集合接口。它提供了对集合对象进行基本操作的通用方法。Collections 是一个工具类。它包含各种有关集合操作的方法。六、编程题1、参考答案

import java.util.*; public class Test01 { public static void main(String[] args) { ArrayList list = new ArrayList();

for(int i = 0; i < 10; i++) { list.add("A"+i); } Iterator it = list.iterator(); while(it.hasNext()) { Object obj = it.next();

System.out.println(obj); } } }

2、参考答案

import java.util.*; public class Test02 { public static void main(String[] args) { HashSet hashSet = new HashSet(); Person p1 = new Person("Jack"25); Person p2 = new Person("Rose"23); Person p3 = new Person("Jack"27); hashSet.add(p1); hashSet.add(p2); hashSet.add(p3); for(Object obj:hashSet){ Person p=(Person)obj; System.out.println(https://www.sodocs.net/doc/cb3757376.html,+":"+p.age); } } } class Person{ String name; int age; public Person(String name, int age) { super(); https://www.sodocs.net/doc/cb3757376.html, = name; this.age = age; } public int hashCode() { return name.hashCode(); } public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; Person other = (Person) obj;

return https://www.sodocs.net/doc/cb3757376.html,.equals(https://www.sodocs.net/doc/cb3757376.html,); } }

3、参考答案

import java.util.*; public class Test03 { public static void main(String[] args) { TreeMap map = new TreeMap(new MyComparator()); map.put("1" "Lucy"); map.put("2" "Lucy"); map.put("3" "John"); map.put("4" "Smith"); map.put("5" "Amanda"); for (Object key :

map.keySet()) { System.out.println(key + ":" + map.get(key)); } } } class MyComparator implements Comparator { public int

compare(Object obj1, Object obj2) { String ele1 = (String) obj1; String ele2 = (String) obj2; return https://www.sodocs.net/doc/cb3757376.html,pareTo(ele1); } }

第8章IO(输入输出)

一、填空题1、字节流、字符流2、File、java.io 3、SequenceInputStream 4、RandomAccessFile 5、管道流6、LineNumberReader、BufferedReader、setLineNumber(int)、getLineNumber() 7、字节流、字符流8、PrintStream、setOut(PrintStream out) 9、Unicode 10、newLine() 二、判断题1、错2、对3、对4、对5、错三、选择题1、AB 2、C 3、C 4、ABCD 5、AB 6、ACD 7、A 8、A 9、D 10、A 四、程序填空题

1、InputStreamReader、br.readLine()、运行结果为2

2、FileInputStream(file1)、FileOutputStream、fis.available() 五、问答题1、Java 程序通过流来完成输入和输出,流是输入或输出信息的抽象。流通过Java 的输入/输出系统与外设连接进行数据通信。流是抽象的对象,具体实现代码在java.io 包中。2、字节流的两个基类是InputStream 和OutputStream,字符流的两个基类是Reader 和Writer,它们都是Object 类的直接子类,字节流是处理以8 位字节为基本单位的字节流类;Reader 和Writer 类是专门处理16 位字节的字符流类。

3、管道流分为管道输入流(PipedInputStream)和管道输出流(PipedOutputStream),通常由一个PipedInputStream 实例对象和一个PipedOutputStream 实例对象相互连接而实现管道通信,PipedOutputStream 向管道写入数据,PipedInputStream 从管道中读取PipedOutputStream 写入的数据,管道流主要用来完成线程之间的通信。六、编程题1、参考答案

import java.io.*; public class Test01 { public static void main(String[] args) throws Exception { // 字节流拷贝FileInputStream in = new FileInputStream("E:/src.txt"); FileOutputStream out = new FileOutputStream("E:/des1.txt"); byte[] buf = new byte[1024]; int len; while ((len = in.read(buf)) != -1) { out.write(buf, 0, len); } in.close(); out.close(); // 字符流拷贝BufferedReader bf = new BufferedReader(new FileReader("E:/src.txt")); BufferedWriter bw = new BufferedWriter(new FileWriter("E:/des2.txt")); String str; while ((str = bf.readLine()) != null) { bw.write(str); bw.newLine(); } bf.close(); bw.close(); } }

2、参考答案

import java.io.*; public class Test02 { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

String password = ""; boolean b = false; for (int i = 0; i < 5; i++) { System.out.println("请输入密码:"); password = br.readLine(); if (password.equals("123456")) { System.out.println("恭喜你进入游戏"); b = true; break; } } if (!b) { System.out.println("密码错误,游戏

结束"); System.exit(0); } } }

第9章GUI(图形用户界面)

一、填空题1、GUI、java.awt、javax.swing 2、适配器3、Graphics 4、事件监听器5、JComponent 6、窗体事件、键盘事件、鼠标事件、动作事件7、WindowListener、windowClosing(WindowEvent e) 8、模态对话框、非模态对话框9、setLayout(null) 10、JMenuBar、JMenu、JMenuItem 二、判断题1、对2、错3、对4、错5、错三、选择题1、D 2、D 3、ABD 4、A 5、D 6、ABCD 四、程序分析题1、参考答案

extends Stdno = new JTextField(); Name = new JTexxtField();

7、ABD

8、ABC

9、D

10、C

2、参考答案

card.next(cp); cp.add(jbt);

五、简答题

1、参考答案λ通过实现XxxListener 接口或者继承XxxAdapter 类实现一个事件监听器类,并对处理监听动作的方法进行重写λ创建事件源对象和事件监听器对象λ调用事件源的addXxxLisntener()方法,为事件源注册事件监听器对象

2、参考答案AWT 是Abstract Window ToolKit (抽象窗口工具包)的缩写,这个工具包提供了一套与本地图形界面进行交互的接口。AWT 中的图形函数与操作系统所提供的图形函数之间有着一一对应的关系,当我们利用AWT 来构件图形用户界面的时候,我们实际上是在利用操作系统所提供的图形库。由于不同操作系统的图形库所提供的功能是不一样的,在一个平台上存在的功能在另外一个平台上则可能不存在。为了实现Java 语言所宣称的"一次编译,到处运行"的概念,AWT 不得不通过牺牲功能来实现其平台无关性,也就是说,AWT 所提供的图形功能是各种通用型操作系统所提供的图形功能的交集。由于AWT 是依靠本地方法来实现其功能的,我们通常把AWT 控件称为重量级控件。Swing 是在AWT 的基础上构建的一套新的图形界面系统,它提供了AWT 所能够提供的所有功能,并且用纯粹的Java 代码对AWT 的功能进行了大幅度的扩充。由于在Swing 中没有使用本地方法来实现图形功能,我们通常把Swing 控件称为轻量级控件。AWT 和Swing 之间的基本区别:AWT 是基于本地方法的C/C++程序,其运行速度比较快;Swing 是基于AWT 的Java 程序,其运行速度比较慢。对于一个嵌入式应用来说,目标平台的硬件资源往往非常有限,而应用程序的运行速度又是项目中至关重要的因素。在这种矛盾的情况下,简单而高效的AWT 当然成了嵌入式Java 的第一选择。而在普通的基于PC 或者是工作站的标准Java 应用中,硬件资源对应用程序所造成的限制往往不是项目中的关键因素,所以在标准版的Java 中则提倡使用Swing,也就是通过牺牲速度来实现应用程序的功能。六、编程题1、参考答案

import java.awt.*; import java.awt.event.*;import javax.swing.*; public class MyMouseHandler extends JFrame { public MyMouseHandler() { final JLabel label = new JLabel("此处显示鼠标右键点击的坐标"); label.setOpaque(true);

label.setBackground(Color.PINK); this.add(label, BorderLayout.NORTH); this.setSize(300, 200);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent e) { if (e.getButton() == e.BUTTON1) { int x = e.getX(); int y = e.getY(); String banner = "鼠标当前点击位置的坐标是" + x + "" + y; label.setText(banner); } } });

this.setVisible(true); } public static void main(String[] args) { new MyMouseHandler(); } }

2、参考答案

import java.awt.*; import java.util.*; import javax.swing.*; import java.awt.event.*; public class Information extends JFrame { // 窗口NORTH 部的JPanel 面板private JPanel panel = new JPanel(); // 爱好标签private JLabel lb1 = new JLabel("爱好"); // 三个表示爱好的JCheckBox 复选框private JCheckBox cb1 = new JCheckBox("羽毛球"); private JCheckBox cb2 = new JCheckBox("乒乓球"); private JCheckBox cb3 = new JCheckBox("唱歌"); // 性别标签private JLabel lb2 = new JLabel("性别"); // 表示性别的JRadioButton 单选框private JRadioButton rb1 = new JRadioButton("男"); private JRadioButton rb2 = new JRadioButton("女"); // ButtonGroup 添加JRadioButton,实现单选功能private ButtonGroup bg = new ButtonGroup(); // 文本域组件private JTextArea area = new JTextArea(); // 窗口CENTER 部的JScrollPane 面板,其中放置area 文本域private JScrollPane pane = new JScrollPane(area); // Set 集合存放选中的兴趣private Set hobbies = new HashSet(); // gender 选中的性别private String gender = ""; // JCheckBox 复选框的事件监听器private ActionListener listener1 = new ActionListener() { public void

actionPerformed(ActionEvent e) { JCheckBox cb = (JCheckBox) e.getSource(); // 选中的复选框把文本添加到Set 集合中if (cb.isSelected()) { hobbies.add(cb.getText()); // 反之从集合中移除} else {

hobbies.remove(cb.getText()); } print(); } }; // JRadioButton 单选框的事件监听器private ActionListener listener2 = new ActionListener() { public void actionPerformed(ActionEvent e) { JRadioButton jb = (JRadioButton) e.getSource(); gender =

jb.getText(); print(); } }; // 打印方法private void print() { // 清空文本域area.setText(""); // 如果Set 集合中有元素,打印兴趣if (hobbies.size() > 0) area.append("你的兴趣爱好有: "); Iterator it = hobbies.iterator(); while (it.hasNext()) { area.append(it.next() + " "); } // 如果gender 不为空字符串,打印性别if (!"".equals(gender)) area.append("你的性别为:" + gender); } public Information() { //添加标签、单选和复选按钮panel.add(lb1); panel.add(cb1); panel.add(cb2); panel.add(cb3); panel.add(lb2); panel.add(rb1);

panel.add(rb2); bg.add(rb1); bg.add(rb2); // 为单选和复选按钮添加事件监听器cb1.addActionListener(listener1);

cb2.addActionListener(listener1); cb3.addActionListener(listener1); rb1.addActionListener(listener2);

rb2.addActionListener(listener2); // 将JPanel 面板和JScrollPane 面板添加到JFrame 容器中Container container =

this.getContentPane(); container.add(panel, BorderLayout.NORTH); container.add(pane, BorderLayout.CENTER); this.pack(); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); } public static void main(String[] args) { new Information(); } }

3、参考答案

import javax.swing.*; import java.awt.*; import java.awt.event.*; public class MyMenu extends JFrame implements ActionListener { JLabel label = new JLabel("请选择菜单" JLabel.CENTER); JMenuItem aaMenuItem, baMenuItem; MyMenu() { JMenuBar menuBar = new JMenuBar(); JMenu aMenu = new JMenu("菜单A"); JMenu bMenu = new JMenu("菜单B"); JMenuItem aaMenuItem = new JMenuItem("菜单项AA"); JMenuItem abMenuItem = new JMenuItem("菜单项AB"); JMenuItem baMenuItem = new JMenuItem("菜单项BA"); menuBar.add(aMenu); menuBar.add(bMenu); aMenu.add(aaMenuItem); aMenu.addSeparator();

aMenu.add(abMenuItem); bMenu.add(baMenuItem); aaMenuItem.addActionListener(this); abMenuItem.addActionListener(this); baMenuItem.addActionListener(this); setJMenuBar(menuBar); getContentPane().add(label, BorderLayout.CENTER); } public void actionPerformed(ActionEvent e) { JMenuItem source = (JMenuItem) (e.getSource()); label.setText("选择了菜单:" + source.getText()); label.setHorizontalAlignment(JLabel.CENTER); }

public static void main(String args[]) { JFrame frame = new MyMenu(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(300, 200); frame.setVisible(true); } }

第10章

网络编程

一、填空题1、面向连接、客户端、服务器端2、2、0-65535 3、链路层、网络层、运输层、应用层4、InetAddress 5、DatagramPacket、DatagramSocket 二、判断题1、错2、对3、对4、错5、对三、选择题1、C 2.A 3、ABD 4、B 5.、A 6、D 7、B 8、C 四、简答题1、在Internet 中传输数据都需要遵守一定的规则,这种规则通常被称作网络通信协议。网络通信协议对数据传输格式、传输速率、传输步骤等作了统一规定,通信双方必须共同遵守这个规定才能完成数据的交互。到目前为止,网络通信协议已经有很多种,其中TCP/IP 协议在世界范围内应用最为广泛。2、UDP 协议是无连接通信协议,所谓的无连接就是指数据的发送端和接收端不建立逻辑连接。由于UDP 协议消耗资源小,通信效率高,通常都会用于音频、视频和普通数据的传输。UDP 协议在传输数据时不能保证数据的完整性,因此在传输重要数据时不建议使用UDP 协议。TCP 协议是面向连接的通信协议,即在传输数据前先在发送端和接收端建立逻辑连接,然后再传输数据,它提供了两台计算机之间可靠无差错的数据传输。在TCP 连接中必须要明确客户端与服务器端,由客户端向服务端发出连接请求,每次连接的创建都需要经过“三次握手” 。3、ServerSocket 类用于创建服务端程序,通过调用ServerSocket 对象的accept()方法,接收来自客户端的请求。Socket 类用于创建客户端程序,当客户端和服务端的两个Socket 建立了专线连接后,连接的一端既能向另一端连续写入字节,也能从另一端读取字节。Socket 类中定义了getInputStream()方法返回Socket 的输入流对象,定义了getOutputStream()方法返回Socket 的输出流对象。只要连接的一端向该输出流对象写入了数据,连接的另一端就能从其输入流对象中读取到。五、编程题1、参考答案

import https://www.sodocs.net/doc/cb3757376.html,.InetAddress; public class Test01 { public static void main(String[] args) throws Exception { InetAddress localAddress = InetAddress.getLocalHost(); InetAddress remoteAddress = InetAddress.getByName("https://www.sodocs.net/doc/cb3757376.html,");

System.out.println("本机的IP 地址:" + localAddress.getHostAddress()); System.out.println("本地的主机名:" +

localAddress.getHostName()); System.out.println("甲骨文的IP 地址:" + remoteAddress.getHostAddress()); } }

2、参考答案接收端:

import https://www.sodocs.net/doc/cb3757376.html,.*; public class Test02 { public static void main(String[] args) throws Exception { byte[] buf = new byte[1024]; DatagramSocket ds = new DatagramSocket(8001); DatagramPacket dp = new DatagramPacket(buf, 1024); ds.receive(dp); String str = new String(dp.getData(),0, dp.getLength()); System.out.println(str); ds.close(); } }

发送端

import https://www.sodocs.net/doc/cb3757376.html,.*; public class Test03 { public static void main(String[] args) throws Exception { DatagramSocket ds = new DatagramSocket(3000); String str = "hello world"; DatagramPacket dp = new DatagramPacket(str.getBytes(), str.length(), InetAddress.getByName("localhost"), 8001); ds.send(dp); ds.close(); } }

3、参考答案服务端

import java.io.*; import https://www.sodocs.net/doc/cb3757376.html,.*; public class Test04 { public static void main(String[] args) throws Exception { new

TCPServer().listen(); } } class TCPServer { public void listen() throws Exception { ServerSocket serverSocket = new ServerSocket(8002);

Socket client = serverSocket.accept(); OutputStream os = client.getOutputStream(); os.write("hello world").getBytes());

Thread.sleep(5000); os.close(); client.close(); } }

客户端

import java.io.*; import https://www.sodocs.net/doc/cb3757376.html,.*; public class Test05 { public static void main(String[] args) throws Exception { new

TCPClient().connect(); } } class TCPClient { public void connect() throws Exception { Socket client = new

Socket(InetAddress.getLocalHost(), 8002); InputStream is = client.getInputStream(); byte[] buf = new byte[1024]; int len =

is.read(buf); System.out.println(new String(buf, 0, len)); client.close(); } }

java单选题库-博学谷

一、单选题 属于以下哪种语言() A. 机器语言 B. 汇编语言 C. 高级语言 D. 以上都不对 答案:C 解析:Java是一门高级编程语言 考察点:第一章 Java开发入门 题目难度:★☆☆☆容易 2.下列目录中,哪一个是用来存放JDK核心源代码的 A. lib目录 B. src目录 C. jre目录 D. include目录 答案:B 解析:JDK核心源代码存放在src文件夹下 考察点:第一章 Java开发入门 题目难度:★☆☆☆容易 3.下面命令中,可以用来正确执行HelloWorld案例的是() A. java HelloWorld B. java C. javac HelloWorld D. javac

答案:A 解析:java命令负责运行编译后的.class文件,不需要文件后缀名。 考察点:第一章 Java开发入门 题目难度:★☆☆☆容易 4.下面关于配置path环境变量作用的说法中,正确的是() A. 在任意目录可以使用javac和java命令 B. 在任意目录下可以使用class文件 C. 在任意目录可以使用记事本 D. 在任意目录下可以使用扫雷游戏 答案:A 解析:path环境变量的作用是在任意目录下都可以使用javac和java命令。 考察点:第一章 Java开发入门 题目难度:★☆☆☆容易 5.下列选项中,可以正确配置classpath的命令是() A. set classpath =C:\Program Files\Java\ set classpath : C:\Program Files\Java\ classpath set =C:\Program Files\Java\ classpath set : C:\Program Files\Java\ 答案:A 解析:配置classpath的命令是set classpath=xxx,并且等于号两边不要有空格。 考察点:第一章 Java开发入门 题目难度:★☆☆☆容易 6.下面选项中,完全面向对象的编程语言是() A. C B. COBOL C. JAVA D. FORTRAN 答案:C

【黑马程序员】Java基础总结

【黑马程序员】Java基础总结黑马程序员的javaEE课程主要分为2个部分:java基础+java就业。今天就简单的给大家总结一下咱们java基础的知识。 注:Java采用Unicode符号集,每个字符占2个字节,无论英文还是中文还是其他字符。标识符 为变量、类或方法起的名称 以字母,下划线、或者$符号开头 由字母、数字、下划线或者$符号开头 区分大小写,没有长度限制,不能使用关键字 尽量取得容易辨识,见名知意 如:identifier、userName、user_Name、_sys_varl、$change 基本数据类型 Java定义了8中基本数据类型 [AppleScript] 纯文本查看复制代码 ? 1 2 3 4 5 6 7/** * @author 传智播客 */ 布尔值----boolean(只有true和false两种类型) 字符-------char ( 16 位的Unicode字符用单引号( '' )标注;'a'表示字母a '\t' 表示制表符 '\u????'中?用确切的代替申明并且初始化: char c = 'A' 申明变量 char ch1,ch2) 整数--------byte (8位) short(16) int(32) long(64)【以0开头表示八进制;以0x开始表示16进制】 浮点型-----float double 变量 必须在类的内部【可以在方法外也可以在方法类】 在方法类定义的变量叫做局部变量,需要显示的初始化

成员变量和类变量【对象】自动初始化【数字初始化为0,对象初始化为null】常量 在程序运行中,其值保持不变的量 不同数据类型间的相互转换【封装Wrapper类】 Java中类的定义: [AppleScript] 纯文本查看复制代码 ? 1 2 3 4 5 6 7 8/** * @author 传智播客*/ <修饰符> Class <类名>{ <属性申明>; <构造器申明>; <方法申明>; } 成员变量申明:[AppleScript] 纯文本查看复制代码 ? 1<修饰符> <类型> <名称>;修饰符: [AppleScript] 纯文本查看复制代码 ? 1 2 3 4 5/** * @author 传智播客 */ final:修饰常量,常量的值不能被修改【例如 final int CONSTANT = 50;】static:申明静态变量[类变量] static int nCount; 方法的申明:[AppleScript] 纯文本查看复制代码? 1 2/** * @author 传智播客

Java基础知识笔试题及答案2

1.Java中提供了名为()的包装类来包装原始字符串类型。 A.Integer B.Char C.Double D.String 2.https://www.sodocs.net/doc/cb3757376.html,ng包的()方法比较两个对象是否相等,相等返回true。 A.toString()B.equals()C.compare()D.以上所有选项都不正确3.使用()方法可以获得Calendar类的实例。 A.get()B.equals()C.getTime()D.getInstance() 4.下面的集合中,()不可以存储重复元素。 A.Set B.Collection C.Map D.List 5.关于Map和List,下面说法正确的是()。 A.Map继承List B.List中可以保存Map或List C.Map和List只能保存从数据库中取出的数据 D.Map的value可以是List或Map 6.给定如下Java代码,编译运行的结果是()。 Import java.util.*; public class Test { public static void main(String[] args) { LinkedList list=new LinkedList(); list.add(“A”); list.add(2,”B”); String s=(String)list.get(1); System.out.println(s); }

A.编译时发生错误B.运行时引发异常C.正确运行,输出:A D.正确运行,输出:B ###############################################################3 3.所有异常的父类是()。 A.Error B.Throwable C.RuntimeException D.Exception 4.下列()操作不会抛出异常。 A.除数为零B.用负数索引访问数组 C.打开不存在的文件D.以上都会抛出异常 5.能单独和finally语句一起使用的块是()。 A.try B.throws C.throw D.catch 6.在多重catch块中同时使用下列类时,()异常类应该最后列出。 A.Exception B.ArrayIndexOutOfBoundsException C.NumberFormatException D.ArithmeticException 7.执行下面的代码会引发()异常。 String str=null; String strTest=new String(str); A.InvalidArgumentException B.IllegalArgumentException C.NullPointerException D.ArithmeticException 8.这段代码的输出结果是()。 try{ System.out.print(“try,“); return; } catch(Exception e){ System.out.print(“catch,“); } finally { System.out.print(“finally”);

【黑马程序员】毕向东老师Java基础入门教程笔记

【黑马程序员】毕向东老师Java基础入门教程笔记 毕向东Java基础视频教程_适合初学者入门 完整视频:https://www.sodocs.net/doc/cb3757376.html,/course/7.html?1911sxkqq 提取码:ks8m 课程资料:https://https://www.sodocs.net/doc/cb3757376.html,/s/1jAjI85SlUTlrTuF_J2QNeQ 提取码:4bfg 黑马程序员视频库网址:https://www.sodocs.net/doc/cb3757376.html,(海量热门编程视频、资料免费学习)学习路线图、学习大纲、各阶段知识点、资料网盘免费领取+QQ 3285264708 / 3549664195 1.编程:人与计算机之间交流的过程就是编程。 2.Java语言特点:跨平台性。原理:JAVA程序是通过java虚拟机运行在系统平台上的, 只要该系统可以安装相应的java虚拟机,该系统就可以运行JAVA程序。 3.JRE和JDK的区别: JDK:开发工具包,JDK是提供给开发人员使用的工具包。 JRE:JAVA运行环境包括java虚拟机和java程序所需的核心类库。 4.JAVA虚拟机jvm 是JAVA语言的运行环境,jvm读取并处理编译过的与平台无关的字节码文件 5.JAVA程序运行机制 Java源文件通过javac.exe 编译器编译成字节码文件,然后再通过jvm运行。 6.Java中需要注意的地方:一个JAVA源文件只定义一个类,不同的类使用不同的源文件 定义;将每个源文件中单独定义的类都定义成public的;保持JAVA源文件的主文件名与源文件中的类名一致;

7.Main方法的作用:程序的入口,保证程序的独立运行,被JVM调用。 8.文档注释: 单行注释:// 多行注释/* */ 文档注释/** */ 9.标识符的命名规则: 由字母、数字、下划线、$组成,不能以数字开头,严格区分大小写,不能使用关键字,10.Java中的常量和变量 定义变量的格式:数据类型变量名=初始化值; 作用范围:定义开始到定义它的代码块结束,定义范围内的左大括号开始,到右大括号结束。同一作用范围内,不允许多个局部变量命名冲突; 常量分为:整型常量小数常量布尔型常量字符型常量空常量(null)。、 11.整型常量:三种表现形式:计算机中存放的是二进制最低组成单位是八位,每八位 表示一个字节。 分为十进制八进制十六进制 12.局部变量和成员变量 局部变量:不是声明在类体括号里面的变量; 局部变量使用前必须初始化值; 局部变量没有默认初始化值; 局部变量的作用域是从定义开始到定义它的代码块结束; 成员变量:在方法体外,类体内声明的变量,又称字段(Field)或全局变量;(其实Java中没有全局变量,由于Java是面向对象语言,所有变量都是类成员),没有初始化时,会被赋予默认的初始化值。

Java基础笔试机试测试题(带答案)

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基础知识测试-初测(带答案)

传智播客-Java基础知识测试-初测(带答案)

答题格式: 1 - 30题为单选题, 31 - 40为多选题. 新建一个txt文件, 答案写在这个文件中. 答案必须保存为txt格式的文件。 答题的时候,可以在EditPlus上答题,会自动显示题目序号 文件名改为自己的名字, 每题一行. 多选题按abcd的顺序填答案, 比如某一题的答案acd, 就必须是acd, 不能是adc等等. 不能有空行, 不能有空格,不能有题目序号,一定不要某一题不会就空在那, 会导致后面的答案全都识别错了! 填完答案数一下, 不要填挪了!!! 共40道选择题,每题2.5分。多选题有错则全错,全对才满分.

单选题: 1. 下列哪个声明是错误的?() A. int i=10; B. byte b=127; C. float f=1.1; //1.1f D. double d=34.4; 2. 下面哪个不是java中的关键字?() A. public B. true C. class D. main 3. 下面哪个语句不会产生编译错误?() A. float a =2.0; //2.0f B. byte b =25; C. char c =”a”; D. boolean d=0; 4. 下面程序哪个语句是正确的()

A. byte a=0,b=3; byte c =a+b; B. short s =23; s=s+12; C. float f = 23+23.23; D. short s=23; s+=12; 5. byte类型的大小是() A. -228 ~128 B. -255 ~ 256 C. -128 ~ 127 D. -255 ~ 255 6. 下面程序执行的结果是?() int i = 100; while(true) { If ( i++ > 100 ) break; System.out.println(i); } A. 100 B. 101

JAVA基础面试题经典

JAVA基础面试题经典

第一阶段题库 基础知识部分: 1.JDK是什么?JRE是什么? a)答:JDK:java开发工具包。JRE:java运行时 环境。 2.什么是java的平台无关性? a)答:Java源文件被编译成字节码的形式,无论 在什么系统环境下,只要有java虚拟机就能运行这个字节码文件。也就是一处编写,处处运行。这就是java的跨平台性。 3.在一台电脑上配置java环境,path起什么作 用?如何配置? a)答:path的作用是在DOS环境下,能在任意 位置使用JDK目录中bin文件夹中的可执行程序,来编译执行java程序。 b)在环境变量中找到path变量,把bin文件夹 的绝对路径加上即可。 4.什么样的标识符是合法的? a)由字母、数字、_和$组成,长度不限。其中字 母能够是大写或小写的英文字母,数字为0到9。

b)标识符的第一个字符不能是数字。 c)标识符区分大小写。 d)标识符不能包含空格。 5.Java有几种基本数据类型? a)byte,short,int,long,char,boolean,float,double 6.什么是隐式类型转换?什么是显示类型转换? a)当将占位数少的类型赋值给占位数多的类型 时,Java自动使用隐式类型转换。 b)当把在级别高的变量的值赋给级别底变量时, 必须使用显示类型转换运算。 7.&&和&区别,||和|区别? a)&&和||是短路与,短路或,当左边的表示式能 判断当前结果,则不判断右边的表示式。 b)而& 和|则将两边的表示式都运算完毕后,再 算结果。 8.break,continue区别? a)break结束最近的一个循环,continue结束当 次循环,进入下次循环。 9.类的命名规则是什么? a)如果类名使用拉丁字母,那么名字的首写字母 使用大写字母。

Java程序员认证考试题库

第一部分 基础知识练习 目标 本章对应于《学生指南》各章的内容分别提供了练习题集,包括: ●第一章Java入门 ●第二章数据类型和运算符 ●第三章流程控制与数组 ●第四章封装 ●第五章继承 ●第六章抽象类与接口 ●第七章多态 ●第八章异常 ●第九章多线程机制 ●第十章输入输出流 ●第十一章使用泛型和集合框架 ●第十二章基于Swing的图形用户界面(GUI)设计 ●第十三章Java事件驱动编程

第一章练习题(Java入门) (C)1.下列哪项不是JDK所包含的内容?(选一项)A.Java编程语言 B.工具及工具的API C.Java EE扩展API D.Java平台虚拟机 2.下列关于JDK、JRE和JVM的描述。哪项正确?A.JDK中包含了JRE,JVM中包含了JRE B.JRE中包含了JDK,JDK中包含了JVM C.JRE中包含了JDK,JVM中包含了JRE D.JDK中包含了JRE,JRE中包含了JVM 3.下列哪个工具可以编译java源文件? A.javac B.jdb C.javadoc D.junit 4.JDK工具javadoc的作用是哪项? A.生成Java文档 B.编译Java源文件 C.执行Java类文件 D.测试Java代码 5.以下哪些包是Java标准库中常用的包?(选三项)A.java.lang B.javax.servlet .http C.j ava. io D.java.sql

6.使用JDK工具生成的Java文档的文件格式是? A.XML格式 B.自定义格式 c.二进制格式 D.HTML格式 (AC)7.以下关于JVM的叙述,哪项正确?(选两项) A.JVM运行于操作系统之上,它依赖于操作系统 B.JVM运行于操作系统之上,它与操作系统无关 C.JVM支持Java程序运行,它能够直接运行Java字节码文件D.JVM支持Java程序运行,它能够直接运行Java源代码文件 8.以下关于支持Java运行平台的叙述,哪项错误? A.Java可在Solaris平台上运行 B.Java可在Windows平台上运行 C.Java语言与平台无关。Java程序的运行结果依赖于操作系统D.Java语言与平台无关。Java程序的运行结果与操作系统无关 (B)9.以下关于Applet和Java程序之间关系的叙述,哪项错误? A.-个Applet就是一段Java程序 B.Applet是一种特殊的Java程序,它需要运行在Web服务器上C.Applet是一种特殊的Java程序,它需要运行在Web浏览器上D.Applet是一种Java SE平台的应用程序 (AD)10.以下关于Java HotSpot的描述,哪两项错误?(选两项)A.Java HotSpot是一种热编译技术,在编译Java源程序时会被使用B.Java HotSpot是一种热编译技术,在运行Java代码时会被使用C.Java HotSpot是一种热编译技术,它只对程序的部分字节码进行优化D.Java HotSpot是一种热编译技术,它会对程序的全部字节码进行优化

传智播客Java基础入门习题答案

第章开发入门 一、填空题、、、、、、、、二、选择题、、、、、三、简答题、面向对象、跨平台性、健壮性、安全性、可移植性、多线程性、动态性等. 、(,运行时环境),它相当于操作系统部分,提供了程序运行时所需要地基本条件和许多基础类,例如,类、控件类、网络类等. 是提供给普通用户使用地,如果你只想运行别人开发好地程序,那么,你地计算机上必须且只需安装. (,开发工具包),它包含编译工具、解释工具、文档制作工具、打包工具多种与开发相关地工具,是提供给开发人员使用地.初学者学习和使用语言时,首先必须下载和安装. 中已经包含了部分,初学者安装后不必再去下载和安装了. 四、编程题文档收集自网络,仅用于个人学习 { ([] ) { ("这是第一个程序!"); } }文档收集自网络,仅用于个人学习 第章编程基础 一、填空题、、和、单行注释、多行注释、文档注释、基本数据类型、引用数据类型、、、、、、、文档收集自网络,仅用于个人学习 、、二、判断题、错、对、错、对、错三、选择题、、、、、、、、、、四、程序分析题、编译不通过. 值和相加时,由于变量地类型为,取值范围没有类型大,存不下类型地值,因此编译不通过. 、编译不通过.这是因为是在最里层地代码块中定义地一个变量,只有在那个代码块中才可使用,在使用;语句时已经超过了变量地作用域,所以编译无法通过. 、打印结果为:. 、打印结果为:五、问答题、语言地八种基本数据类型有:字节型,占一个字节. 短整型,占两个字节. 整型,占个字节. 长整型,占个字节. 单精度浮点型,占个字节. 双精度浮点型,占个字节. 字符型,占两个字节. 型,表示逻辑值,有和两个值,分别占一个字节. 、如果使用“”在表达式之间进行连接,那么无论任何情况,“”两边地表达式都会参与计算. 如果使用“”进行连接,当“”左边地表达式为,则不会执行其右边地表达式.例如定义; < > 表达是会发生被除异常,因为地表达式执行了.而< > 是不会出现这种异常地,因为< 为,表达式不会执行. 、方法重载指地是在一个类中可以声明多个同名地方法,而方法中参数地个数或者数据类型不一致. 调用这些同名地方法时,会根据实际参数地不同绑定到不同地方法. 六、编程题、参考答案文档收集自网络,仅用于个人学习 { ([] ) { ; ( ; < ; ) { ( ) ; } (); } }文档收集自网络,仅用于个人学习 、参考答案 { ( []) { ();文档收集自网络,仅用于个人学习 (); } ( ) { ; ( > ) { ; } ( ) { ; } { * ; } ; } }文档收集自网络,仅用于个人学习 、参考答案 { ([] ) { [] { , , , , , , }; ( ; < ; ) { 定义内层循环( ; < ; ) { ([] > [ ]) { 比较相邻元素下面地三行代码用于交换两个元素[]; [] [ ]; [ ] ; } } } ( ; < ; ) { ([] " "); 打印元素和空格} } }文档收集自网络,仅用于个人学习 第章面向对象(上) 一、填空题、封装、继承、多态、、成员变量、局部变量、类、类、、()文档收集自网络,仅用于个人学习、静态变量、内部类、、二、判断题、对、对、错、对、错三、选择题、、、、、、、、、、四、程序分析题、程序不能编译通过,因为在类中地成员变量用修饰,所以在类中无法访问. 、程序不能编译通过,因为在静态方法()中不能访问非静态成员变量. 、程序能够编译通过,运行地结果为“” . 五、简答题、构造方法是类地一个特殊成员,它会在类实例化对象时被自动调用.而普通方法只有在使用地时候才会被调用.在定义构造方法时要求方法名与类名相同、在方法名地前面没有返回值类型地声明、在方法中不能使用语句返回一个值、单例模式可以保证在整个程序运行期间针对该类只存在一个实例对象. 六、编程题、参考答案文档收集自网络,仅用于个人学习 { ; ; () { } ( , ) { ; ; } () { ; } ( ) { ; } () { ; } ( ) { ; } } { ([] ) { ();文档收集自网络,仅用于个人学习 (""); (); ("" ); } }文档收集自网络,仅用于个人学习 、参考答案 {

传智播客java考试习题3

第三次作业 1、 jar命令的()参数可以创建归档文件 (1分) o A、c o B、v o C、f o D、x 参考答案:A 答案说明:c参数,创建归档文件 2、 下列选项中,用于在定义子类时声明父类名的关键字是( )。 (1分) o A、interface o B、package o C、extends o D、class 参考答案:C 答案说明:

3、 用于定义类成员的访问控制权的一组关键字是( )。 (1分) o A、class, float, double, public o B、float, boolean, int, long o C、char, extends, float, double o D、public, private, protected 参考答案:D 答案说明: 4、 下面关于throws作用的描述中,正确的是() (1分) o A、一个方法只能抛出一个异常信息 o B、一个方法上使用throws声明一个异常说明这个方法运行时一定会抛出这个异常 o C、throws可以声明在方法体中用来指定抛出的具体异常 o D、throws出现在方法函数头 参考答案:D

答案说明:throws关键字需要写在方法声明的后面,throws后面需要声明方法中发生异常的类型,通常将这种做法称为方法声明抛出一个异常 5、 下列关于匿名内部类的描述,错误的是() (1分) o A、匿名内部类是内部类的简化形式 o B、匿名内部类的前提是必须要继承父类或实现接口 o C、匿名内部类的格式是"new 父类(参数列表) 或父接口(){}" o D、匿名内部类可以有构造方法 参考答案:D 答案说明:匿名内部类不能有构造方法,它连类名都没有 6、 以下关于编译异常说法正确的是() (1分) o A、编译异常就是指Exception以及其子类 o B、编译异常如果产生,可以不用处理 o C、编译异常如果产生,必须处理,要么捕获,要么抛出 o D、编译异常指的就是Error 参考答案:C

JAVA入门练习50题(含答案)

题目:古典问题:有一对兔子,从出生后第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); } }

传智播客刘意老师JAVA全面学习笔记

JAVA 学 习 路 线

第一天 1:计算机概述(了解)2 2:键盘功能键的认识和快捷键(掌握)2 3:常见的DOS命令(掌握)3 4:Java语言概述(了解)3 5:JDK,JRE,JVM的作用及关系(掌握) 3 6:JDK的下载,安装,卸载(掌握)4 7:第一个程序:HelloWorld案例(掌握)4 8:常见的问题(掌握)5 9:path环境变量(掌握)5 10:classpath环境变量(理解)5 第二天 1:关键字(掌握)6 2:标识符(掌握)6 3:注释(掌握)7 4:常量(掌握)7 5:进制转换(了解)7 6:变量(掌握)8 7:数据类型(掌握)8 8:数据类型转换(掌握)8 第三天 1:运算符(掌握)10 2:键盘录入(掌握)11 3:流程控制语句12 4:if语句(掌握)12 第四天 1:switch语句(掌握)14 2:循环语句(掌握)15 3:控制跳转语句(掌握)17 第五天 1:方法(掌握)18 2:数组(掌握)19 第六天 1:二维数组(理解)23 2:两个思考题(理解)23 3:面向对象(掌握)23 第七天

1:成员变量和局部变量的区别(理解)25 2:类作为形式参数的问题?(理解)25 3:匿名对象(理解)25 4:封装(理解)25 5:private关键字(掌握)25 6:this关键字(掌握)26 7:构造方法(掌握)26 8:代码:Student s = new Student();做了哪些事情?(理解)27 9:面向对象的练习题(掌握)27 第八天 1:如何制作帮助文档(了解)28 2:通过JDK提供的API学习了Math类(掌握)28 3:代码块(理解)28 4:继承(掌握)28 第九天 1:final关键字(掌握)30 2:多态(掌握)30 3:抽象类(掌握)32 4:接口(掌握)33 第十天 1:形式参数和返回值的问题(理解)35 2:包(理解)35 3:导包(掌握)35 4:权限修饰符(掌握)36 5:常见的修饰符(理解)36 6:内部类(理解)37 第十一天 1:Eclipse的概述使用(掌握)40 2:API的概述(了解)40 3:Object类(掌握)40 第十二天 1:Scanner的使用(了解)41 2:String类的概述和使用(掌握)41 第十三天 1:StringBuffer(掌握)44 2:数组高级以及Arrays(掌握)44

Java基础笔试题(一)

Java阶段测试笔试题 一、选择题(每题5分) 1.Java程序的源文件扩展名为() A..doc B..txt C..java D..html 2.java程序中,main方法的格式正确是() A.static void main(String[] args) B.public void main(String[] args) C.public static main(String[] args) D.public static void main(String[] args) 3.在java中,下面()命令能够将java源文件编译为类文件 A.java B.javaw C.javac D.jar 4.给定java代码,进行编译运行,结果是() String s; System.out.print(“s=” + s); A.编译错误

B.编译通过,但是运行时出现错误 C.正常输出,输出s = null D.正常输出,输出s = 5.在java中,下列()是合法的变量名【选两项】 A._myString B.$a+b C.myString D.9myString 6.在java中,下列代码运行后的输出结果是() int x = 5 * 3; int y = x + 5 / x + 3; System.out.print(y); A.18 B.21 C.19 D. 4 7.从键盘输入值,第一步所做的是导入包,以下导入包的语句正确 的是()【选两项】 A.import java.util.*; B.import java.until.*; C.import java.util.Scanner; D.import java.until.Scanner;

传智播客java考试习题3

第三次作业 ?1、 jar命令的()参数可以创建归档文件 (1分) o A、c o B、v o C、f o D、x 参考答案:A 答案说明:c参数,创建归档文件 ?2、 下列选项中,用于在定义子类时声明父类名的关键字是( )。 (1分) o A、interface o B、package o C、extends o D、class 参考答案:C 答案说明: ?3、 用于定义类成员的访问控制权的一组关键字是( )。 (1分) o A、class, float, double, public o B、float, boolean, int, long o C、char, extends, float, double o D、public, private, protected 参考答案:D 答案说明: ?4、 下面关于throws作用的描述中,正确的是()

(1分) o A、一个方法只能抛出一个异常信息 o B、一个方法上使用throws声明一个异常说明这个方法运行时一定会抛出这个异常 o C、throws可以声明在方法体中用来指定抛出的具体异常 o D、throws出现在方法函数头 参考答案:D 答案说明:throws关键字需要写在方法声明的后面,throws后面需要声明方法中发生异常的类型,通常将这种做法称为方法声明抛出一个异常 ?5、 下列关于匿名内部类的描述,错误的是() (1分) o A、匿名内部类是内部类的简化形式 o B、匿名内部类的前提是必须要继承父类或实现接口 o C、匿名内部类的格式是"new 父类(参数列表) 或父接口(){}" o D、匿名内部类可以有构造方法 参考答案:D 答案说明:匿名内部类不能有构造方法,它连类名都没有 ?6、 以下关于编译异常说法正确的是() (1分) o A、编译异常就是指Exception以及其子类 o B、编译异常如果产生,可以不用处理 o C、编译异常如果产生,必须处理,要么捕获,要么抛出 o D、编译异常指的就是Error 参考答案:C 答案说明:编译异常如果产生,必须处理,要么捕获,要么抛出 ?7、 父类中的方法被以下哪个关键字修饰后不能被重写?() (1分) o A、public o B、satic o C、final o D、void

传智播客java就业班入学测试题

传智播客java就业班入学测试题 共50道题,每道题2分,总分100分,80分为合格。 注意,所有题目均为多项选择题。 对应试者的忠告: 传智播客自办学以来,一直在IT培训领域保持着良好的口碑,之所以能做到这么好的口碑,主要得益于过硬的教学质量以及学员的高就业率。 本测试题的目的在于帮助学员检测自己的java基础,因为公司要保证教学质量,光有名师授课是远远不够的,还需要学员们都具备一个基本的java基础,试想一下,如果学员入学前我们不进行测试,那么必然会导致学生的技术水平参差不齐,再好的老师也无法把这样的班教好。 希望参加测试的学员能本着对自己负责的态度,独立完成这套测试题。 如果您试图通过找人帮忙做题等其他途径来完成这套测试题,我们劝您千万别这样做,因为这样是害了自己。即使通过测试,顺利进入就业班的学习,同样是跟不上老师的进度,不会有一个好的结果。 如果您觉得完成这套测试题非常有难度,那也没有关系,因为我们针对基础不好的学员专门开设了 java基础与加强班,您可以通过短时间的培训,打下一个坚实的基础,再继续参加我们就业班的培训。 1.在JAVA中,下列哪些说法是正确的(AC ) A.java源文件的扩展名为.java B.写好的java源程序可以直接运行 C.编写的源程序必须先编译后才能运行 D.程序员可以读懂扩展名为.class的文件 2.在java中,关于数组描述正确的是(BD ) A.数组中的索引下标从1开始 B.存储在数组当中的数据都属于同一数据类型 C.通过数组名.length()能获得数组的长度 D.数组的最大索引下标是数组的长度减1 3.下列标识符哪个是合法的(BD ) A.class B.$abc C.1234 D._name 4.下面程序的输出结果是什么( C) int[] arr = new int[10]; System.out.println(arr[0]); A.编译不通过

JAVA技术--Java基础知识常见考试题JAVA技术.doc

一、单选题 1.对类:(B) public class Test( //...do something } 下面那个正确地定义了类Test的构造函数。 A)public void Test() () B)publicTest()(} C ) public static Test() (} D) publicTest(); 2.下面哪个函数是public void example()(...)的重载函数。(A) A)public void example( float f)(...) B)public int example() (...) C)public void example2()(...} D)public int example_overLoad ()(...) 3.下面的代码段中,执行之后i和j的值是_C_。 int i = 1; intj; j = i++; A)1, 1 B) 1,2 C) 2, 1 D) 2,2 4.以下for循环的执行次数是_B o for(int x=0,y=0;(y !=0)&&(x<4) ;x++); A)无限次B) 一次也不执行 C)执行4次D)执行3次 5.下面程序的输出结果是—C o public class People( String name; int id; public People( String str, int n )( name = str; id = n; } public String toString(){ return id + " :” + name; } public String print()(

传智播客_Java基础入门习题答案

Java 基础入门》习题答案 第1章 Java 开发入门 一、填空题 1、 Java EE、Java SE、Java ME 2、 JRE 3、 javac 4、 bin 5、 path、classpath 二、选择题 1、ABCD 2、C 3、D 4、 B 5、B 三、简答题 1、面向对象、跨平台性、健壮性、安全性、可移植性、多线程性、动态性等。 2、 JRE(Java Runtime Environment,Java 运行时环境),它相当于操作系统部分,提供了 Java 程序运行时所需要的基本条件和许多 Java 基础类,例如,IO 类、GUI 控件类、网络类等。JRE 是提供给普通用户使用的,如果你只想运行别人开发好的 Java 程序,那么,你的计算机上必须且只需安装JRE。 JDK(Java Development Kit,Java 开发工具包),它包含编译工具、解释工具、文档制作工具、打包工具多种与开发相关的工具,是提供给 Java 开发人员使用的。初学者学习和使用 Java 语言时,首先必须下载和安装 JDK。 JDK 中已经包含了 JRE 部分,初学者安装 JDK 后不必再去下载和安装 JRE 了。四、编程题 public class HelloWorld { public static void main(String[] args) { "这是第一个 Java 程序!"); } } 第2章 Java 编程基础 一、填空题 1、 class 2、 true 和 false 3、单行注释、多行注释、文档注释 4、基本数据类型、引用数据类型 5、 1、2、4、8 6、 & && | || 7、 0 8、 5 9、 34 10、 56 二、判断题 1、错 2、对 3、错 4、对 5、错三、选择题 1、 AD 2、AD 3、C 4、ABCD 5、C 6 、A 7、AC 8、A 9、 B 10、A 四、程序分析题 1、编译不通过。int 值 4 和 b 相加时,由于变量 b 的类型为 byte,取值范围没有 int 类型大,存不下 int 类型的值,因此编译不通过。 2、编译不通过。这是因为 y 是在最里层的代码块中定义的一个变量,只有在那个代码块中才可使用,在使用 y = x;语句时已经超过了 y 变量的作用域,所以编译无法通过。 3、打印结果为:3。 4、打印结果为: 9 8 7 五、问答题 1、Java 语言的八种基本数据类型有:byte 字节型,占一个字节。short 短整型,占两个字节。int 整型,占 4 个字节。long 长整型,占 8 个字节。float 单精度浮点型,占 4 个字节。double 双精度浮点型,占 8 个字节。char 字符型,占两个字节。boolean 型,表示逻辑值,有 true 和 false 两个值,分别占一个字节。 2、如果使用“&”在表达式之间进行连接,那么无论任何情况,“&”两边的表达式都会参与计算。如果使用“&&”进行连接,当“&&”左边的表达式为 false,则不会执行其右边的表达式。例如定义 int x = 2,y = 0; boolean b = x < y & x / 2 > 0 表达是会发生被 0 除异常,因为 x / y 的表达式执行了。而 boolean b = x < y & x / 2 > 0 是不会出现这种异常的,因为 x < y 为 false,表达式 x / y 不会执行。 3、方法重载指的是在一个类中可以声明多个同名的方法,而方法中参数的个数或者数据类型不一致。调用这些同名的方法时,JVM 会根据实际参数的不同绑定到不同的方法。六、编程题 1、参考答案

java基础笔试题(答案已整理)

Java基础试题 一:选择题(1*30=30)(题目写在答题纸上面) 1:Java 提供哪几种运算符多选( abcd)。 A)算术运算符B)位运算符 C)关系运算符D)逻辑运算符E)条件运算符 2:https://www.sodocs.net/doc/cb3757376.html,ng包的()方法比较二个对象是否相等返回true.。(b) A:toString() B:equals() C:compare D:以上都不正确 3:下列对Java 的变量与函数说法正确的是多选(ace)。 A)变量是用来保存数据的B)变量是用来实现操作过程的C)函数是用来实现操作过程的D)函数是用来保存数据的E)函数的参数是数据的入口 4:已知:int[] a = new int[100];在下列给出的数组元素中,非法的是。(d) A:a[0] B:a[1] C:a[99] D:a[100] 5:在java中,一个类可同时定义许多同名的方法,在这些方法的形式参数个数,类型或顺序各不相同,传值也可以各不相同。这种面向对象程序的特性称为。(c) A:隐藏B:覆盖C:重载D:Java不支持此特性 6:()是一组常量和抽象方法的集合。(d) A:实例B:类C:包D:接口 7:下面关于数组说法正确的是多选(abcde)。 A)一维数组实质上是相同类型变量的列表 B)创建一个数组首先定义数组变量所需的类型 C)char c[]=new char[26];可声明一个含有26 个元素的char型数组 D)当为一个多维数组的时候分配内存时,仅需要为第一指定内存,然后再分配其他维的存E)int twain[][] = new int[4][5];可声明一个二维数组 8:Java源文件和编译后的文件扩展名分别为。(b) A:.class和.java B:.java各.class C:.class和.class D:.java和.java 9:设x=5;则y=x--和y=--x的结果,使y分别为。(c) A:5,5 B:5,6 C:5,4 D:4,4 10:若x是float类变量,x=10/4;则x 的值是。(b) A:2 B:2.0 C:2,5 D:编译错误 11:.下面方法中,用于调度线程使其运行的是?多选(bc) A. init() B. start() C. run() D. resume() E. sleep() 12.下面哪种情况能实现自动转换多选(ace)。 A)byte 型转换成 int 型 B)int 型转换成 byte 型 C)float 型转换成 double型 D)double 型转换成 int 型 E)char型转换成 int 型13:下列那些是正确的JAVA字符串?多选(abd)。 A. "\"\"" B. "Oxzabc" C. "\"\" D. "\t\t\r\n" E. "boolean"5 14:在使用super 和this关键字时,以下描述正确的是。(a) A::在子类构造方法中使用super()显示调用父类的构造方法,super()必须写在子类构造方法的第一行,否则编译不通过 B:super()和this()不一定要放在构造方法内第一行

相关主题