当前位置:文档之家› Java实用教程(第三版)课后习题及答案

Java实用教程(第三版)课后习题及答案

Java实用教程(第三版)课后习题及答案
Java实用教程(第三版)课后习题及答案

JAVA实用教程(第三版)课后习题参考答案第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属性):

存放在另一个目录中。

答:以书中小应用程序为例进行说明:

①编写Java小应用程序源代码

import java.applet.*;

import java.awt.*;

public class Boy extends Applet

{

public void paint(Graphics g)

{

g.setColor(Color.red);

g.drawString("我一边喝着咖啡,一边学Java呢",5,30);

g.setColor(Color.blue);

g.drawString("我学得很认真",10,50);

}

}

②将上述代码命名为Boy.java并进行编译得到Boy.class字节码文件;将得到的字节码文件存放在

C:\5000文件夹下;

③编写小应用程序的HTML源文件:

④将上述编写好的代码命名为Boy.html;并将此文件存放在C:\5000文件夹以外的任意一个文件夹中(如C:\1000);

⑤运行Boy.html。

第2章标识符、关键字和数据类型

1. 什么叫标识符?标识符的规则是什么?

答:①用来标识类名、变量名、、方法名、类型名、数组名、文件名的有效字符序列。

②由字母、下划线、美元符号和数字组成,并且第一个字符不能是数字字符,而且关键字不能作为标识符。

2. 什么叫关键字?请说出5个关键字。

答:①Java语言中已经被赋予特定意义的一些单词。

②class break public return static extends等。

3. Java的基本数据类型都是什么?

答:boolean(逻辑型) char(字符型) float、double(浮点型) byte、short、int、long(整型)。

4. 下列哪些语句是错误的:

int x = 8;

byte b = 127;

b = x;

答:b=x语句错误;原因是高级别的变量赋值给低级别的变量时,一定要用显式转换即b=(byte)x; 。

5. 下列程序的输出结果是什么?

public class E

{

public static void main(String args[])

{

long[] a={1,2,3,4};

long[] b={100,200,300,400,500};

b=a;

System.out.println("数组b的长度:"+b.length);

System.out.println("b[0]="+b[0]);

}

}

答: 数组b的长度:4

b[0]=1

6. 上机运行下列程序,注意观察输出结果。

public class E

{

public static void main(String args[])

{

for(int i=20302;i<20322;i++)

{

System.out.println((char)i);

}

}

}

答: 低住佐佑佒体佔何佖佗佘余佚佛作佝佞佟你佡

7. System.out.println(“你好”);可输出字符串,也可以使用System.out.println( )输出变量或表达式的值,只需使用并置符号“+”将变量、表达式或一个常数值与一个字符串并置即可,如:

System.out.println(“”+x);System.out.println(“:”+123+“大于”+122);等。上机调试下列程序,注意观察结果,特别注意System.out.print( )和System.out.println( )的区别。

public class OutputData

{

public static void main(String args[])

{

int x=234,y=432;

System.out.println(x+"<"+(2*x));

System.out.print("我输出结果后不回车");

System.out.println("我输出结果后自动回车到下一行");

System.out.println("x+y= "+(x+y));

System.out.println(" "+x+y+"=234432");

}

}

答: 234<468

我输出结果后不回车我输出结果后自动回车到下一行

x+y= 666

234432=234432

8. 编写一个Java应用程序,输出全部的希腊字母。

答:

public class a

{

public static void main(String args[])

{System .out .println("这是我的第一个程序");}

}第3章运算符、表达式和语句

1. 下列程序的输出结果是什么?

public class E

{

public static void main(String args[])

{

char x='你',y='e',z='吃';

if(x>'A')

{

y='爱';

z='情';

}

else

y='我';

z='她';

System.out.println(" "+x+y+z);

}

}

答: 你爱她

2. 下列程序的输出结果是什么?

public class E3

{

public static void main(String args[])

{

char c='\0';

for(int i=1;i<=4;i++)

{

switch(i)

{

case 1:c='b';

System.out.print(c);

case 2:c='e';

System.out.print(c);

break;

case 3:c='p';

System.out.print(c);

default:

System.out.print("!");

}

}

}

}

答:beep!!

3. 编写应用程序,求1!+2!+…+10!。

答:

class Fact

{

public static void main(String args[])

{

int fact,sum=0;

for(int i=1;i<=10;i++)

{

fact=1;

for(int j=1;j<=i;j++)

fact*=j;

sum+=fact;

}

System.out.println("1到10的阶乘之和是:"+sum);

}

4. 编写一个应用程序,求100以内的全部素数。

答:

class Primes

{

public static void main(String args[])

{

int w=1;

for(int i=2;i<=100;i++)

{

for(int j=2;j

{

w=i%j;

if(w==0)

break;

}

if(w!=0)

System.out.println(i+"是素数");

}

}

}

5. 分别用do―while和for循环计算1+1/2!+1/3!+1/4!+…的前20项和。答: ①for循环

class Sum

{

public static void main(String args[])

{

int fact;

double sum=0;

for(int i=1;i<=20;i++)

{

fact=1;

for(int j=1;j<=i;j++)

fact*=j;

sum+=1.0/fact;

}

System.out.println(sum);

}

}

②do―while循环

class Sum

{

public static void main(String args[])

int i=1;

int fact;

double sum=0;

do

{

fact=1;

int j=0;

while(++j<=i)

fact*=j;

sum+=1.0/fact;

}

while(++i<=20);

System.out.println(sum);

}

}

6. 一个数如果恰好等于它的因子之和,这个数就称为“完数”。编写应用程序,求1000之内的所有完数。答:

class Wanshu

{

public static void main(String args[])

{

int x,i,sum;

for(x=1;x<=1000;x++)

{

sum=0;

for(i=1;i

{

if(x%i==0)

sum+=i;

}

if(x==sum)

System.out.println(x+"是完数");

}

}

}

7. 编写应用程序,分别使用while和for循环计算8+88+888+…前10项之和。

答: ①for循环

class TheSum

{

public static void main(String args[])

{

long sum=0,data=8;

for(int i=1;i<=10;i++)

sum=sum+data;

data=data*10+8;

}

System.out.println(sum);

}

}

②while循环

class TheSum

{

public static void main(String args[])

{

long sum=0,data=8,i=0;

while(++i<=10)

{

sum=sum+data;

data=data*10+8;

}

System.out.println(sum);

}

}

8. 编写应用程序,输出满足1+2+3+…+n<8888的最大正整数n。

答:

class Maxn

{

public static void main(String args[])

{

int k=1,sum=0;

while((sum+=k)<8888)

k++;

k--;

System.out.println("最大能取到:"+k);

}

}

第4章类、对象和接口

1. 类中的实例变量在什么时候会被分配内存空间?

答: 当该类创建对象之后,实例变量才会被分配相应的内存空间。

2. 什么叫方法的重载?构造方法可以重载吗?

答:①一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即或者是参数的个数不同,或者是参数的类型不同(方法的重载体现了多态性,即功能多态性)。

②构造方法可以重载。

3. 类中的实例方法可以操作类变量(static变量)吗?类方法(static方法)可以操作实例变量吗?

答:①类中的实例方法可以操作类变量。

②类方法不可以操作实例变量

4. 类中的实例方法可以用类名直接调用吗?

答: 类中的实例方法不可以用类名直接调用。

5. 举例说明protected方法和友好方法的区别。

答: 当子类与父类不在同一个包中时,子类可以继承父类的protected方法;而友好方法此时则不能被子类继承。

6. 举例说明类变量和实例变量的区别。

答:⑴书写: 定义成员变量时,类变量有static修饰;实例变量没有static修饰。

例: class A

{

int x; //实例变量

static int y; //类变量

}

⑵内存: 不创建对象,类的实例变量不会被分配内存空间;类变量被分配相应的内存空间。

不同对象的实例变量被分配不同的内存空间;不同对象的类变量被分配相同的内存空间。

任何一个对象改变类变量,其他对象的相应类变量也发生相应变化。

一个对象的实例变量发生改变,不影响其他对象的相应实例变量。

例: 执行语句: A1.x=10; A1.y=20;

这时A2.x的值也是10;而A2.y的值保持原来的初值。

⑶使用: 类变量可以被类方法操作;而实例变量不能被类方法操作。

例: class A

{

int x;

static int y;

static void func()

{

b=10; //合法

a=20; //非法

}

}

类变量可以通过类名访问;实例变量不能通过类名访问。

例: class A

{

int x;

static int y;

}

class B

{

public void func();

{

A.x=10; //非法

A.y=20; //合法

}

}

7. 子类将继承父类的哪些成员变量和方法?子类在什么情况下隐藏父类的成员变量和方法?在子类中是否允许有一个方法和父类的方法名字相同,而类型不同?

答:①子类和父类在同一个包中时,子类可以继承父类的除private属性的所有方法和成员变量,当子类与父类不在同一个包中时,子类只能继承父类的protected和public属性的成员变量和方法。

②子类中定义的成员变量和父类中的成员变量同名时,子类就隐藏了继承的成员变量;子类中定义一个方法,并且这个方法的名字、返回类型、参数个数和类型与从父类继承的方法完全相同,子类就隐藏从父类继承来的方法(方法的重写)。

③在子类中允许有一个方法和父类的方法名字相同而类型不同。

8. 父类的final方法可以被子类重写吗?

答: 父类的final方法不能被子类重写。

9. 什么类中可以有abstract方法?

答: abstract类中可以有abstract方法。

10.什么叫对象的上转型对象?

答: B类是A类的子类或间接子类,当用子类B创建一个对象b并把这个对象的引用放到A类的对象a中时,称A 类对象a是子类对象b的上转型对象。

11.什么叫接口的回调?

答: 可以把实现某一接口的类创建的对象的引用赋给该接口声明的接口变量中。

12.下列程序有什么错误?

public class Takecare

{

int a=90;

static float b=10.98f;

public static void main(String args[])

{

float c=a+b;

System.out.println("c="+c);

}

}

答: 语句float c=a+b;错误。原因是类方法main操作了实例变量a。

13. 请写出下列程序的输出结果。

class A

{

public int f(int x)

{

return x+1;

}

}

class B extends A

{

public int f(int x)

{

return x*x;

}

}

public class E

{

public static void main(String args[]) {

A a=new B();

int m=a.f(10);

System.out.println(m);

}

}

答: 100

14. 请写出下列程序的输出结果。

class A

{

int x;

public void setX(int x)

{

this.x=x;

}

int getX()

{

return x;

}

}

class B

{

public void f(A a)

{

a.setX(100);

}

}

public class E

{

public static void main(String args[]) {

A a=new A();

a.setX(8);

System.out.println(a.getX());

B b=new B();

b.f(a);

System.out.println(a.getX());

}

}

答: 8

100

15.使用接口有哪些注意事项?模仿例子4.27,编写一个类实现两个接口的程序。

答:①一个类使用接口时,要有implements关键字,当一个类使用多个接口时,接口名要用逗号“,”隔开;使用接口的类除abstract类外,必须实现接口的所有方法,并且实现接口的方法时,方法名字、返回类型、参数个数及类型必须与接口中的完全一致;类在实现接口时,方法体一定要用public修饰,如果接口方法的返回类型不是void型,在类中实现接口时,方法体至少有一个return语句。

② interface 表面积

{

double allArea(double r);

}

interface 体积

{

double volu(double r);

}

class Sph implements 表面积,体积

{

double PI=3.14159;

public double allArea(double r)

{

return 4*PI*r*r;

}

public double volu(double r)

{

return 4.0/3*PI*r*r*r;

}

}

public class Test

{

public static void main(String args[])

{

double r=5.0;

Sph a=new Sph();

System.out.println("半径为5的球的表面积是:"+a.allArea(r));

System.out.println("半径为5的球的体积是:"+a.volu(r));

}

}

16.编写一个类A,该类创建的对象可以调用方法f输出英文字母表,然后再编写一个该类的子类B,要求子类B必须继承A类的方法f(不允许重写),子类创建的对象不仅可以调用方法f输出英文字母表,而且调用子类新增的方法g输出希腊字母表。

答: class A

{

int m;

void f()

{

for(m=65;m<91;m++)

System.out.print((char)m+" ");

for(m=97;m<123;m++)

System.out.print((char)m+" ");

System.out.println(" ");

}

}

class B extends A

{

int i;

void g()

{

for(i=913;i<930;i++)

System.out.print((char)i+" ");

for(i=931;i<938;i++)

System.out.print((char)i+" ");

for(i=945;i<962;i++)

System.out.print((char)i+" ");

for(i=963;i<970;i++)

System.out.print((char)i+" ");

System.out.println(" ");

}

}

public class Test

{

public static void main(String args[])

{

B b=new B();

System.out.println("我调用方法f输出英文字母表:");

b.f();

System.out.println("我调用方法g输出希腊字母表:");

b.g();

}

}

17.编写一个异常类MyException,再编写一个类Student,该类有一个产生异常的方法public void speak(int m) throws MyException,要求参数m的值大于1000时,方法抛出一个MyException对象。最后编写主类,在主类的main方法中用Student创建一个对象,让该对象调用speak方法。

答: class MyException extends Exception

{

String str1;

MyException(int m)

{

str1=m+"出现错误可能造成的原因是取值大于1000";

}

public void showStr1()

{

System.out.println(str1);

}

}

class Student

{

public void speak(int m) throws MyException

{

if(m>1000)

{

MyException exception=new MyException(m);

throw exception;

}

else

System.out.println(m);

}

}

public class Test

{

public static void main(String agrs[])

{

int m;

Student stu1=new Student();

m=987;

try

{

stu1.speak(m);

m=1234;

stu1.speak(m);

}

catch(MyException e)

{

e.showStr1();

}

}

}

18.编写一个类,该类有一个方法public int f(int a,int b),该方法返回a和b的最大公约数。然后再编写一个该类的子类,要求子类重写方法f,而且重写的方法将返回a和b的最小公倍数。要求在重写的方法的方法体中首先调用被隐藏的方法返回a和b的最大公约数m,然后将乘积(a*b)/m返回。要求在应用程序的主类中分别使用父类和子类创建对象,并分别调用方法f计算两个正整数的最大公约数和最小公倍数。

答: class A

{

public int f(int a,int b)

{

if(a

{

int temp=0;

temp=a;

a=b;

b=temp;

}

int r=a%b;

while(r!=0)

{

a=b;

b=r;

r=a%b;

}

return b;

}

}

class B extends A

{

public int f(int a,int b)

{

int m;

m=super.f(a,b);

return (a*b)/m;

}

}

public class Test

{

public static void main(String args[])

{

A a=new A();

System.out.println("18和102的最大公约数是:"+a.f(18,102));

B b=new B();

System.out.println("18和102的最小公倍数是:"+b.f(18,102));

}

}

第5章字符串

1. 使用String类的public String toUpperCase()方法可以将一个字符串中的小写字母变成大写字母,使用public String toLowerCase()方法可以将一个字符串中的大写字母变成小写字母。编写一个程序,使用这两个方法实现大小写的转换。

答: class Test

{

public static void main(String args[])

{

String str="I can use Java";

System.out.println("要转换的字符串是:"+str);

String s=str.toUpperCase();

System.out.println("转换成大写字符串是:"+s);

s=str.toLowerCase();

System.out.println("转换成小写字符串是:"+s);

}

}

2. 使用String类的public String concat(String str)方法可以把调用该方法的字符串与参数指定的字符串连接,把str指定的串连接到当前串的尾部获得一个新的串。编写一个程序通过连接两个串得到一个新串,并输出这个新串。

答: class Test

{

public static void main(String args[])

{

String str1="I can u";

String str2="se Java";

String s=str1.concat(str2);

System.out.println("将字符串"+str1+"与字符串"+str2+"连接后得到的新字符串是:");

System.out.println(s);

}

}

3. String类的public char charAt(int index)方法可以得到当前字符串index位置上的一个字符。说出下列程序的输出结果。

public class E3

{

public static void main(String args[])

{

String s="中国科学技术大学";

char a=s.charAt(2),b=s.charAt(6);

System.out.print(a);

System.out.println(b);

}

}

答: 科大

4. 使用java.util包中的Arrays类的静态方法public static void sort(double a[])可以把参数a指定的double型数组按升序排序,使用java.util包中的Arrays类的静态方法public static void sort(double a[],int start,int end)可以把参数a指定的double型数组中从位置start到end-1位置的数按升序排序。写出下列程序的输出结果。

import java.util.*;

public class E4

{

public static void main(String args[])

{

int a[]={23,67,89,90,-987};

double b[]={12.89,90.87,34,678.987,-98.78,0.89};

Arrays.sort(a);

Arrays.sort(b,1,4);

for(int i=0;i<=4;i++)

{

System.out.print(a[i]+",");

}

for(int i=0;i

{

System.out.print(b[i]+",");

}

}

}

答: -987,23,67,89,90,12.89,34.0,90.87,678.987,-98.78,0.89,

5. 使用https://www.doczj.com/doc/2a578588.html,ng包中System类的静态方法arraycopy可以实现数组的快速复制,上机实习下列程序,并总结出arraycopy方法参数的使用规则。

public class ArrayCopy

{

public static void main(String args[])

{

char a1[]={'a','b','c','d','e','f'},b1[]={'1','2','3','4','5','6'};

System.arraycopy(a1,0,b1,1,a1.length-1);

System.out.println(new String(a1));

System.out.println(new String(b1));

byte a2[]={97,98,99,100,101,102},b2[]={65,67,68,69,70,71};

System.arraycopy(b2,0,a2,3,b2.length-3);

System.out.println(new String(a2));

System.out.println(new String(b2));

}

}

答:①运行结果:abcdef

1abcde

abcACD

ACDEFG

②arraycopy的方法是public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)。其中五个参数分别表示:

src - 被复制的数组

srcPos - 从第几个元素开始复制

dest - 要复制到的数组

destPos - 从第几个元素开始粘贴

length - 一共需要复制的元素个数

第6章时间、日期和数字

1. 用Data类不带参数的构造方法创建日期,要求日期的输出格式是:星期小时分秒。

答: import java.util.*;

import java.text.*;

class Test

{

public static void main(String args[])

{

Date 时间=new Date();

SimpleDateFormat s=new SimpleDateFormat("E HH时 mm分 ss秒");

System.out.println(s.format(时间));

}

}

2. 输出2006年2月的日历页,程序需处理闰年问题。

答: import java.util.*;

class Test

{

public static void main(String args[])

{

int year=2006,month=2;

int allDay;

if((year%4==0&&year%100!=0)||(year%400==0))

allDay=29;

else

allDay=28;

Calendar feb=Calendar.getInstance();

feb.set(2006,1,1);

int dat=feb.get(Calendar.DAY_OF_WEEK)-1;

String a[]=new String[dat+allDay];

for(int i=0;i

{

a[i]=" ";

}

for(int i=dat,n=1;i<(dat+allDay);i++)

{

if(n<=9)

a[i]=String.valueOf(n)+" ";

else

a[i]=String.valueOf(n)+" ";

n++;

}

System.out.println(" "+year+" 年 "+month+"月");

System.out.println("日一二三四五六");

for(int j=0;j

{

if(j%7==0)

{

System.out.println(" ");

}

System.out.print(a[j]);

}

}

}

3. 计算某年、某月、某日和某年、某月、某日之间的天数间隔。要求年、月、日通过main方法的参数传递到程序中。

答: import java.util.*;

class Test

{

public static void main(String args[])

{

Calendar c=Calendar.getInstance();

c.set(2000,0,1);

long time1=c.getTimeInMillis();

c.set(2008,7,8);

long time2=c.getTimeInMillis();

long dayCous=(time2-time1)/(1000*60*60*24);

System.out.println("2008年8月8日和2000年1月1日相隔"+dayCous+"天"); }

}

4. 编程练习 Math类的常用方法。

答: import java.text.*;

public class Test

{

public static void main(String args[])

{

double a=Math.abs(-10);

System.out.println("-10的绝对值是:"+a);

double maxNum=Math.max(123.456,-5.4321);

System.out.println("123.456与-5.4321中的最大值是:"+maxNum);

double minNum=Math.min(123.456,-5.4321);

System.out.println("123.456与-5.4321中的最小值是:"+minNum);

int randomNum=(int)(Math.random()*10)+1;

System.out.println("输出一个1到10的随机数是:"+randomNum);

double powNum=Math.pow(2,10);

System.out.println("2的10次幂是:"+powNum);

double sqrtNum=Math.sqrt(10);

System.out.println("10的平方根是:"+sqrtNum);

double logNum=Math.log(2);

System.out.println("2的对数是:"+logNum);

double sinNum=Math.sin(-10);

System.out.println("-10的正弦值是:"+sinNum);

double asinNum=Math.asin(0.5);

System.out.println("0.5的反正弦值是:"+asinNum);

System.out.println("格式化之前的数是:"+sqrtNum);

NumberFormat f=NumberFormat.getInstance();

f.setMaximumFractionDigits(10);

f.setMinimumIntegerDigits(4);

String s=f.format(sqrtNum);

System.out.println("格式化后:"+s);

}

}

5. 使用BigInteger类计算1!+3!+5!+7!+…的前30项的和。

答: import java.math.*;

public class Test

{

public static void main(String args[])

{

BigInteger sum=new BigInteger("0"),

jieCheng=new BigInteger("1"),

ONE=new BigInteger("1"),

i=ONE;

int k=0;

while(++k<=30)

{

sum=sum.add(jieCheng);

i=i.add(ONE);

jieCheng=jieCheng.multiply(i);

i=i.add(ONE);

jieCheng=jieCheng.multiply(i);

}

System.out.println(sum);

}

}

第7章 AWT组件及事件处理

1. Frame类对象的默认布局是什么布局?和Panel类对象的默认布局相同吗?

答:①Frame类对象的默认布局是BorderLayout布局;

②不相同,Panel类对象的默认布局是FlowLayout布局。

2. 一个容器对象是否可以使用add方法添加一个Frame窗口?

答: 不可以。

3. Checkbox对象可以触发ItemEvent事件吗?

答: 可以。

4. 编写应用程序,有一个标题为“计算的窗口”的窗口,窗口的布局为FlowLayout布局。窗口中添加两个文本区,当我们在一个文本区中输入若干个数时,另一个文本区,同时对输入的数进行求和运算并求出平均值,也就是说随着输入的变化,另一个文本区不断地更新求和及平均值。

答: import java.awt.*;

import java.awt.event.*;

import java.util.*;

class Calculated extends Frame implements TextListener

{

TextArea text1,text2; //定义了2个文本区

Calculated(String s) //标题为“计算的窗口”的窗口

{

super(s);

java课后题答案

第1章Java概述 1.编译java application源程序文件将产生相应的字节码文件,这些字节码文件别 的扩展名为、java 2.执行一个java程序fristapp的方法就是运行java fristapp 3.main()方法的返回类型就是void 4.在java代码中,public static void main方法的参数描述正确的就是string args 【】,string【】args 5.内存的回收程序负责释放无用内存√ 6.java体系主要分为java ME,Java SE,JavaEE三大块 第2章Java基础 1.Java语言中,下列标识符错误的就是40name 2.java变量中,以下不属于引用类型的数据类型就是字符型 3.double d=5、3E12 × 4.C 5.A 6.for循环的一般形式为;for(初值;终值;增量),以下对for循环的叙述,正确 的就是初值与增量都就是赋值语句,终值就是条件判断语句 7.当输入下面选项中3值时,将会输出default 8.下面哪种方法能够支持javadoc命令/**…*/ 9.下面声明一个string类型的数组正确的就是string str[] 10.下面定义一个整型数组,不合法的就是int[][]array=new int[][4]; 11.给定代码;。。。。。下面叙述正确的就是输出的结果为:0 12.java语言规定,标示符只能由字母,数字美元符$与下划线租成,并且第一个 字符不能就是数字;java就是区分大小写的。 13.表达式1/2*3的计算结果就是0;设x=2,则表达式(x++)/3的值就是0 14.数组的长度可以用其属性lengt h获得;创建一个数组对象可以使用new关键 字创建 第3章面向对象基础 1.在java中引用对象变量与对象间有什么关系?引用变量就是指向对象的一个指针 2.对象就是面向对象技术的核心所在,在面向对象程序设计中,对象就是累的抽象× 3.构造方法何时被调用?创建对象时 4.A,B,D 5.在java语言中在包p1中包含包p2,类A直接隶属于p1,类B直接隶属于包p2、在类c中 要使用类a的方法与类b的方法b,需要选择import p1、*; import p1、p2,*;

JAVA练习题含答案-answers to practice 2

Multiple Choice 1)Which operator is used to concatenate two strings? (a)+ (b)– (c)* (d)/ Answer: A (see page 35) 2)Which operator returns the remainder of integer division? (a)% (b)/ (c)* (d)none of the above Answer: A (see page 26) 3)What is the value of the variable c in the statements that follow? String phrase = "Make hay while the sun is shining."; char c = phrase.charAt(10); (a)w (b)h (c)i (d)None of the above Answer: B (see page 40) 4)The escape sequence the represents the new-line character is: (a)\r (b)\t (c)\n (d)\\ Answer: C (see page 43) 5)The syntax that declares a Java named constant named SALES_TAX is: (a)double SALES_TAX = 7.50; (b)public double SALES_TAX = 7.50; (c)public static double SALES_TAX = 7.50; (d)public static final double SALES_TAX = 7.50; Answer: D (see page 47)

Java基础入门课后习题及答案

《Java基础入门》课后习题 第1章Java开发入门 一、填空题 1、Java的三大体系分别是_JavaSE_____、_JavaEE_____、_JavaME_____。 2、Java程序的运行环境简称之为JRE_____。 3、编译Java程序需要使用_javac_____命令。 4、javac.exe和java.exe两个可执行程序存放在JDK安装目录的bin______目录下。 5、path______环境变量用来存储Java的编译和运行工具所在的路径,而_classpath_____环境变量则用 来保存保存Java虚拟机要运行的“.class”文件路径。 二、选择题 1、以下选项中,哪些属于JDK工具?(多选)ABCD A、Java编译器 B、Java运行工具 C、Java文档生成工具 D、Java打包工具 2、Java属于以下哪种语言?C A、机器语言 B、汇编语言 C、高级语言 D、以上都不对 3、下面哪种类型的文件可以在Java虚拟机中运行?D A、.java B、.jre C、.exe D、.class 4、安装好JDK后,在其bin目录下有许多exe可执行文件,其中java.exe命令的作用是以下哪一种?B A、Java文档制作工具 B、Java解释器 C、Java编译器 D、Java启动器 5、如果jdk的安装路径为:d:\jdk,若想在命令窗口中任何当前路径下,都可以直接使用javac和java 命令,需要将环境变量path设置为以下哪个选项?B A.d:\jdk; B.d :\jdk\bin; C.d:\jre\bin; D.d:\jre;

javaSE选择题50道判断题30道

一、不定项选择题:(50题) 1.下列关于JDK、JRE和JVM的描述,正确的是?D A.JRE中包含了JDK,JVM中包含了JRE B.JRE中包含了JDK,JDK中包含了JVM C.JDK中包含了JRE,JVM中包含了JRE D.JDK中包含了JRE,JRE中包含了JVM 2.以下关于JVM的叙述,正确的是?AC A.JVM运行于操作系统之上,它依赖于操作系统 B.JVM运行于操作系统之上,它与操作系统无关 C.JVM支持Java程序运行,它能够直接运行Java字节码文件 D.JVM支持Java程序运行,它能够直接运行Java源代码文件 3.JVM在执行一个Java类时,大致采用以下过程?A A.装载类一>校验类一>执行类中的代码 B.装载类一>执行类中的代码一>校验类 C.校验类一>装载类一>执行类中的代码 D.执行类中的代码一>装载类一>校验类 4.以下关于Java文件名的叙述,正确的有?AD A.Java源文件的扩展名应为.java B.Java字节码文件的扩展名应为.java C.一个Java源文件中只能包含一个Java类 D.Java源文件的文件名应与文件中被public修饰的类的类名一致 5.下列哪项不是int类型的字面量?C A.20 B.077 C.\u03A6 D.0xABBC 6.下列哪项不属于Java语言的基本数据类型?B A.int B.String C.double D.boolean 7.下列哪项不是有效的标识符?AC A.2test B.userName C.$car.text D._password

8.现有如下五个声明: Line1: int _hi=6; Line2:int $dollars=8; Line3: int %opercent=9; Line4: int big=Integer.getlnteger("7"); Line5: int a_really_really_really_long_variable_name=5 ; 哪行无法通过编译?B A.Line1 B.Line3 C. Line4 D. Line5 9.表达式:double d = 1-2/5*5+2*5;d的值是哪项?D C.9 D.11 10.现有代码片段: String s="123"; String s1=s+456; 请问s1的结果是哪项?A A.123456 B.579 C.编译错误 D.运行时抛出异常 11.现有: 1.class Test4 { 2. public static void main (String [] args) { 3.boolean x=false; 4.boolean y=true; 5.short z=42; 6. 7. if((z++==42)&&(y==true))z++; 8. if((x==false)||(++z==45))z++; 9. 10. System. out.println("z="+z); 11. } 12.} 结果为:C A. z=42

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)x 5。下列哪些语句是错的? 答:y=d;错,应y=(float)d 6。下列两个语句是等价的吗? 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,127 8.数组是基本数据类型吗?怎样获取数组的长度? 答:不是基本数据类型,是复合数据类型。可以通过:数组名.length

软件工程实践者的研究方法(中文版第七版)课后习题答案

作业答案。 2.1 a.设计者对于用户要问的问题: 项目的目标是什么?做到什么程度就成功了?谁会对项目的成功做最后的评判?项目的使用者包括那些? b. 用户对设计者应该问的问题: 目前问题有哪些解决方案,项目完成有哪些难点,在时间范围内能否完成? c. 软件问题用户自问? 还有其他解决方案吗?哪些功能是必须的?乙方资质和能力够吗? d. 软件过程问题自问? 用敏捷还是用瀑布?质量检查点分别有哪些?有几个MileStone? 2.2 为沟通活动设计一系列动作,选定其一并设计任务集。 (批作业的时候,以合理为目标,不一定要一样) 需求获取、需求规范说明(建模)、需求协商、需求确认等。 例如,书上page 23。 2.7 详细描述三个适合用于瀑布模型的软件项目。 (要求学生不仅仅列出项目的名称,而要说明为什么适合) 瀑布模型适合于项目开发而不是产品开发。信息管理系统一般适合于用瀑布模型。因为这类系统业务功能较为明确,架构比较单一,技术难点较少。图书馆系统、销售管理系统都是。 3.11 重构:已经写好的正确的代码,不断修正,使得代码更加精简并易读。 结对编程:两个人同时编写一段代码,一般一个人负责实现,一个人负责检查代码质量。 3.16 利用FDD,为“Web浏览器”定义一系列特征集合与特征。 特征集合模板: an 如:出售一件商品 特征定义模板: the a(n) 特征集合:展示Web页面内容。 特征: 1)本地解析HTML页面 2)展示HTML页面 3)从网络上下载页面相关图片 4)在浏览器上展示图片 附加:统一过程模型的图。 (要求有图有说明)

java100道选择题含答案

1. 下列不可作为java语言标识符的是(D) A) a1 B) $1 C) _1 D) 11 2. 有一段java 应用程序,它的主类名是a1,那么保存它的源文件名可以是(A) A) a1.java B) a1.class C) a1 D) 都对 3. 整型数据类型中,需要内存空间最少的是(D) A) short B) long C) int D) byte 4. Java 类可以作为(C) A) 类型定义机制 B) 数据封装机制 C) 类型定义机制和数据封装机制 D) 上述都不对 5. 在创建对象时必须(C) A) 先声明对象,然后才能使用对象 B) 先声明对象,为对象分配内存空间,然后才能使用对象 C) 先声明对象,为对象分配内存空间,对对象初始化,然后才能使用对象 D) 上述说法都对 6. 在调用方法时,若要使方法改变实参的值,可以(B) A) 用基本数据类型作为参数 B) 用对象作为参数 C) A和B都对 D) A和B都不对 7. Java中(C) A) 一个子类可以有多个父类,一个父类也可以有多个子类 B) 一个子类可以有多个父类,但一个父类只可以有一个子类 C) 一个子类可以有一个父类,但一个父类可以有多个子类 D) 上述说法都不对 8. Java语言具有许多优点和特点,哪个反映了Java程序并行机制的特点?(B) A) 安全性B) 多线性C) 跨平台D) 可移植 9. Character流与Byte流的区别是(C) A) 每次读入的字节数不同B) 前者带有缓冲,后者没有 C) 前者是字符读写,后者是字节读写D) 二者没有区别,可以互换使用 10. 以下声明合法的是( D ) A、default String s; B、public final static native int w( )

java课后习题及答案

第一章JA V A语言概论 一、选择题 1. 下列不属于java语言特点的是:B A. java能检查程序在变异和运行时的错误 B. java 能运行虚拟机实现跨平台 C. java 自己操纵内存减少了内存出错的可能性 D. java 还实现了真数组,避免了覆盖数据的可能 2. java语言的执行模式是:C A. 全编译型 B. 全解释型 C. 半编译和半解释型 D. 同脚本语言的解释模式 3. 下列关于虚拟机说法错误的是:B A. 虚拟机可以用软件实现 B. 虚拟机部可以用硬件实现 C. 字节码是虚拟机的机器码 D. 虚拟机把代码程序与各操作系统和硬件分开 4. java语言是1995年由()公司发布的A A. Sun B. Microsoft C. Borland D. Fox Software 5. 下列不是虚拟机执行过程特点的是A A. 双线程 B. 多线程 C. 动态链接 D. 异常处理 6. java以JVM为基础,最下层是移植接口,由适配器和()组成B A. 网卡 B. Java os C. Java基本类 D. Java 应用程序和applet小程序 7. java程序的执行过程中用到一套JDK工具,其中javac.exe指A A. java语言编译器 B. java字节码解释器 C. java文档生成器 D. java类分解器 8. java的API结构中,不属于类库主要包括的核心包的是C A. java包 B. javax C. javadoc包 D. org扩展包 9. 每个java的编译单元可包含多个类或界面,但是每个编译单元最多只能有()类或者界面是公共的A

《Java语言程序设计(基础篇)》(第10版 梁勇 著)第十七章练习题答案

《Java语言程序设计(基础篇)》(第10版梁勇著) 第十七章练习题答案 17.1 import java.io.*; import java.util.*; public class Exercise17_01 { public static void main(String[] args) throws IOException { try ( Formatter output = new Formatter(new FileOutputStream("Exercise17_01.txt", true)); ) { for (int i = 0; i < 100; i++) output.format("%d", (int)(Math.random() * 100000)); } } } 17.2 import java.io.*; public class Exercise17_02 { public static void main(String[] args) throws IOException { try ( DataOutputStream output = new DataOutputStream(new FileOutputStream("Exercise17_02.dat", true)); ) { for (int i = 0; i < 100; i++) output.writeInt((int)(Math.random() * 100000)); } System.out.println("Done"); } } 17.3 import java.io.*;

JAVA填空选择题库

一、选择题(共10道题,每道题有4个选项,只有一个选项是正确的;每道题2分,共计20分) 1.下面哪一个文件包含名为HelloWorld的类的字节码(B)。 A.HelloWorld.java B.HelloWorld.class C.HelloWorld.exe D.HelloWorld.javadoc 2.JDK6.0版本成功安装后,在指定的安装位置将出现jdk1.6.0_21目录,该目录下用于存放编译器、解释器等各类工具的子目录是(C)。 A.jre B.lib C.bin D.demo 3.编译运行以下程序后,关于输出结果的显示正确的是(D)。 public class Test{ public static void main(String args[ ]){ byte b=2, e=3; //---------------1 byte f=b+e; //----------------2 System.out.println(f); } } A.编译通过,运行时打印输出5B.编译通过,运行时打印输出23 C.编译不通过,在//1处有错误,不能这样定义变量 D.编译不通过,在//2处有错误,因为此处f必须是一个int类性的变量 4.类的设计要求它的某个成员变量不能被任何外部类直接访问,则使用下面的哪个修饰符能够获得需要的访问控制(A)A.private B.default C.protected D.public 5.已知给出以下代码,则下列选项中正确的是(C)。 public interface Top{ public void twiddle(String s); } A.public abstract class Sub implements Top{ public abstract void twiddle(String s){ } } C.public abstract class Sub implements Top{ } B.public class Sub extends Top{ public void twiddle(Integer i){ } } D.public class Sub implements Top{ public void twiddle(Integer i){ 6.下列哪个选项可以计算出角度为42度的余弦值(B)。 A.double d=Math.cos(42); B.double d=Math.cos(Math.toRadians(42)); C.double d=Math.conine(42) ; D.double d=Math.cos(Math.toDegrees(42)); 7.给定一个未完成的方法,代码如下: 1: 2:{ success = connect( ); 3:if (success==-1) { 4:throw new TimedOutException(); 5:} 6:} 已知TimedOutException不属于RuntimeException,那么在第一行的位置上填写哪段代码能够完成该方法的声明?(D)A.public void method() B.public void method() throw TimedOutException C.public void method() throws RuntimeException D.public void method() throws TimedOut Exception 8.当编译并运行下列代码时其运行结果是(A)。

Java大学使实用教程复习资料

1.“java编译器将源文件编译为的字节码文件是机器码”这句话正确吗? 答:不正确。 2.java应用程序的主类必须含有怎样的方法? 答:含有main方法。 3.“java应用程序必须有一个类是public类”这句话正确吗? 答;不正确,只能有一个public类 4.。“java Applet程序的主类必须是public类”这句话正确吗? 答:正确,因为java Applet主类必须是Applet类的子类并且是public的类。 6.请叙述java源程序的命名规则。 答:与public的类同名 7.源文件生成的字节码文件在运行时都加载到内存中吗? 答:非也,动态随需要运行才加载。 8.下列哪些语句是错的? Int x=120; Byte b=120; B=x; 答:B=x;错应为b=(byte)x 9.下列哪些语句是错的? Float x=12.0; Float y=12; Double d=12; Y=d; 答:y=d;错,应y=(float)d 10.下列两个语句是等价的吗? Char x=97; Char x=…a?; 答:是等价的 11.下列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,127 12假设有两个int类型数组: Int[] a=new int[10]; Int[] b=new int[8]; b=a; A[0]=100; B[0]的值一定是100吗? 答;一定,因为a数组与b数组引用相同。

java练习题答案

第1章java语言概述习题 一、填空题 1、面向对象程序的主要特征:继承,__封装___,___多态 _____。 2、java中的继承机制之所以能够降低程序的复杂性,提高程序的效率,主要是 因为它使代码可以__重用或复用___. 3、java语言中,为将源代码翻译成 __字节码__文件时产生的错误称为编译错误, 而将程序在运行中产生的错误称为运行错误。 4、javac是java语言中的编译器,基本语法是:javac[选项] __文件名__,java 是java语言中的解释执行器,基本语法是:java[选项]___类名___. 5、java语言的主要贡献者是谁James gosling 二、[ 三、单选题 1、编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文 件的扩展名为( B)。 A、java B、.class C、html D、.exe 2、main方法是Java Application程序执行的入口点,关于main方法的方法首 部, 以下(B)项是合法的。 A、public static void main() B、public static void main(String args[]) C、public static int main(String[] arg) ) D、public void main(String arg[]) 三、判断 1、Java语言具有较好的安全性和可移植性及与平台无关等特性。√ 2、Java语言的源程序不是编译型的,而是编译解释型的。√ 四、问答题 1、编写、运行java程序需要经过哪些主要步骤 答:1.编写源文件,扩展名必须是.java 2.编写java源程序,使用java编译器编写源文件,得到字节码文件 ~ 3.运行java程序,使用javaSE平台只不过的java解释器来解释执行字 节码文件。 2、阅读下列java源代码文件,并回答问题 public class Speak{ void speakHello(){ "I'm glad to meet you"); } } … class Xiti8{

操作系统概念第七版习题答案(中文版)完整版

1.1 在多道程序和分时环境中,多个用户同时共享一个系统,这种情况导致多种安全问题。a. 列出此类的问题b.在一个分时机器中,能否确保像在专用机器上一样的安全度?并解释之。 Answer:a.窃取或者复制某用户的程序或数据;没有合理的预算来使用资源(CPU,内存,磁盘空间,外围设备)b.应该不行,因为人类设计的任何保护机制都会不可避免的被另外的人所破译,而且很自信的认为程序本身的实现是正确的是一件困难的事。 1.2 资源的利用问题在各种各样的操作系统中出现。试例举在下列的环境中哪种资源必须被严格的管理。(a)大型电脑或迷你电脑系统(b)与服务器相联的工作站(c)手持电脑 Answer: (a)大型电脑或迷你电脑系统:内存和CPU 资源,外存,网络带宽(b)与服务器相联的工作站:内存和CPU 资源(c)手持电脑:功率消耗,内存资源 1.3 在什么情况下一个用户使用一个分时系统比使用一台个人计算机或单用户工作站更好? Answer:当另外使用分时系统的用户较少时,任务十分巨大,硬件速度很快,分时系统有意义。充分利用该系统可以对用户的问题产生影响。比起个人电脑,问题可以被更快的解决。还有一种可能发生的情况是在同一时间有许多另外的用户在同一时间使用资源。当作业足够小,且能在个人计算机上合理的运行时,以及当个人计算机的性能能够充分的运行程序来达到用户的满意时,个人计算机是最好的,。 1.4 在下面举出的三个功能中,哪个功能在下列两种环境下,(a)手持装置(b)实时系统需要操作系统的支持?(a)批处理程序(b)虚拟存储器(c)分时 Answer:对于实时系统来说,操作系统需要以一种公平的方式支持虚拟存储器和分时系统。对于手持系统,操作系统需要提供虚拟存储器,但是不需要提供分时系统。批处理程序在两种环境中都是非必需的。 1.5 描述对称多处理(SMP)和非对称多处理之间的区别。多处理系统的三个优点和一个缺点? Answer:SMP意味着所以处理器都对等,而且I/O 可以在任何处理器上运行。非对称多处理有一个主处理器控制系统,与剩下的处理器是随从关系。主处理器为从处理器安排工作,而且I/O 也只在主处理器上运行。多处理器系统能比单处理器系统节省资金,这是因为他们能共享外设,大容量存储和电源供给。它们可以更快速的运行程序和增加可靠性。多处理器系统能比单处理器系统在软、硬件上也更复杂(增加计算量、规模经济、增加可靠性) 1.6 集群系统与多道程序系统的区别是什么?两台机器属于一个集群来协作提供一个高可靠性的服务器的要求是什么? Answer:集群系统是由多个计算机耦合成单一系统并分布于整个集群来完成计算任务。另一方面,多道程序系统可以被看做是一个有多个CPU 组成的单一的物理实体。集群系统的耦合度比多道程序系统的要低。集群系统通过消息进行通信,而多道程序系统是通过共享的存储空间。为了两台处理器提供较高的可靠性服务,两台机器上的状态必须被复制,并且要持续的更新。当一台处理器出现故障时,另一台处理器能够接管故障处理的功能。

Java高级编程选择题

1.Thread类用来创建和控制线程,一个线程从下面( )方法开始执行。 A.init() B.start() C.run() D.notifyAll() 2.实现线程体的方式除了继承Thread类,还可以实现( )接口。 A.Cloneable B.Runnable C.Iterable D.Serializable 3.哪个方法是实现Runnable接口所需的? A.wait() B.run() C.stop() D.update() 4.下面让线程休眠1分钟的正确方法是() A.sleep(1) B.sleep(60) C.sleep(1000) D.sleep(60000) 5.以下哪个最准确描述synchronized关键字? A.允许两线程并行运行,而且互相通信; B.保证在某时刻只有一个线程可访问方法或对象; C.保证允许两个或更多处理同时开始和结束; D.保证两个或更多线程同时开始和结束。 6.于Java语言的内存回收机制,下列选项中最正确的一项是( )。 A.Java程序要求用户必须手工创建一个线程来释放内存 B.Java程序允许用户使用指针来释放内存 C.内存回收线程负责释放无用内存 D.内存回收线程不能释放内存对象 7.在java程序中,下列关于线程的说法错误的是: ( ) A.run方法是运行线程的主体 B.多个进程运行时执行顺序是按顺序执行的 C.如果线程死亡,它便不能运行 D.在java中,高优先级的可运行线程会抢占低优先级线程 8.编写线程类,要继承的父类是: A.Object

B.Runnable C.Exception D.Thread 9.启动一个线程的方法是哪项? A . join ( ) B . runf ) C . start ( ) D . sleep ( ) 10.编写线程类,可以通过实现那个接口来实现? A.Runnable B.Throwable C.Serializable https://www.doczj.com/doc/2a578588.html,parable 11.当一个处于阻塞状态的线程解除阻塞后,它将回到哪个状态? A.运行中状态 B.结束状态 C.新建状态 D.可运行状态 12.在网络编程中,为了定位一个进程,我们需要确定() A.端口号 B.IP地址 C.IP地址和端口号 D.都不是 13.为了从文本文件中逐行读取内容,应该使用哪个处理流对象? A.BufferedReader B.BufferedWriter C.Bufferedlnputstream D.Bufferedoutputstream 14.要使用java程序访问数据库,则必须首先与数据库建立连接,在建立连接 前,应加载数据库驱动程序,该语句为() A.(“ rs= (“”,””,””).createStatement() B.Statement st= (“”,””,””).createStaement() 15.要使用java程序访问数据库,则必须首先与数据库建立连接,该语句为() A.(“ rs= (“”,””,””).createStatement() B.Statement st= (“”,””,””).createStaement() 16.Java程序与数据库连接后,需要查看某个表中的数据,使用下列哪个语句?

java语言程序设计课后习题答案解析

习题2 3.使用“= =”对相同内容的字符串进行比较,看会产生什么样的结果。 答:首先创建一个字符串变量有两种方式:String str = new String("abc"); String str = "abc"; 使用“= =”会因为创建的形式不同而产生不同的结果: String str1 = "abc"; String str2 = "abc"; System.out.println(str1= =str2); //true String str1 = new String("abc"); String str2 = "abc"; System.out.println(str1= =str2); //false String str1 = new String("abc"); String str2 = new String("abc"); System.out.println(str1= =str2); //false 因此自符串如果是对内容进行比较,使用equals方法比较可靠。 String str1 = "abc"; String str2 = "abc"; System.out.println(str1= =str2); //true String str1 = new String("abc"); String str2 = "abc"; System.out.println(str1.equals(str2)); //true String str1 = new String("abc"); String str2 = new String("abc"); System.out.println(str1.equals(str2)); //true 5.编写一个程序,把变量n的初始值设置为1678,然后利用除法运算和取余运算把变量的每位数字都提出来并打印,输出结果为:n=1678。n的每位数字是1,6,7,8。若n为任意值呢? 法一: public class Exercise5{ public static void main(String[] args){ int n=1678; int unit; int decimal; int hundred; int thousand; int count; thousand=n/1000; count=n%1000; hundred=count/100; count=count%100; decimal=count/10; count=count%10; unit=count; System.out.println("1678包含的数 字分别是: "+thousand+','+hundred+','+decimal+', '+unit); } } //如果n为任意值 import java.io.*; public class Exercise51{ public static void main(String[] args) throws IOException{ System.out.print("请输入一个整数:"); InputStreamReader isStream=new InputStreamReader(System.in); BufferedReader bfReader=new BufferedReader(isStream); String input=bfReader.readLine(); int length=input.length()-1; int n=new

java选择题

1、Java属于以下哪种语言?() A、机器语言 B、汇编语言 C、高级语言 D、以上都不对 2、在JDK安装目录下,用于存放可执行程序的文件夹是? A、bin B、jre C、lib D、db 3、下列Java命令中,哪一个可以编译HelloWorld.java文件? A、java HelloWorld B、java HelloWorld.java C、javac HelloWorld D、javac HelloWorld.java 4、以下关于java命令作用的描述中,正确的是 A、它专门负责解析由Java编译器生成的.class文件 B、它可以将编写好的Java文件编译成.class文件 C、可以把文件压缩 D、可以把数据打包 5、下面关于配置path环境变量作用的说法中,正确的是() A、在任意目录可以使用javac和java命令 B、在任意目录下可以使用class文件 C、在任意目录可以使用记事本 D、在任意目录下可以使用扫雷游戏 6、下面关于path和classpath的说法中,错误的是() A、path用来指定java 虚拟机(JVM) 所在的目录 B、classpath用来指定我们自己所写的或要用到的类文件(.jar文件) 所在的目录 C、在dos命令行中,classpath和path环境变量的查看与配置的方式不相同 D、只要设置了classpath 这个环境变量系统就不会再在当前目录下查询某个类 7、下面关于classpath的说法中,错误的是()。 A、classpath和path环境变量的查看与配置的方式完全相同。 B、为了让Java虚拟机能找到所需的class文件,就需要对classpath环境变量进行设置。 C、从JDK5.0开始,如果classpath环境变量没有进行设置,Java虚拟机会自动将其设置为“.”,也就是当前目录。 D、在命令行窗口中配置了classpath后,重新打开新命令行窗口依然生效 8、下面哪种类型的文件可以在Java虚拟机中运行?() A、.java B、.jre C、.exe D、.class 9、阅读下段代码片段,选择正确的运行结果 public static void main(String[] args) {

Java大学实用教程1-4章知识点

Java大学实用教程 ======================================================================================= 第一章Java语言概述 1.3 Java的特点 掌握Java跨平台的原理 1.5 Java运行平台 了解JavaSE、JavaEE与JavaME的应用范围 系统变量Path的设置及其作用 将JDK工具命令的路径设置到Path变量中后,可以在任意位置运行那些命令。 系统变量ClassPath的设置及其作用 设置查找类的路径。 ClassPath中如果设置了某些路径,则必须向其中添加当前目录(.),否则JVM不会在当前目录查找类。 1.6 Java程序开发 Java程序必须有一个主类(含有main函数),作为程序执行的起点。 掌握源文件命名规则 编译Java源文件:javac Hello.java (源文件中的所有类都会被编译并生成.class文件) 运行Java程序:java Hello (执行的必须是一个主类名,不包括.class) Java Applet的运行原理:在html文件中通过标记嵌入applet代码,浏览器将相应的字节码文件下载到本地,利用其内置的Java虚拟机解释执行字节码文件,将结果显示到浏览器中。 ======================================================================================= 第二章基本数据类型和数组 2.1 标识符和关键字 标识符的命名规则:Java的标识符由字母(尽管可以使用世界上所有语言的字母,但建议只使用英文字母)、 下划线、$、数字组成,第一个字符不能是数字。Java的关键字不能作为标识符。 2.2 基本数据类型 整型常量默认为int类型,如果超出了int的表示范围,需要在后面添加l。 浮点型常量默认为double类型,如果为float常量,需要在后面添加f。 char类型:char类型本质上是一个16位的无符号整数,char c='a'与char c=97等价。有时候必须使用转义字符,例如:char c1='\'',c2='\\';(例2-1) 2.3 基本数据类型的转换 数据类型的精度顺序 char byte short int long float double 低精度类型到高精度类型可以自动转换,高精度类型向低精度类型必须强制转换。强制转换可能导致溢出或精度损失,如:byte b=(byte)130。 2.4 数据的输入与输出 System.out.print或println输出变量或者表达式的字符串表示 例如:'a'+1的输出为98,"a="+'a'+1的输出为a=a1,"a="+('a'+1)的输出为a=98 System.out.printf(控制字符串,表达式1,表达式2,...)(例2-3) 常用控制符:%s,%n,%c,%d,%f %md:输出整数,m列宽,右对齐; %-m.nf:输出浮点数,m列宽,小数点后保留n位(四舍五入),左对齐; Scanner类(例2-4) 创建读取对象:Scanner reader=new Scanner(System.in); 读取数据:调用reader.hasNextXxx()方法判断输入的是否是xxx类型的数据,再调用reader.nextXxx()方法读取数据。 2.5 数组 数组下标从0开始,下标越界运行会报错。

《Java基础入门》_课后习题答案解析__1~

第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、错

文本预览