java基础入门课后习题答案_第1页
java基础入门课后习题答案_第2页
java基础入门课后习题答案_第3页
java基础入门课后习题答案_第4页
java基础入门课后习题答案_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第1 1JavaEE、JavaSE、JavaME2JRE4bin1、 4、 5、JDK(JavaDevelopmentKit,Java开发工具包,它包含编译工具、解释工具、文档制作工具、打JRE了。publicpublicoWorldpublicstaticvoidmain(String[]{}}第2 1、2、true4、基本数据类型、数据类5、1、2、4、6、 7、8、9、10、1、错 6、 在使用y=x;语句时已经超过了y变量的作用域,所以编译无法通过。987如果使用“&&”进行连接,当“&&false,则不会执行其右边的表达式。例如intx2,y0;booleanbxy&x200xy的表达式执行booleanbxy&x20xyfalsexy不会调用这些同名的方法时,JVM会根据实际参数的不同绑定到不同的方法。publicclasspublicclassTest01publicstaticvoidmain(String[]{intsum=for(inti=1;i<100;{if(i%2!=sum+=}}}publicpublicclassTest02publicstaticvoidmain(String{inty=}publicstaticintfunction(int{intif(x>0)y=x+}elseif(x=={y=}elsey=x*x-}return}}publicclasspublicclassTest03publicstaticvoidmain(String[]args)int[]arr={25,24,12,76,101,96,28for(inti=0;i<arr.length-1;i++)for(intj=0;j<arr.length-i-1;ifarr[j]arr[j1inttemp=arr[j];arr[j]=arr[j+1];arr[j+1]=temp;}}}for(inti=0;i<arr.length;System.out.print(arr[i打印元素和空}}第3 8、内部类1、对2、对3、错4、对5、错1、 3、 5、 8、 classclassStudentprivateStringname;privatedoublegrade;publicStudent(){}publicStudent(Stringname,double{=name;this.grade=}publicString{return}publicvoidsetName(String{=}publicdouble{return}publicvoidsetGrade(double{this.grade=}}publicclassTest01publicstaticvoidmain(String[]{Studentstu1=newStudentstu2=newStudent("lisi",}}classclassFatherprivateStringname="zhangjun";classChild{publicvoidintroFather()System.out.println("MyFather'snameis"+}}}publicclassTest02publicstaticvoidmain(String[]{Father.Childchild=newFather().newChild();roFather();}}第4 1、 2、 4、 7、 承。shout()方法中同样使用了final关键字,使得该方法不能被重写。的方法必须在子类中全部实现,由于run()方法在子类中并没有重新实现,所以这也是错误的。3Java中,使用关键字修饰的类称之为抽象类。抽象类是不能被实例化的,通常需要写一个interface关键字。classclassStudentpublicStringname;publicintage;publicStudent(Stringname,intage){=name;}publicvoidSystem.out.println("name:"+name+"age:}}classUnderGraduateextendsStudent{publicStringdegree;publicUnderGraduate(Stringname,intage,Stringdegree){super(name,age);}publicvoidSystem.out.println("name:"+name+"age:"+age+"degree:}}publicclasspublicstaticvoidmain(String[]args)Studentstudent=newStudent("zhangsan",16);UnderGraduateunderGraduate=newUnderGraduate("lisi",20,"bechalor");}}}interfaceShapeinterfaceShapedoublearea(double}classSquareimplementspublicdoublearea(double{return}}classCircleimplementsShape{publicdoublearea(doubler){return}}publicclassTest02publicstaticvoidmain(String[]{Shapesquare=newSquare();Shapecircle=newCircle();}classclassNoThisSongExceptionException{publicNoThisSongException(){}publicNoThisSongException(Stringmessage){super(message);}} publicvoid y(intindex)throwsthrownewNoThisSongException(" } }}publicclassTest03publicstaticvoidmain(String[]{tryyer= }catch(NoThisSongExceptionSystem.out.println("异常信息为:}}第5 多线3、就绪4synchronized、对象、this5、进程7、10、18run()方法9、wait()、notify()、notifyAll() 能作为参数传递给Thread的构造方法。newnewThread()publicvoidnewRunnable(){publicvoidCPU才会回到这个线程上继续往下执行,如果当前线程进入了同步锁,sleep()方法并不会释放锁,sleep()CPU,但其它被同步锁挡住了的线程也无法得到执行。wait()解除wait状态,当再次获得同步锁后,程序可以继续向下执行。publicclasspublicclassMyThreadThread{publicMyThread(String{}publicvoid{}publicstaticvoidmain(String[]{newMyThread("Thread1").start();newMyThread("Thread2").start();}publicpublicclassMyRunnableimplements{publicvoidrun()for(inti=0;i<50;{}}publicstaticvoidmain(String[]{newThread(newMyRunnable()).start();for(inti=0;i<100;i++){}}publicpublicclassTest01publicstaticvoidmain(String[]{Teachert=newTeacher();newThread(t, newThread(t高老师newThread(t, }}classTeacherimplements{privateintnotes=80;publicvoidrun(){while(true)if(notes<={}}}privatesynchronizedvoid{if(notes>0){try{}catch(InterruptedException{}+notes--}}}publicpublicclassAccumulatorextends{privateintstratNum;publicstaticintsum;publicAccumulator(int{this.stratNum=}publicstaticsynchronizedvoidadd(int{sum+=}publicvoid{intsum=for(inti=0;i<10;{sum+=stratNum+}}publicstaticvoidmain(String[]args)throws{Thread[]threadList=newThread[10];for(inti=0;i<10;i++){threadList[i]=newAccumulator(10*i+1);}for(inti=0;i<10;{}System.out.println("SumSystem.out.println("Sumis:"+}}第6 3getRuntime()46π、e8length()1、错2、错3、对4、错5、对1、 2、 4、 5、 6、 7、 5-5---1、String类是不可变类,即字符串值一旦初始化后就不可能改变。StringBuffer是可变字符串类,类似String的缓冲区,可以修改字符串的值。2、ae类用来表示某个特定的瞬间,能够精确到毫秒。而在实际应用中,往往需要把一个日期中的年、月、日等信息单独返回进行显示或处理,这个类中的大部分方法都已被标记过时。Calender类基本取代了ae类,该类中定义了一系列用于完成日期和时间字段操作的方法。publicclasspublicclassTest01publicstaticvoidmain(String[]{Stringstr= char[]ch=str.toCharArray();StringBufferbuffer=newStringBuffer();for(inti=str.length()-1;i>=0;i--)if(ch[i]>='A'&&ch[i]<={}elseif(ch[i]>='a'&&ch[i]<={}}}}importjava.util.Calendar;importjava.util.Date;publicclassTest02{publicstaticvoidmain(String[]{Calendarcalendar=calendar.add(Calendar.DATE,100);Datedate=calendar.getTime();DateFormatformat=DateFormat.getDateInstance(DateFormat.FULL);Stringstring=format.format(date);}publicclassTest03{publicstaticvoidmain(String[]{Randomrand=newRandom();int[]num=newint[5];for(inti=0;i<num.length;{num[i]=20+rand.nextInt(31);}}}}第7 集合2、 1、 2、 5、 cc,所以输出结果是“a、b、c”,而不是“a、b、c、c”。此在取出元素时,只能使用Object类型,而不能使用String类型。3、程序可以编译通过,但是什么也没有打印。使用ListItor进行从后向前的遍历集合,可以使用以下两种方法,一是使用listItor(intindex)方法将索引index的值设置为集合元素的数目,也就是ListItorit=list.listItor(3);,二是将程序先从前向后遍历,然后再从后向前遍历。4Map集合在遍历的过程中不能使用集合对象本身删除元素,这会导致并发修改异常,若想删除集合中的元素,可以使用Itor的remove()方法。java.util包中,统称为集合。集合框架中包含3个接口,分别是List、Set、Map。2、List的特点是元素有序、元素可重复。ListArrayListLinkedList。Set的特3、Collection是一个单例集合接口。它提供了对集合对象进行基本操作的通用方法。Collections是一importjava.util.*;publicimportjava.util.*;publicclassTest01{publicstaticvoidmain(String[]args)ArrayListlist=newfor(intfor(inti=0;i<10;{} torit=list.i while(it.hasNext()){Objectobj=it.next();}}}importjava.util.*;publicimportjava.util.*;publicclassTest02{publicstaticvoidmain(String[]{HashSethashSet=newHashSet();p1= p2= }}}{Stringname;int (Stringname,int{super();=name;this.age=age;}publicint{return}publicbooleanequals(Object{if(this==obj)returntrue;if(obj==null)returnfalse;other= )returnreturn}}importjava.util.*;publicclassimportjava.util.*;publicclassTest03{publicstaticvoidmain(String[]args)TreeMapmap=newTreeMap(new map.put("1","Lucy");map.put("2",map.put("3",map.put("4",map.put("5",for(Objectkey:{System.out.println(key+":"+}}} paratorimplementsComparator{publicintcompare(Objectobj1,Objectobj2){Stringele1=(String)obj1;Stringele2=(String)obj2; }第8 4RandomAccessFile7、字节流、字符流9Unicode1、错2、对 3、对4、对5、错 2、 3、 4、 外设连接进行数据通信。流是抽象的对象,具体实现代码在java.io包中。专门处理16位字节的字符流类。PipedInputStream实例对象和一个PipedOutputStream实例对象相互连接而实现管道通信,PipedOutputStream向管道写入数据,PipedInputStream从管道中PipedOutputStream写入的数importjava.io.*;publicclassimportjava.io.*;publicclassTest01{publicstaticvoidmain(String[]args)throwsExceptionFileInputStreamin=newFileInputStream("E:/src.txt");FileOutputStreamout=newFileOutputStream("E:/des1.txt");byte[]buf=newbyte[1024];intwhile((len=in.read(buf))!=-{out.write(buf,0,}BufferedReaderbf=newBufferedReader(newFileReader("E:/src.txt"));BufferedWriterbw=newBufferedWriter(newFileWriter("E:/des2.txt"));Stringstr;while((str=bf.readLine())!={}}}importjava.io.*;publicimportjava.io.*;publicclassTest02{publicstaticvoidmain(String[]args)throwsExceptionBufferedReaderbr=newBufferedReader(newStringStringpassword="";booleanb=false;for(inti=0;i<5;码passwordbr.readLine();if(password.equals("123456")){");b=true;}}if(!b) }}}第9 1GUI、java.awt、javax.swing2、适配器3、4、57WindowListener、windowClosing(WindowEvente)8、模态框、非模态框91、对2、错 3、对4、错5、错 6、 StdnoStdno=newJTextField();Name=newAWT是 面进行交互的接口。AWT中的图形函数与操作系统所提供的图形函数之间有着一一对应的关系,当我们利用AWT来构件图形用户界面的时候,我们实际上是在利用操作系统所提供的图形库。由于不存在。为了实现Java语言所宣称的"一次编译,到处运行"的概念,AWT不得不通过牺牲功能来实现由于AWT是依靠本地方法来实现其功能的,我们通常把AWT控件称为重量级控件。SwingAWTAWT所能够提供的所有功JavaAWTSwing中没有使用本地方法来实现图形功能,我们通常把Swing控件称为轻量级控件。AWTJava程序,其运行速度比较慢。对于一个嵌入式应用来说,目标平台的硬件资源往往AWTJavaPCJava应用中,硬件importimportimportjava.awt.event.*;importjavax.swing.*;publicclassMyMouseHandlerextendsJFrame{publicMyMouseHandler()finalJLabellabelnewJLabel("此处显示鼠标this.setSize(300,this.addMouseListener(newMouseAdapter(){publicvoidmouseClicked(MouseEvent{if(e.getButton()==e.BUTTON1){intx=e.getX();inty=Stringbanner鼠标当前点击位置的坐标是xy;}}}publicstaticvoidmain(String[]{new}}importjava.awt.*;importjava.util.*;importjavax.swing.*;publicclassInformationextendsJFrameprivateJPanelpanel=newprivateJLabellb1=newJLabel("三个表示的JCheckBoxprivateJCheckBoxcb1newJCheckBox("羽毛球");privateJCheckBoxcb2newJCheckBox("乒乓球");privateJCheckBoxcb3=newJCheckBox("唱歌");privateJLabellb2=new //表 privateJRadioButtonrb1newJRadioButton("男");privateJRadioButtonrb2newJRadioButton("女//ButtonGroup添加JRadioButton,实现单选功能privateButtonGroupbgnewButtonGroup();privateJTextAreaarea=newprivateJScrollPanepane=newSetprivateSet<String>hobbies=newgenderprivateStringgender=//JCheckBox复选框 privateActionListenerlistener1=new{publicvoidactionPerformed(ActionEvente){JCheckBoxcb=(JCheckBox)e.getSource();if{}else}} privateActionListenerlistener2=new{publicvoidactionPerformed(ActionEvente){JRadioButtonjb=(JRadioButton)e.getSource();gender=jb.getText();}privatevoidprint()if(hobbies.size()>0) tor<String>it=hobbies.i while(it.hasNext()){area.append(it.next()+"}if 为:"+}publicInformation() //为单选和复选按钮添加 //将JPanel面板和JScrollPane面板添加到JFrame容器中Containercontainer=this.getContentPane();container.add(panel,BorderLayout.NORTH);container.add(pane,BorderLayout.CENTER);}publicstaticvoidmain(String[]{new}}importimportimportjava.awt.*;publicclassextendsJFrameimplementsJLabellabelnewJLabel("请选择菜单JItemaa(){ItemItemItem,JBar=new=new=newItembaItem=newJItem=newJItem=newItem("Item("Item("菜单项 }publicvoidactionPerformed(ActionEvent{J Itemsource=(J (e.getSourcelabel.setText("选择了菜单publicpublicstaticvoidmain(String{JFrameframe=newMy frame.setSize(300,200);}}10章4、1、错2、对 3、对4、错5、对1、 7、 8、2、UDP协议是无连接通信协议,所谓的无连接就是指数据的发送端和接收端不建立逻辑连接。由于UDP协议消耗资源小,通信效率高,通常都会用于音频、和普通数据的传输。UDP协议在传输数据时不能保证数据的完整性,因此在传输重要数据时不建议使用UDP协议。TCP协议是面向连接的通信协议,即在传输数据前先在发送端和接收端建立逻辑连接,然后再传TCP连接中必须要明确客户端与服SocketSocket建立了专线连接后,连接的一端既能向另一端连续写入字节,也能从另一端字节。Socket类中定义了getInputStream()方法返SocketgetOutputStream()Socket的输出流对象。只要连接的一publicclassTest01{publicstaticvoidmain(String[]args)throws{InetAddresslocalAddress=InetAddress.getLocalHost();InetAddressremoteAddress=InetAddress.getByName("System.out.println("System.out.println("本机的IP地址:"+localAddress.getHostAddress());System.out.println("本地的主机名:"+loc

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论