




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java程序设计总复习题1、编写一个Java程序,用if-else语句判断某年份是否为闰年。(分支)//ProgrammeNameLeapYear.javapublicclassLeapYear{publicstaticvoidmain(Stringargs[]){intyear=2010;if(args.length!=0)year=Integer.parseInt(args[0]);if((year%4==0&&year%100!=0)||(year%400==0))System.out.println(year+"年是闰年。");elseSystem.out.println(year+"年不是闰年。");}}//if-else语句2、编写一个Java程序在屏幕上输出1!+2!+3!+……+10!的和。(循环)//programmenameForTest.javapublicclassForTest{publicstaticvoidmain(Stringargs[]){inti,j,mul,sum=0;for(i=1;i<=10;i++){mul=1;for(j=1,j<=i;j++){mul=mul*j;}sum=sum+mul;}System.out.println(“1!+2!+3!+……+10!=”+sum);}}3、依次输入10个学生成绩,判断学生(优秀、良好、中等、及格、不及格)并计算人数(switch)4、使用冒泡排序(数组)publicclassBubbleSort{publicstaticvoidmain(String[]args){int[]array={63,4,24,1,3,5};BubbleSortsorter=newBubbleSort();sorter.sort(array);}//冒泡排序publicvoidsort(int[]array){for(inti=1;i<array.length;i++)for(intj=0;j<array.length-1;j++){if(array[j]>array[j+1]){inttemp=array[j];array[j]=array[j+1];array[j+1]=temp;}}showArray(array);}//遍历数组,并输出数组的元素。publicvoidshowArray(int[]array){for(inti=0;i<array.length;i++){System.out.print(array[i]+"\t");}System.out.println();}}5、实现会员注册,要求用户名长度不小于3,密码长度不小于6,注册时两次输入密码必须相同(字符串)importjava.util.Scanner;publicclassRegister{Stringname;Stringpassword;StringnewPassword;///////////publicvoidnameExe(){Scannerinput=newScanner(System.in);System.out.println("请输入用户名,密码和验证密码");System.out.print("用户名:");name=input.next();System.out.print("密码:");password=input.next();System.out.print("验证密码:");newPassword=input.next();while(name.length()<3||(password.equals(newPassword)==false)||(password.length()<6)){if(name.length()<3){System.out.println("用户名不能小于3");}if((password.equals(newPassword)==false)||password.length()<6){System.out.println("两次输入密码不一样或密码不能小于6位");}System.out.println("\n"+"请重新输入");System.out.print("用户名:");name=input.next();System.out.print("密码:");password=input.next();System.out.print("验证密码:");newPassword=input.next();}System.out.println("注册成功!");}}publicclassVerify{publicstaticvoidmain(String[]args){Registerm1=newRegister();Exe();}}6、一个景区根据游人的年龄收取不同价格的门票。请编写游人类,根据年龄段决定能够购买的门票价格并输出,然后写出测试类测试该类(类的基本实现)publicclassTourist{intage;intticketPrice;publicvoidsetAge(intage){this.age=age;}publicvoidticket(){if(age>0&&age<12)ticketPrice=20;elseif(age<20)ticketPrice=40;elseif(age<50)ticketPrice=80;elseticketPrice=35;System.out.println("门票价格:"+ticketPrice);}}/////importjava.util.Scanner;publicclassTest{publicstaticvoidmain(String[]args){Scannerinput=newScanner(System.in);Touristt1=newTourist();System.out.print("请输入年龄:");t1.setAge(input.nextInt());t1.ticket();}}7、(1)编写一个圆类Circle,该类拥有:一个成员变量Radius(私有,浮点型);//存放圆的半径;两个构造方法Circle()//将半径设为0//创建Circle对象时将半径初始化为rCircle(doubler)三个成员方法doublegetArea()//获取圆的面积doublegetPerimeter()//获取圆的周长voidshow()//将圆的半径、周长、面积输出到屏幕(2)编写一个圆柱体类Cylinder,它继承于上面的Circle类。还拥有:一个成员变量doublehight(私有,浮点型);//圆柱体的高;构造方法Cylinder(doubler,doubleh)//创建Circle对象时将半径初始化为r成员方法doublegetVolume()voidshowVolume()//获取圆柱体的体积//将圆柱体的体积输出到屏幕编写应用程序,创建类的对象,分别设置圆的半径、圆柱体的高,计算并分别显示圆半径、圆面积、圆周长,圆柱体的体积。//ProgrammeNameTestCylinder.javaclassCircle{//定义父类--园类privatedoubleradius;//成员变量--园半径Circle(){//构造方法radius=0.0;}Circle(doubler){//构造方法radius=r;}doublegetPerimeter(){return2*Math.PI*radius;}//成员方法--求园周长//成员方法--求园面积doublegetArea(){returnMath.PI*radius*radius;}voiddisp(){//成员方法--显示园半径、周长、面积System.out.println("圆半径="+radius);System.out.println("圆周长="+getPerimeter());System.out.println("圆面积="+getArea());}}classCylinderextendsCircle{//定义子类--圆柱类privatedoublehight;//成员变量--园柱高Cylinder(doubler,doubleh){//构造方法super(r);hight=h;}publicdoublegetVol(){//成员方法--求园柱体积returngetArea()*hight;}publicvoiddispVol(){//成员方法--显示园柱体积System.out.println("圆柱体积="+getVol());}}publicclassTestCylinder{//定义主类publicstaticvoidmain(String[]args){//主程入口CircleCi=newCircle(10.0);//生成园类实例Ci.disp();//调用园类的方法CylinderCyl=newCylinder(5.0,10.0);//生成圆柱类实例Cyl.disp();//调用父类方法//调用子类方法Cyl.dispVol();}}8、编写一个Java应用程序,从键盘读取用户输入两个字符串,并重载3个函数分别实现这两个字符串的拼接、整数相加和浮点数相加。要进行异常处理,对输入的不符合要求的字符串提示给用户,不能使程序崩溃。(异常处理)//programmenameStrinput.javaimportjava.io.*;publicclassStrinput{publicstaticvoidmain(Stringargs[]){Strings1=null,s2=null,ss,si,sf;inti1,i2;floatf1,f2;BufferedReaderstrin=newBufferedReader(newInputStreamReader(System.in));try{System.out.print("输入第一个字符串:");s1=strin.readLine();System.out.print("输入第二个字符串:");s2=strin.readLine();}catch(Exceptione){System.out.println(e.getMessage());}i1=Integer.parseInt(s1);i2=Integer.parseInt(s2);f1=Float.parseFloat(s1);f2=Float.parseFloat(s2);ss=strAdd(s1,s2);si=strAdd(i1,i2);sf=strAdd(f1,f2);System.out.println("输入的二个字符串相加结果为:"+ss);System.out.println("输入字符串转换为整数相加结果为:"+si);System.out.println("输入字符串转换为浮点数相加结果为:"+sf);}staticStringstrAdd(Stringstr1,Stringstr2){returnstr1+str2;}staticStringstrAdd(intint1,intint2){returnString.valueOf(int1+int2);}staticStringstrAdd(floatflt1,floatflt2){returnString.valueOf(flt1+flt2);}}9、应用FileInputStream类,编写应用程序,从磁盘上读取一个Java程序,并将源程序代码显示在屏幕上。(被读取的文件路径为:E:/myjava/Hello.java)//ProgrammeNameFISDemo.javaimportjava.io.*;publicclassFISDemo{publicstaticvoidmain(Stringargs[]){byte[]buf=newbyte[2056];try{FileInputStreamfileIn=newFileInputStream("e:/myjava/Hello.java");intbytes=fileIn.read(buf,0,2056);Stringstr=newString(buf,0,bytes);System.out.println(str);}catch(Exceptione){e.printStackTrace();}}10、编写一个Java程序将当100,101,102,103,104,105个数以数组的形式写入到Dest.txt文件中,并以相反的顺序读出显示在屏幕上。(文件)importjava.io.*;publicclassIODemo{publicstaticvoidmain(Stringargs[]){intdata[]={100,101,102,103,104,105};int[]t=newint[200];try{//Filefile=newFile("dest.txt");DataOutputStreamout=newDataOutputStream(newFileOutputStream("dest.txt"));for(inti=0;i<data.length;i++)out.writeInt(data[i]);写入out.close();DataInputStreamin=newDataInputStream(newFileInputStream("dest.txt"));//先读出来再倒序输出for(inti=0;i<data.length;i++){t[i]=in.readInt();}for(inti=data.length-1;i>=0;i--){System.out.print(""+t[i]);}/*for(inti=data.length-1;i>=0;i--){t=in.readInt(data[i]);System.out.print(""+t);}*/System.out.println();in.close();}catch(IOExceptione){System.out.println(e.getMessage());}}}11、编写一个Java程序实现多线程,在线程中输出线程的名字,隔300毫秒输出一次,共输出20次。//programmenameTestThread;//声明一个子线程类Threaddemo;classThreadDemoextendsThread{publicThreadDemo(Stringstr){super(str);}publicvoidrun(){for(inti=0;i<20;i++){System.out.print(“”+this.getName());Try{Sleep(300);}catch(InterruptedExceptione){System.out.println(e.getMessage());Return;}}System.out.println(“/end”);}}publicclassTestThread{publicstaticvoidmain(Stringargs[]){ThreadDemothread1=newThreadDemo(“T1”);ThreadDemothread2=newThreadDemo(“T2”);ThreadDemothread3=newThreadDemo(“T3”);thread1.start();thread2.start();thread3.start();}}10.编写程序,在屏幕上显示带标题的窗口,并添加一个按钮。当用户单击按钮时,结束程序。(窗体编程)//ProgrammeNameButtonEventDemo.javaimportjavax.swing.*;importjava.awt.event.*;publicclassButtonEventDemoextendsJPanelimplementsActionListener{protectedJButtonb1;//声明一个按钮对象publicButtonEventDemo(){//构造方法ImageIconButtonIcon=newImageIcon("images/green.png");//创建按钮的图标对象b1=newJButton("退出按钮",ButtonIcon);//生成按钮对象b1.setMnemonic(KeyEvent.VK_E);//设置b1的助记符是Alt+Eb1.setToolTipText("这是退出按钮。");//设置按钮提示条this.add(b1);//往面板对象中加载按钮b1.addActionListener(this);//本类对象注册为按钮的事件监听器}publicvoidactionPerformed(ActionEvente){//按钮事件响应方法System.exit(0);//按b1则退出主程序}privatestaticvoidcreateGUI(){//创建窗体JFrame.setDefaultLookAndFeelDecorated(true);//设置java隐含观感JFrameframe=newJFrame("按钮测试");//生成应用程序主窗体frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置关闭时隐含操作ButtonEventDemoCPane=newButtonEventDemo();//生成主类对象--面板CPane.setOpaque(true);//面板要求不透明frame.setContentPane(CPane);//设置主类对象为主窗体的内容面板frame.pack();//主窗体紧缩显示frame.setVisible(true);//设置主窗体可见}publicstaticvoidmain(String[]args){//将createGUI()列入线程javax.swing.SwingUtilities.invokeLater(newRunnable(){publicvoidrun(){createGUI();}});}}12、定义一个表示学生信息的类Student,要求如下:(有关类的编程)(1)类Student的成员变量:sNO表示学号;sName表示姓名;sSex表示性别;sAge表示年龄;sJava:表示Java课程成绩。(2)类Student带参数的构造方法:在构造方法中通过形参完成对成员变量的赋值操作。(3)类Student的方法成员:getNo():获得学号;getName():获得姓名;getSex():获得性别;getAge()获得年龄;getJava():获得Java课程成绩(4)根据类Student的定义,创建五个该类的对象,输出每个学生的信息,计算并输出这五个学生Java语言成绩的平均值,以及计算并输出他们Java语言成绩的最大值和最小值。//PragrammenameStudent;publicclassStudent{StringsNO,sName,sSex;intsAge,sJava;publicStudent(StringXH,StringXM,StringXB,intNL,intXF){super();sNO=XH;sName=XM;sSex=XB;sAge=NL;sJava=XF;}publicStringgetNO(){returnsNO;}publicStringgetName(){returnsName;}publicStringgetSex(){returnsSex;}publicintgetAge(){returnsAge;}publicintgetJava(){returnsJava;}publicstaticvoidmain(String[]args){Student[]st=newStudent[5];st[0]=newStudent("09zc01","张三","男",19,94);st[1]=newStudent("09zc02","李四","男",20,85);st[2]=newStudent("09zc03","王五","女",18,96);st[3]=newStudent("09zc04","赵六","男",17,90);st[4]=newStudent("09zc05","杨七","女",21,88);intmax=0,min=100,sum=0;System.out.println("学生信息:");for(inti=0;i<st.length;i++){if(st[i].sJava<min)min=st[i].sJava;if(st[i].sJava>max)max=st[i].sJava;sum=sum+st[i].sJava;System.out.println("学生编号:"+st[i].getNO()+",姓名:"+st[i].getName()+",性别:"+st[i].getSex()+",年龄:"+st[i].getAge()+",Java课学分:"+st[i].getJava());}System.out.println();System.out.println("共有学生:"+st.length+",平均成绩:"+sum/st.length);System.out.println("最小学分:"+min+",最大学分:"+max);}}Java基础1.九种基本数据类型的大小,以及他们的封装类2.Switch可以用的参数种类.3.Object有哪些公用方法?4.HTTP缓存.5.Java的四种引用,强弱软虚,用到的场景.6.Hashcode的作用以及原理,Hash的算法:开放地址法和链地址法的对比.Hash扩容及加载因子的介绍.rehash过程等.7.ArrayList,LinkedList,Vector的区别.8.String,StringBuffer与StringBuilder的区别.9.Map,Set,List,Queue,Stack的特点与用法.10.HashMap和HashTable的区别.要深层理解,不只是线程安全,还有Hash算法的区别.11.HashMap和ConcurrentHashMap的区别,HashMap的底层源码.12.TreeMap,HashMap,LindedHashMap的区别.13.Collection包结构,与Collections的区别.14.trycatchfinally,try里有return,finally还执行么?15.Excption与Error包结构.非检查异常你遇到过哪些情况,检查异常你遇到过哪些情况.16.Java面向对象的三个特征与含义.以及面向对象的五个原则.17.Override和Overload的含义去区别.18.Interface与abstract类的区别,应用场景.19.Staticclass与nonstaticclass的区别.20.java多态的实现原理.21.实现多线程的两种方法:Thread与Runable.以及wait,join,notify等的使用.22.线程同步的方法:sychronized,lock,reentrantLock,Condition等.23.锁的等级:方法锁,对象锁,类锁.24.写出生产者消费者模式.用阻塞队列和不用的情况.25.ThreadLocal的设计理念与作用.26.ThreadPool用法与优势.27.Concurrent包里的其他东西:ArrayBlockingQueue,CountDownLatch等等.28.wait()和sleep()的区别.29.foreach与正常for循环效率对比.30.JavaIO.31.反射的作用于原理.32.泛型常用特点.33.XML与JSON的对比.34.Java与C\++对比.35.设计模式的六大原则.总开闭原则.36.常用设计模式的DEMO和介绍:单例,工厂,适配器,责任链,观察者等等.37.Servlet非常重要,要完整的说出声明周期.这个我推荐大家多百度看大牛博客文档,比看书快.JVM1.内存模型以及分区,需要详细到每个区放什么.2.堆里面的分区:Eden,survivalfromto,老年代,各自的特点.3.对象创建方法,对象的内存分配,对象的访问定位.4.GC的两种判定方法:引用计数与引用链.5.GC的三种收集方法:标记清除,标记整理,复制算法的原理与特点,分别用在什么地
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中国半导体光电器件行业市场规模调研及投资前景研究分析报告
- 电商平台限时抢购活动策划与执行服务协议
- 2025年中国百岁老人期货行业市场前景预测及投资价值评估分析报告
- 2025年中国钯合金行业市场前景预测及投资价值评估分析报告
- 虚拟现实影视特效制作与VR教育合作合同
- 影视拍摄现场群众演员意外险及理赔程序协议
- 2025年中国奥硝唑药物行业市场前景预测及投资价值评估分析报告
- 邻居代儿童接送协议书
- 股权代持与公司内部控制协议
- 重大公关事件应对与危机管理合同
- 糖尿病患者的饮食指导-课件
- 医院药物临床试验伦理委员会伦理审查申请及受理表
- 2021译林版高中英语选择性必修三课文翻译
- 智能网联汽车线控技术课件
- 郑州大学ppt模板
- (完整版)ECRS培训课件
- 学校端午假期致学生家长一封信
- 第1本书出体旅程journeys out of the body精教版2003版
- 塑料制品事业部独立核算体系文件
- 《鸿门宴》话剧剧本
- 灸法操作规程完整
评论
0/150
提交评论