Java课后习题
- 格式:docx
- 大小:18.39 KB
- 文档页数:8
第1章Java开发入门一、1.对象2.面向对象、跨平台性3.javac4.Java虚拟机(或JVM)5.JRE二、1.错2.错3.错4.对5.对三、1.C2.ABCD3.D4.ABCD5.D四、1.简答性、面向对象、安全性、跨平台性、支持多线程、分布性。
2. Java程序运行时,必须经过编译和运行两个步骤。
首先将后缀名为.java的源文件进行编译,生成后缀名为.class的字节码文件,然后Java虚拟机将字节码文件进行解释执行,并将结果显示出来。
五、HelloWorld.java1 public class HelloWorld {2 public static void main(String[] args) {3 System.out.println("这是第一个Java程序!");4 }5 }第2章Java编程基础一、1.class2.单行注释、多行注释、文档注释3.44.==5.容器、0二、1.对2.错3.对4.错5.对三、1.AC2.A3.BD4.C5.C四、1.Java语言的八种基本数据类型有:byte字节型,占一个字节。
short短整型,占两个字节。
int整型,占4个字节。
long长整型,占8个字节。
float单精度浮点型,占4个字节。
double 双精度浮点型,占8个字节。
char字符型,占两个字节。
boolean型,表示逻辑值,有true 和false两个值,分别占一个字节。
2. 在switch条件语句和循环语句中都可以使用break语句。
当它出现在switch条件语句中时,作用是终止某个case并跳出switch结构。
当它出现在循环语句中,作用是跳出循环语句,执行循环后面的代码;continue语句用在循环语句中,它的作用是终止本次循环,执行下一次循环。
五、1.1public class getSum {2public static void main(String[] args) {3int sum = 0;4for (int i = 1; i < 100; i++) {5if (i % 2 != 0)6sum += i;7}8System.out.println(sum);9}10}2.1public class Test {2 public static void main(String[] args) {3 int i = 1;4 long sum = 1;5 do {6 sum *= i;7 i++;8 } while (i <= 5);9 System.out.println(sum);10 }11}第3章面向对象(上)一、1.封装、继承、多态2.private、default、protected、public3.static4.private5.参数类型参数个数6.this二、1.对2.对3.错4.对5.对三、1.C2.B3.D4.B5.C四、1.面向对象的特点主要可以概括为封装性、继承性和多态性。
黑马面试题1:定义map集合,并自定义对象,对map集合遍历,打出key和value值【已完成】2:定义一个类A,类中定义一个show方法,打印一句话,在定义一个TestA类,利用反射在TestA中创建A的对象,并调用show方法3:使用高效字符缓冲流复制文件4:把C盘中的一个多层文件夹拷贝到D盘中。
用高效的方法(要求写思路,注释,代码)5:Integer泛型Map中存储字符串6:开启两个线程每隔一段时间分别向一个共享数组中添加元素,每个线程添加3个即可。
7:Map的两种遍历方式【已完成】8:如何用反射去创建一个对象,有2种方式,尽量用代码去体现9:编写一个程序,把这个目录里边的所有的带.java文件都拷贝到另一个目录里边,拷贝成功以后,把后缀名是.java改成.txt10:创建多线程的方式有几种?尽量用代码去体现11:编写一个类,在main方法中定义一个Map对象(采用泛型),加入若干个对象,然后遍历并打印出各元素的key和value。
【已完成】12:编写程序,生成5个1至10之间的随机整数,存入一个List集合,编写方法对List 集合进行排序(自定义排序算法,禁用Collections.sort方法和TreeSet),然后遍历集合输出【已完成】14:Collection集合下班有哪些类,哪些类又有哪些特点ListSet15: 求1000!的结果中包含多少个0?注:1000! = 1×2×3×4×5×...×999×100016:编写一个类,增加一个实例方法用于打印一条字符串。
并使用反射手段创建该类的对象,并调用该对象中的方法。
17:编写一个类A,增加一个实力方法showString,用于打印一条字符串,在编写一个类TestA ,作为客户端,用键盘输入一个字符串,改字符串就是类A的全名,使用反射机制创建该类的对象,并调用该对象中的方法showString18:复制多级文件夹19:写一个线程类MyThread,该线程实现了Runnable接口,写一个main方法,用for循环创建5个线程对象。
JAVA课后习题答案第⼀章Java语⾔概述2.“java编译器将源⽂件编译为的字节码⽂件是机器码”这句话正确吗?答:不正确3.java应⽤程序的主类必须含有怎样的⽅法?答:含有main⽅法4。
“java应⽤程序必须有⼀个类是public类”这句话正确吗?答;不正确,只能有⼀个public类5。
“java Applet程序的主类必须是public类”这句话正确吗?答:正确,因为java Applet主类必须是Applet类的⼦类并且是public的类6。
请叙述java源程序的命名规则。
答:与public的类同名。
7。
源⽂件⽣成的字节码⽂件在运⾏时都加载到内存中吗?答:⾮也,动态随需要运⾏才加载。
8.⾯向对象的程序设计语⾔有那些基本特征?答:封装;继承;多态性。
9.在Java程序中有多个类⽂件时,⽤Java命令应该运⾏那个类?答:具有main⽅法的类第⼆章基本数据类型和数组4。
下列哪些语句是错的?Int x=120;Byte b=120;b=x;答:B=x;错应为b=(byte)x5。
下列哪些语句是错的?答:y=d;错,应y=(float)d6。
下列两个语句是等价的吗?Char x=97;Char x=…a?;答:是等价的。
7。
下列system.out.printf语句输出结果是什么?Int a=97;Byte b1=(byte)128;Byte b2=(byte)(-129);System.out.printf(“%c,%d,%d”,a,b1,b2);如果输出语句改为:System.out.printf(“%d,%d,%d”,a,b1,b2);输出什么?答:输出a ,-128,127修改后输出97,-128,1278.数组是基本数据类型吗?怎样获取数组的长度?答:不是基本数据类型,是复合数据类型。
可以通过:数组名.length的⽅法获得数组长度9。
假设有两个int类型数组:Int[] a=new int[10];Int[] b=new int[8];b=a;A[0]=100;B[0]的值⼀定是100吗?答;⼀定,因为a数组与b数组引⽤相同。
一、选择题1、在创建某类的对象时应该( )A、先声明对象,然后才能使用对象B、先声明对象,为对象分配内存空间,然后才能使用对象C、先声明对象,为对象分配内存空间,对对象初始化,然后才能使用对象D、以上述说法都对2、以下说法中对Java中定义的父类与子类的关系描述正确是的( )A、一个子类可以有多个父类,一个父类也可以有多个子类B、一个子类可以有多个父类,但一个父类只可以有一个子类C、一个子类可以有一个父类,但一个父类可以有多个子类D、上述说法都不对3、给定如下Java 程序片断:class A{ public A(){ System.out.print ("Java"); }}class B extends A{ public B(){ System.out.print (" Welcome"); }public static void main(String[] args){ B b=new B(); }}上述程序将( )A、不能通过编译B、通过编译,输出为: Java WelcomeC、通过编译,输出为: WelcomeD、通过编译,输出为: Java4、给定以下程序段,如下:int i=0,j=-1;switch(i){ case 0:j=1; case 2:j=2; default:j=5; }System.out.print("j="+j); 编译运行,正确的是( )A、j=-1B、j=1C、j=2D、j=55、下面关于Java构造函数的描述正确的是( )A、类必须有显式定义构造函数B、它的返回类型是voidC、它和类有相同的名称,但它不能带任何参数D、以上描述都是错误的6、在Java编程中,用来执行Java类文件的命令是( )A、javacB、javaC、appletviewerD、以上都不对7、如下程序片段,体现了Java的( ) 概念public void aMethod(String s) {........}public void aMethod(int i) {........}public void aMethod(int I,float f) {........}A、多继承B、重载C、重写D、多态8、如下Java升序片段Integer a = new Integer(3); Integer b = new Integer(3);System.out.println(a==b);运行后,该程序段的输出结果是( )A、trueB、falseC、0D、19、有如下Java程序声明String s1=new String(“Java”);String s2=new String(“Welcome”);String s3=new String("0"); 以下选项中能够通过编译的是( )A、s3=s1+s2B、s3=s1&s2C、s3=s1||s2D、s3=s1&&s210、在子类构造方法内可以对超类的构造方法(super())进行调用的位置是( )A、子类构造方法的任何地方B、子类构造方法的第一条语句处C、子类构造方法的最后一条语句处D、不能对超类的构造方法进行调用11、传递4,0来运行下列代码中的方法divide(int a, int b)public void divide(int a, int b){ try { int c = a / b; }catch (Exception e) { System.out.print("Exception "); }finally { System.out.println("Finally"); }}程序的输出结果是( )A、打印输出: Exception FinallyB、打印输出: FinallyC、打印输出: ExceptionD、没有任何输出12、在单一文件中import、class和package的正确出现顺序是( )A、package, import, classB、class, import, packageC、import, package, classD、package, class, import13.下列语句中,可以作为无限循环语句的是A) for(;;) {}B) for(int i=0; i<10000;i++) {}C) while(false) {}D) do {} while(false)14.自定义异常类的父类可以是A) ErrorB) VirtuaMachineErrorC) ExceptionD) Thread15.String、StingBuffer都是______类,都不能被继承。
Java2实用教程(第三版)课后习题参考答案第1章 Java入门1. 开发与运行Java程序需要经过哪些主要步骤和过程?答:(1)编写Java源文件:使用文本编辑器(Edit或记事本),拓展名为.java(2)编译Java源文件:使用Java编译器(javac.exe)。
得到字节码文件*.class(3)运行Java程序:Java应用程序使用Java解释器(java.exe)执行字节码文件;Java小应用程序使用支持Java标准的浏览器来执行。
2. 怎样区分应用程序和小应用程序?应用程序的主类或小应用程序的主类必须用public修饰吗?答:①应用程序必须有main方法,这个方法是程序执行的入口。
小应用程序没有main方法。
②应用程序的主类不一定用public修饰;小应用程序的主类必须用public修饰。
3. Java程序是由什么组成的?一个程序中必须要有public类吗?Java源文件的命名规则是怎样的?答:①Java程序由类组成。
②应用程序可以没有public类;小应用程序一定有一个类是public类(主类)。
③应用程序:如果只有一个类,源文件名与该类的类名相同,拓展名为.java;有多个类时,如果有public类(最多一个),源文件名与public类的类名相同,拓展名是.java;没有public类,源文件名与任何一个类的类名相同即可,拓展名为.java。
小应用程序:源文件名与主类的类名相同,拓展名是.java。
4. 在运行小程序的HTML文件中可以使用codebase属性指定小程序的字节码所驻留的目录。
如果不使用codebase属性,小程序的字节码文件必须和运行它的HTML文件在同一目录中。
编写一个小程序并将小程序的字节码存放在某个目录中,比如C:\5000;把运行该小程序的HTML文件(注意其中的codebase属性): <applet code=你的小程序的字节码 width=200 height=300 codebase=C:\5000></applet>存放在另一个目录中。
java课后习题答案及部分作业答案第⼀章Java概述⼀、选择题1、下⾯哪个是在Dos命令提⽰符下编译Java程序的命令?(A )A. javacB. javaC. javadocD. javaw2、以下哪些是Java程序中有效的注释符号?(ABC )A. //B. /* */C. /** */D. */ */3、以下哪个不是Java语⾔的特点?(B )A. ⾯向对象B. ⾃动检查语法错误C. 跨平台D. 解释执⾏4、Java编译器会将Java程序转换为(C )A. 可执⾏代码B. ⽬标代码C. 字节码D. 机器代码5、Java源⽂件的扩展名是(D )A. .classB. .jarC. .javD. .java⼆、简答题1、Java的跨平台的含义是什么?为什么Java可以跨平台?Java语⾔的⼀个⾮常重要的特点就是平台⽆关性。
它是指⽤Java编写的应⽤程序编译后不⽤修改就可在不同的操作系统平台上运⾏。
Java之所以能平台⽆关,主要是依靠Java虚拟机(JVM)来实现的。
JVM是⼀种抽象机器,它附着在具体操作系统之上,本⾝具有⼀套虚机器指令,并有⾃⼰的栈、寄存器组等。
Java编程⼈员在编写完Java程序后,Java编译器将Java源代码⽂件编译后⽣成字节码⽂件2、简述Java语⾔的特点Java具有以下特点:1)、简单性Java语⾔的语法规则和C语⾔⾮常相似,只有很少⼀部分不同于C语⾔,并且Java还舍弃了C语⾔中复杂的数据类型(如:指针和结构体),因此很容易⼊门和掌握。
2)、可靠性和安全性Java从源代码到最终运⾏经历了⼀次编译和⼀次解释,每次都有进⾏检查,⽐其它只进⾏⼀次编译检查的编程语⾔具有更⾼的可靠性和安全性。
3)、⾯向对象Java是⼀种完全⾯向的编程语⾔,因此它具有⾯向对象编程语⾔都拥有的封装、继承和多态三⼤特点。
4)、平台⽆关和解释执⾏Java语⾔的⼀个⾮常重要的特点就是平台⽆关性。
它是指⽤Java编写的应⽤程序编译后不⽤修改就可在不同的操作系统平台上运⾏。
最新精选全文完整版(可编辑修改)Java编程思想(第四版)习题答案第二章练习1:public class PrimitiveTest {static int i;static char c; 精选全文,可以编辑修改文字!public static void main(String[] args) {System.out.println("int = " + i);System.out.println("char = " + c);}}练习2:public class HelloWorld {public static void main(String[] args) {System.out.println("Hello World!");}}练习3:public class ATNTest {public static void main(String[] args) {class ATypeName {int i;double d;boolean b;void show() {System.out.println(i);System.out.println(d);System.out.println(b);}}A TypeName a = new ATypeName();a.i = 3;a.d = 2.71828;a.b = false;a.show();}}练习4:public class DataOnlyTest {public static void main(String[] args) {class DataOnly {int i;double d;boolean b;void show() {System.out.println(i);System.out.println(d);System.out.println(b);}}DataOnly data = new DataOnly();data.i = 3;data.d = 2.71828;data.b = false;data.show();}}练习5:public class DOTest2 {public static void main(String[] args) {class DataOnly {int i;double d;boolean b;void show() {System.out.println(i);System.out.println(d);System.out.println(b);}}DataOnly data = new DataOnly();data.i = 234;data.d = 2.1234545;data.b = true;data.show();}}练习6:public class StorageTest {public static void main(String[] args) {class StoreStuff {int storage(String s) {return s.length() * 2;}}StoreStuff x = new StoreStuff();System.out.println(x.storage("hi"));}}练习7:class StaticTest {static int i = 47;}class Incrementable {static void increment() { StaticTest.i++; }}public class ITest {public static void main(String[] args) {System.out.println("StaticTest.i= " + StaticTest.i);StaticTest st1 = new StaticTest();StaticTest st2 = new StaticTest();System.out.println("st1.i= " + st1.i);System.out.println("st2.i= " + st2.i);Incrementable sf = new Incrementable();sf.increment();System.out.println("After sf.increment() called: ");System.out.println("st1.i = " + st1.i);System.out.println("st2.i = " + st2.i);Incrementable.increment();System.out.println("After Incrementable.increment called: ");System.out.println("st1.i = " + st1.i);System.out.println("st2.i = " + st2.i);}}练习8:class StaticTest {static int i = 47;}class Incrementable {static void increment() { StaticTest.i++; }}public class OneStaticTest {public static void main(String[] args) {System.out.println("StaticTest.i= " + StaticTest.i);StaticTest st1 = new StaticTest();StaticTest st2 = new StaticTest();System.out.println("st1.i= " + st1.i);System.out.println("st2.i= " + st2.i);Incrementable.increment();System.out.println("After Incrementable.increment() called: ");System.out.println("st2.i = " + st2.i);Incrementable.increment();System.out.println("After Incrementable.increment called: ");System.out.println("st1.i = " + st1.i);System.out.println("st2.i = " + st2.i);st1.i = 3;System.out.println("After st1.i = 3, ");System.out.println("st1.i = " + st1.i);System.out.println("st2.i = " + st2.i);System.out.println("Create another StaticTest, st3.");StaticTest st3 = new StaticTest();System.out.println("st3.i = " + st3.i);}}练习9:public class AutoboxTest {public static void main(String[] args) {boolean b = false;char c = 'x';byte t = 8;short s = 16;int i = 32;long l = 64;float f = 0.32f;double d = 0.64;Boolean B = b;System.out.println("boolean b = " + b);System.out.println("Boolean B = " + B);Character C = c;System.out.println("char c = " + c);System.out.println("Character C = " + C);Byte T = t;System.out.println("byte t = " + t);System.out.println("Byte T = " + T);Short S = s;System.out.println("short s = " + s);System.out.println("Short S = " + S);Integer I = i;System.out.println("int i = " + i);System.out.println("Integer I = " + I);Long L = l;System.out.println("long l = " + l);System.out.println("Long L = " + L);Float F = f;System.out.println("Float F = " + F);Double D = d;System.out.println("double d = " + d);System.out.println("Double D = " + D);}}练习10:public class CommandArgTest {public static void main(String[] args) {int[]args1={1,2,3};System.out.println("args[0] = " + args1[0]);System.out.println("args[1] = " + args1[1]);System.out.println("args[2] = " + args1[2]);}}练习11:public class Rainbow {public static void main(String[] args) {AllTheColorsOfTheRainbow atc = new AllTheColorsOfTheRainbow();System.out.println("atc.anIntegerRepresentingColors = " + atc.anIntegerRepresentingColors);atc.changeColor(7);atc.changeTheHueOfTheColor(77);System.out.println("After color change, atc.anIntegerRepresentingColors = " + atc.anIntegerRepresentingColors);System.out.println("atc.hue = " + atc.hue);}}class AllTheColorsOfTheRainbow {int anIntegerRepresentingColors = 0;int hue = 0;void changeTheHueOfTheColor(int newHue) {hue = newHue;}int changeColor(int newColor) {return anIntegerRepresentingColors = newColor;}}练习12:public class DocTest {/** Entry poing to class & application.* @param args array of string arguments* @throws exceptions No exceptions thrown*/public static void main(String[] args) {System.out.println(new Date());}}练习13-1:public class Documentation1 {/** A field comment */public int i;/** A method comment */public void f() {}}2:public class Documentation2 {Date d = new Date();void showDate() {System.out.println("Date = " + d);}}3:public class Documentation3 {public static void main(String[] args) {Date d = new Date();System.out.println("d = " + d);}}练习14:public class Documentation4 {public int i = 2;private int j = 3;public static void main(String[] args) {Date d = new Date();System.out.println("d = " + d);}}练习15:public class HelloDocTest {public static void main(String[] args) {System.out.println("Hello World!");}}练习16:class Tree {int height;Tree() {System.out.println("Planting a seedling");height = 0;}Tree(int initialHeight) {height = initialHeight;System.out.println("Creating new tree that is " + height + " feet tall");}void info() {System.out.println("Tree is " + height + " feet tall");}void info(String s) {System.out.println(s + ": Tree is " + height + " feet tall");}}public class Overloading {public static void main(String[] args) {for(int i = 0; i < 5; i++) {Tree t = new Tree(i);();("overloading method");}// Overloaded constructor:new Tree();}}第三章练习1:public class PrintTest {public static void main(String[] args) {print("Hello, from short form.");P.rintln("Hello from greggordon form.");System.out.println("Hello from long form.");}}练习2:class Tube {float level;}public class Assign {public static void main(String[] args) {Tube t1 = new Tube();Tube t2 = new Tube();t1.level = 0.9f;t2.level = 0.47f;P.rintln("1: t1.level: " + t1.level + ", t2.level: " + t2.level);t1 = t2;P.rintln("2: t1.level: " + t1.level + ", t2.level: " + t2.level);t1.level = 0.27f;P.rintln("3: t1.level: " + t1.level + ", t2.level: " + t2.level);}}练习3:class Box {float a;}public class PassObject2 {static void f(Box y) {y.a = 2.71828f;}public static void main(String[] args) {Box x = new Box();x.a = 3.1416f;print("1: x.a = " + x.a);f(x);print("2: x.a = " + x.a);}}练习4:class VelocityCalculator {static float velocity (float d, float t) {if(t == 0) return 0f;else return d/t;}}public class VelocityTester {public static void main(String[] args) {float d = 565.3f;float t = 3.6f;System.out.println("Distance: " + d);System.out.println("Time: " + t);float v = VelocityCalculator.velocity(d, t);System.out.println("Velocity: " + v);}}练习5:class Dog {String name;String says;void setName(String n) {name = n;}void setSays(String s) {says = s;}void showName() {P.rintln(name);}void speak() {P.rintln(says);}}public class DogTest {public static void main(String[] args) {Dog spot = new Dog();spot.setName("Spot");spot.setSays("Ruff!");Dog scruffy = new Dog();scruffy.setName("Scruffy");scruffy.setSays("Wurf!");spot.showName();spot.speak();scruffy.showName();scruffy.speak();}}练习6:class Dog {String name;String says;void setName(String n) {name = n;}void setSays(String s) {says = s;}void showName() {P.rintln(name);}void speak() {P.rintln(says);}}public class DogCompare {public static void main(String[] args) {Dog spot = new Dog();spot.setName("Spot");spot.setSays("Ruff!");Dog scruffy = new Dog();scruffy.setName("Scruffy");scruffy.setSays("Wurf!");spot.showName();spot.speak();scruffy.showName();scruffy.speak();Dog butch = new Dog();butch.setName("Butch");butch.setSays("Hello!");butch.showName();butch.speak();P.rintln("Comparison: ");P.rintln("spot == butch: " + (spot == butch));P.rintln("spot.equals(butch): " + spot.equals(butch));P.rintln("butch.equals(spot): " + butch.equals(spot));P.rintln("Now assign: spot = butch");spot = butch;P.rintln("Compare again: ");P.rintln("spot == butch: " + (spot == butch));P.rintln("spot.equals(butch): " + spot.equals(butch));P.rintln("butch.equals(spot): " + butch.equals(spot));P.rintln("Spot: ");spot.showName();spot.speak();P.rintln("Butch: ");butch.showName();butch.speak();}}练习7:总之,在这一学年中,我不仅在业务能力上,还是在教育教学上都有了一定的提高。
第一章JAV A语言概论一、选择题1.下列不属于java语言特点的是:BA.java能检查程序在变异和运行时的错误B.java能运行虚拟机实现跨平台C.java自己操纵内存减少了内存出错的可能性D.java还实现了真数组,避免了覆盖数据的可能2.java语言的执行模式是:CA.全编译型B.全解释型C.半编译和半解释型D.同脚本语言的解释模式3.下列关于虚拟机说法错误的是:BA.虚拟机可以用软件实现B.虚拟机部可以用硬件实现C.字节码是虚拟机的机器码D.虚拟机把代码程序与各操作系统和硬件分开4.java语言是1995年由()公司发布的AA.SunB.MicrosoftC.BorlandD.Fox Software5.下列不是虚拟机执行过程特点的是AA.双线程B.多线程C.动态链接D.异常处理6.java以JVM为基础,最下层是移植接口,由适配器和()组成BA.网卡B.Java osC.Java基本类D.Java应用程序和applet小程序7.java程序的执行过程中用到一套JDK工具,其中javac.exe指AA.java语言编译器B.java字节码解释器C.java文档生成器D.java类分解器8.java的API结构中,不属于类库主要包括的核心包的是CA.java包B.javaxC.javadoc包扩展包9.每个java的编译单元可包含多个类或界面,但是每个编译单元最多只能有()类或者界面是公共的AA.一个B.两个C.四个D.任意多个10.在当前的java实现中,每个编译单元就是一个以()为后缀的文件AA.javaB.classC.docD.exe二、填空题1.1991年,SUN公司的Jame Gosling和Bill Joe等人,为电视、控制烤面包机等家用电器的交互操作开发了一个__oak__软件,它是java的前身。
2.java是一个网络编程语言,简单易学,利用了面向对象___的技术基础,但又独立于硬件结构,具有可移植性、健壮性、安全性、高性能。