Java程序设计实用教程.docx
- 文档编号:9132360
- 上传时间:2023-05-17
- 格式:DOCX
- 页数:35
- 大小:24.20KB
Java程序设计实用教程.docx
《Java程序设计实用教程.docx》由会员分享,可在线阅读,更多相关《Java程序设计实用教程.docx(35页珍藏版)》请在冰点文库上搜索。
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[]){
TreeMap
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=();
Collection
Iterator
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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 程序设计 实用教程