Java程序设计实用教程.docx

上传人:b****0 文档编号:9132360 上传时间:2023-05-17 格式:DOCX 页数:35 大小:24.20KB
下载 相关 举报
Java程序设计实用教程.docx_第1页
第1页 / 共35页
Java程序设计实用教程.docx_第2页
第2页 / 共35页
Java程序设计实用教程.docx_第3页
第3页 / 共35页
Java程序设计实用教程.docx_第4页
第4页 / 共35页
Java程序设计实用教程.docx_第5页
第5页 / 共35页
Java程序设计实用教程.docx_第6页
第6页 / 共35页
Java程序设计实用教程.docx_第7页
第7页 / 共35页
Java程序设计实用教程.docx_第8页
第8页 / 共35页
Java程序设计实用教程.docx_第9页
第9页 / 共35页
Java程序设计实用教程.docx_第10页
第10页 / 共35页
Java程序设计实用教程.docx_第11页
第11页 / 共35页
Java程序设计实用教程.docx_第12页
第12页 / 共35页
Java程序设计实用教程.docx_第13页
第13页 / 共35页
Java程序设计实用教程.docx_第14页
第14页 / 共35页
Java程序设计实用教程.docx_第15页
第15页 / 共35页
Java程序设计实用教程.docx_第16页
第16页 / 共35页
Java程序设计实用教程.docx_第17页
第17页 / 共35页
Java程序设计实用教程.docx_第18页
第18页 / 共35页
Java程序设计实用教程.docx_第19页
第19页 / 共35页
Java程序设计实用教程.docx_第20页
第20页 / 共35页
亲,该文档总共35页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

Java程序设计实用教程.docx

《Java程序设计实用教程.docx》由会员分享,可在线阅读,更多相关《Java程序设计实用教程.docx(35页珍藏版)》请在冰点文库上搜索。

Java程序设计实用教程.docx

Java程序设计实用教程

习题1

1.JamesGosling

2.需3个步骤:

1)用文本编辑器编写源文件。

2)使用javac编译源文件,得到字节码文件。

3)使用解释器运行程序。

3.setpath=D:

\jdk\bin;

setclasspath=D:

\jdk\jre\lib\;.;

4.B)

5.java和class

6.D)publicstaticvoidmain(Stringargs[])

习题2

1.B)int_long,D)$Boy26

2.【代码1】,【代码3】是错误的

3.float常量必须用F或f为后缀。

double常量用D或d为后缀,但允许省略后缀。

4.

publicclassE{

publicstaticvoidmain(Stringargs[]){

'思');

'故');

'乡');

}

}

习题3

1.110

if-else语句书写的不够规范

2.不正正歪!

!

3.

publicclassXiti3{

voidgiveMess(intnumber){

if(number==9||number==131||number==12){

"是三等奖");

}

elseif(number==209||number==596||number==27){

"是二等奖");

}

elseif(number==875||number==316||number==59){

"是一等奖");

}

else{

"未中奖");

}

}

}

4.

publicclassXiti4{

publicstaticvoidmain(Stringargs[]){

charcStart='а',cEnd='я';

for(charc=cStart;c<=cEnd;c++)

"%2c",c);

for(charc=cStart;c<=cEnd;c++)

"%2c",(c+32));

}

}

5.

publicclassXiti5{

publicstaticvoidmain(Stringargs[]){

doublesum=0,item=1;

inti=1,n=20;

while(i<=n){

sum=sum+item;

i=i+1;

item=item*i;

}

"sum="+sum);

}

}

6.

publicclassXiti6{

publicstaticvoidmain(Stringargs[]){

intsum=0,i,j;

for(i=1;i<=1000;i++){

for(j=1,sum=0;j

if(i%j==0)

sum=sum+j;

}

if(sum==i)

"完数:

"+i);

}

}

}

7.

publicclassXiti7{

publicstaticvoidmain(Stringargs[]){

intn=1,i=1,jiecheng=1;

longsum=0;

while(true){

jiecheng=1;

for(i=1;i<=n;i++){

jiecheng=jiecheng*i;

}

sum=sum+jiecheng;

if(sum>9999)

break;

n++;

}

"满足条件的最大整数:

"+(n-1));

}

}

习题4

1.用类创建对象时。

2.一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即或者是参数的个数不同,或者是参数的类型不同。

可以。

3.可以。

不可以。

4.不可以。

5.一个类通过使用new运算符可以创建多个不同的对象,不同的对象的实例变量将被分配不同的内存空间。

所有对象的类变量都分配给相同的一处内存,对象共享类变量。

6.CD。

7.【代码1】【代码4】。

8.sum=-100。

9.27。

10.100和。

习题5

1.如果子类和父类在同一个包中,那么,子类自然地继承了其父类中不是private的成员变量作为自己的成员变量,并且也自然地继承了父类中不是private的方法作为自己的方法,继承的成员或方法的访问权限保持不变。

当子类和父类不在同一个包中时,父类中的private和友好访问权限的成员变量不会被子类继承,也就是说,子类只继承父类中的protected和public访问权限的成员变量作为子类的成员变量;同样,子类只继承父类中的protected和public访问权限的方法作为子类的方法。

如果所声明的成员的变量的名字和从父类继承来的成员变量的名字相同(声明的类型可以不同),在这种情况下,子类就会隐藏掉所继承的成员变量。

2.不可以。

3.abstract类。

4.A类是B类的父类,当用子类创建一个对象b,并把这个对象b的引用放到父类的对象a中时,称a是b的上转型对象。

5.AD。

6.

7.

12。

习题6

1.接口中能声明变量吗

2.接口中能定义非抽象方法吗

3.什么叫接口的回调

4.请说出E类中的输出结果。

interfaceA{

doublef(doublex,doubley);

}

classBimplementsA{

publicdoublef(doublex,doubley){

returnx*y;

}

intg(inta,intb){

returna+b;

}

}

publicclassE{

publicstaticvoidmain(Stringargs[]){

Aa=newB();

Bb=(B)a;

}

}

5.请说出E类中的输出结果。

interfaceCom{

intadd(inta,intb);

}

abstractclassA{

abstractintadd(inta,intb);

}

classBextendsAimplementsCom{

publicintadd(inta,intb){

returna+b;

}

}

publicclassE{

publicstaticvoidmain(Stringargs[]){

Bb=newB();

Comcom=b;

Aa=b;

}

}

习题7

1.一维数组名.length

2.二维数组名.length

3.false,true,false,3,,。

4.Bird,car

习题8

1.有效。

2.可以

3.不可以

4.大家好,祝工作顺利!

5.96

乘数超过99

习题9

1.(A)(B)(D)

2.Love:

Game。

3.15

abc我们。

4.13579。

5.9javaHello。

6.publicclassE{

publicstaticvoidmain(Stringargs[]){

Strings1,s2,t1="ABCDabcd";

s1=();

s2=();

Strings3=(s2);

}

}

7.publicclassE{

publicstaticvoidmain(Stringargs[]){

Strings="ABCDabcd";

charcStart=(0);

charcEnd=()-1);

}

}

8.

import.*;

publicclassE{

publicstaticvoidmain(Stringargs[]){

Scannerread=newScanner;

CalendarBeancb=newCalendarBean();

intyear=2000,month=1;

"输入年:

");

year=();

"输入月:

");

month=();

(year);

(month);

String[]a=();oCharArray();

for(charc:

str){

"%3c",c);

}

for(inti=0;i<;i++){import.*;

publicclassE{

publicstaticvoidmain(Stringargs[]){

Scannerread=newScanner;

intyear1,month1,day1,year2,month2,day2;

"输入第一个日期的年、月、日(用空格或回车分隔):

");

year1=();

month1=();

day1=();

"输入第二个日期的年月日(用空格或回车分隔):

");

year2=();

month2=();

day2=();

Calendarcalendar=();

(year1,month1-1,day1);

longtimeYear1=();

(year2,month2-1,day2);

longtimeYear2=();

long相隔天数=((timeYear1-timeYear2)/(1000*60*60*24));

""+year1+"年"+month1+"月"+day1+"日和"+

year2+"年"+month2+"月"+day2+"日相隔"+相隔天数+"天");

}

}

10.import.*;

publicclassE{

publicstaticvoidmain(Stringargs[]){

doublea=0,b=0,c=0;

a=12;

b=24;

c=;

c=;

c=

(1);

c=(8);

}

}

11.publicclassE{

publicstaticvoidmain(Stringargs[]){

Stringstr="ab123you你是谁";

Stringregex="\\D+";

str=(regex,"");

}

}

12.import.*;

publicclassE{

publicstaticvoidmain(Stringargs[]){

Stringcost="数学87分,物理76分,英语96分";

Scannerscanner=newScanner(cost);

("[^09.]+");

doublesum=0;

intcount=0;

while()){

try{doublescore=();

count++;

sum=sum+score;

}

catch(InputMismatchExceptionexp){

Stringt=();

}

}

"总分:

"+sum+"分");

"平均分:

"+sum/count+"分");

}

}

习题10

1.使用FileInputStream。

2.FileInputStream按字节读取文件,FileReader按字符读取文件。

3.不可以。

4.使用对象流写入或读入对象时,要保证对象是序列化的。

5.使用对象流很容易得获取一个序列化对象的克隆,只需将该对象写入到对象输出流,那么用对象输入流读回的对象一定是原对象的一个克隆。

6.

import.*;

publicclassE{

publicstaticvoidmain(Stringargs[]){

Filef=newFile("");;

try{RandomAccessFilerandom=newRandomAccessFile(f,"rw");

(0);

longm=();

while(m>=0){

m=m-1;

(m);

intc=();

if(c<=255&&c>=0)

else{

m=m-1;

(m);

bytecc[]=newbyte[2];

(cc);

String(cc));

}

}

}

catch(Exceptionexp){}

}

}

7.

import.*;

publicclassE{

publicstaticvoidmain(Stringargs[]){

Filefile=newFile("");

FiletempFile=newFile("");

try{FileReaderinOne=newFileReader(file);

BufferedReaderinTwo=newBufferedReader(inOne);

FileWritertofile=newFileWriter(tempFile);

BufferedWriterout=newBufferedWriter(tofile);

Strings=null;

inti=0;

s=();

while(s!

=null){

i++;

(i+""+s);

();

s=();

}

();

();

();

();

();

}

catch(IOExceptione){}

}

}

8.属于上机操作题,解答略。

9.import.*;

import.*;

publicclassE{

publicstaticvoidmain(Stringargs[]){

Filefile=newFile("");

Scannersc=null;

doublesum=0;

intcount=0;

try{sc=newScanner(file);

("[^09.]+");

while()){

try{doubleprice=();

count++;

sum=sum+price;

}

catch(InputMismatchExceptionexp){

Stringt=();

}

}

"平均价格:

"+sum/count);

}

catch(Exceptionexp){

}

}

}

习题11

1.,以及复制到Java运行环境的扩展中。

2.import.*;

import.*;

publicclassE{

publicstaticvoidmain(Stringargs[]){

Queryquery=newQuery();

("D:

/2000/shop");

("SELECT*FROMgoods");

Scannerread=newScanner;

"输入数据库名或绝对路径:

");

StringdataSource=();

"输入表名:

");

StringtableName=();

(dataSource);

("SELECT*FROM"+tableName);

();

}

}

classQuery{

StringdatabaseName="";import.*;

import.*;

publicclassE{

publicstaticvoidmain(Stringargs[]){

Queryquery=newQuery();

StringdatabaseName="shop";

StringtableName="goods";

query.setDatabaseName(databaseName);

Stringname="";

Scannerread=newScanner;

"商品名:

");

name=();

Stringstr="'%["+name+"]%'";

StringSQL="SELECT*FROMgoodsWHEREnameLIKE"+str;

(SQL);

"表中商品名是"+name+"的记录");

();

}

}

classQuery{

StringdatabaseName="";;

classRectKeyimplementsComparable{

doublekey=0;

RectKey(doubled){

key=d;

}

publicintcompareTo(Objectb){

RectKeyt=(RectKey)b;

if(return-1;

else

return(int)(}

}

classRect{

doublewidth,height;

Rect(doublewidth,doubleheight){

=height;

=width;

}

publicdoublegetArea(){

returnwidth*height;

}

publicdoublegetLength(){

return2*(width+height);

}

}

publicclassE{

publicstaticvoidmain(Stringargs[]){

TreeMaptreemap=newTreeMap();

doublew[]={1,2,4,8,16,20,120,30,90,};

doubleh[]={21,92,43,18,,,12,3,90,765};

Rectrect[]=newRect[10];

for(intk=0;k<;k++){

rect[k]=newRect(w[k],h[k]);

}

RectKeykey[]=newRectKey[10];

for(intk=0;k<;k++){

key[k]=newRectKey(rect[k].getArea());

}

for(intk=0;k<;k++){

(key[k],rect[k]);

}

intnumber=();

Collectioncollection=();

Iteratoriter=();

while()){

Rectr=();

"面积:

"+());

}

();

for(intk=0;k<;k++){

key[k]=newRectKey(rect[k].getLength());

}

for(intk=0;k<;k++){

(key[k],rect[k]);

}

number=();

collection=();

iter=();

while()){

Rectr=();

"周长:

"+());

}

}

}

习题13

1.4种状态:

新建、运行、中断和死亡。

2.有4种原因的中断:

(1)JVM将CPU资源从当前线程切换给其他线程,使本线程让出CPU的使用权处于中断状态。

(2)线程使用CPU资源期间,执行了sleep(intmillsecond)方法,使当前线程进入休眠状态。

(3)线程使用CPU资源期间,执行了wait()方法,使得当前线程进入等待状态。

(4)线程使用CPU资源期间,执行某个操作进入阻塞状态,比如执行读/写操作引起阻塞。

3.死亡状态,不能再调用start()方法。

4.新建和死亡状态。

5.两种方法:

用Thread类或其子类。

6.使用setPrority(intgrade)方法。

7.Java使我们可以创建多个线程,在处理多线程问题时,我们必须注意这样一个问题:

当两个或多个线程同时访问同一个变量,并且一个线程需要修改这个变量。

我们应对这样的问题作出处理,否则可能发生混乱。

8.当一个线程使用的同步方法中用到某个变量,而此变量又需要其它线程修改后才能符合本线程的需要,那么可以在同步方法中使用wait()方法。

使用wait方法可以中断方法的执行,使本线程等待,暂时让出CPU的使用权,并允许其它线程使用这个同步方法。

其它线程如果在使用这个同步方法时不需要等待,那么它使用完这个同步方法的同时,应当用notifyAll()方法通知所有的由于使用这个同步方法而处于等待的线程结束等待。

9.不合理。

10.“吵醒”休眠的线程。

一个占有CPU资源的线程可以让休眠的线程调用interrupt方法“吵醒”自己,即导致休眠的线程发生InterruptedException异常,从而结束休眠,重新排队等待CPU资源。

11.publicclassE{

publicstaticvoidmain(Stringargs[]){

Cinemaa=newCinema();

}

}

classTicketSellerpublicclassE{

publicstaticvoidmain(Stringargs[]){

ClassRoomroom6501=newClassRoom();

try{(1000);

}

catch(Exceptionexp){}

}

}

classClassRoomimplementsRunnable{

Threadstudent1,student2,teacher;

ClassRoom(){

teacher=newThread(this);

student1=newThread(this);

student2=newThread(this);

("王教授");

("张三");

("李四");

}

publicvoidrun(){

if()==student1){

try{"正在睡觉,不听课");

(1000*60*10);

}

catch(InterruptedExceptione){

"被老师叫醒了");

}

"开始听课");

();

publicclassE{

publicstaticvoidmain(Stringargs[]){

JoinWorkwork=newJoinWork

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2