JAVA编程题全集(100题及答案)_第1页
JAVA编程题全集(100题及答案)_第2页
JAVA编程题全集(100题及答案)_第3页
JAVA编程题全集(100题及答案)_第4页
JAVA编程题全集(100题及答案)_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

Java程序设计总复习题

1、编写一个Java程序,用if・else语句推断某年份是否为闰年。(分支)

//ProgrammeNameLeapYear.java

publicclassLeapYear{

publicstaticvoidmain(Stringargs[l){

intyear=2023;

if(args.lcngth!=O)

year=Integer.parseJnt(args[O|);

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

Systcm.out.println(year+"年是闰年。”);

else

System.ou(.println(year+"年不是闰年。");

1

}//if-else语句

2、编写一个Java程序在屏幕上输出1!+2!+3!+……+10]的和。(循环)

//programmenameForTest.java

publicclassForTest{

publicstaticvoidmain(Stringargs[J){

inti,j,mul,sum=O;

for(i=l;i<=10;i++){

mul=l;

for(j=lj<=i;j++){

mul=mul*j;

)

sum=sum+mul;

)

System.out.pnntlnC'l!+2!+3!+.......+10!二"+sum);

I

3、依次输入10个学生成果,推断学生(优秀、良好、中等、及格、不及格)并计算人数

(switch)

4、运用冒泡排序(数组)

publicclassBubbleSort{

publicstaticvoidmain(String[]args){

int[]array={63,4,24,l,3,5};

BubbleSortsorter=newBubbleSort();

sorter.sort(array);

)

〃冒泡排序

publicvoidsort(int[]array){

for(inti=l;i<array.length;i++)

for(intj=0;j<array.length-1;j++){

if(array[j]>array[j+l]){

inttemp=array[j];

array[j]=array[j+1];

array[j+l]=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.printin("请输入用户名,密码和验证密码");

System.out.print(“用户名:”);

name=input.next();

password=input.next();

System.out.print(“验证密码:”);

newPassword=input.next();

while(name.length()<3||(password.equals(newPassword)==fa

Ise)

||(password.length()<6)){

if(name.length()<3){

System.cut.printIn("用户名不能小于3");

)

if((password.equals(newPassword)==false)||password.lengt

h()<6){

System.cut.println("两次输入密码不一样或密码不能小「6

位”);

}

System.out.printin("\n"+"请重新输入“);

System.out.print(“用户名:”);

name=input.next();

System.out.print("密码:");

password=input.next();

System,out.print("验证密码

newPassword=input.next();

)

System.out.printin("注册成功!");

)

)

publicclassVerify{

publicstaticvoidmain(String[]args){

Registerml=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;

else

ticketPrice=35;

System.out.printin("门票价格:,,+ticketPrice);

)

)/////

importjava.util.Scanner;

publicclassTest{

publicstaticvoidmain(String[]args){

Scannerinput=newScanner(System.in);

Touristtl=newTourist();

System.out.print(“请输入年龄

tl.setAge(input.nextInt());

tl.ticket();

)

)

7、(1)编写一个圆类Circle,该类拥有:

①一个成员变量

Radius(私有,浮点型);//存放圆的半径:

②两个构造方法

Circle()//将半径设为0

Cirde(doub!er)〃创建Circle对象时将半径初始化为r

③三个成员方法

doublegetArea()〃获得圆的面积

doublegetPerimeter()〃获得圆的周长

voidshow()〃将圆的半径、周长、面积输出到屏幕

(2)编写一个圆柱体类Cylinder,它继承于上面的Circle类。还拥有:

①一个成员变量

doublehight(私有,浮点型);//圆柱体的高;

②构造方法

Cylinder(doubler,doubleh)〃创建Circle对象时将半径初始化为

③成员方法

doublegctVolumc()〃获得圆柱体的体积

voidshowVolume()〃将圆柱体的体积输出到屏幕

编写应用程序,创建类的对象,分别设置圆的半径、圆柱体的高,计算并分别显示圆

半径、圆面积、圆周长,圆柱体的体积。

//ProgrammeNameTestCylinder.java

classCircle{〃定义父类--园类

privatedoubleradius;〃成员变量一园半径

Circlc(){〃构造方法

radius=0.0;

}

Circle(doubler){〃构造方法

radius=r;

}

doublegctPcrimctcr(){〃成员方法一求园周长

return2*Math.PI*radius;

1

doublegctArca(){〃成员方法一求园面积

returnMath.PI*radius*radius;

1

voiddisp(){〃成员方法一显示园半径、周长、面积

System.oul.println("圆半径="+radius);

System.oul.println("圆周长="+gelPerimeler()j;

Systcm.out.println("[U面积="+getArea());

}

)

classCylinderextendsCircle{〃定义子类一圆柱类

privatedoublehight;〃成员变量一园柱高

Cylinder(doubler,doubleh){〃构造方法

siiper(r);

hight=h;

)

publicdoublegetVol(){〃成员方法一求园柱体积

returngetArea()*hight;

)

publicvoiddispVol(){〃成员方法--显示园柱体积

Systcm.out.println("圆柱体积="+gctVol());

)

publicclassTcstCylindcr{〃定义主类

publicstaticvoidmain(String||args){〃主程入口

CircleCi=newCircle(K).O);//生成园类实例

Ci.dispO;//调用园类的方法

CylinderCyl=newCylinder(5.0,10.0);〃生成圆柱类实例

CyLdispO;〃调用父类方法

CyLdispVol();〃调用子类方法

)

8、编写一个Java应用程序,从键盘读取用户输入两个字符串,并重载3个函数分别实现

这两个字符串的拼接、整数相加和浮点数相加。要进行异样处理,对输入的不符合要求

的字符串提示给用户,不能使程序崩溃。(异样处理)

//programmenameStrinput.java

importjava.io.*;

publicclassStrinput

(

publicstaticvoidmain(Stringargs[]){

Stringsl=null,52=null,ss,si,sf;

intil,i2;

float

BufferedReadei"strin=newBufferedReader(new

InputStreamReader(System.in));

try{System.out.print("输入第一个字符串:”);

sl=strin.readLine();

System.out.print(“输入其次个字符串:”);

s2=strin.readLine();)

catch(Exceptione)(System.out.println(e.getMessage());)

il=Intcgcr.parsclnt(sl);

i2-Integer.parselnt(s2);

fl=Float.parseFloat(sl);

f2=Float.parseFloat(s2);

ss=strAdd(sl,s2);

si=strAdd(il,i2);

sf=strAdd(fl,l2);

System.out.println("输入的二个字符串相加结果为:"+ss);

System.out.printin(”输入字符串转换为整数相加结果为:"+si);

System.out.println("输入字符串转换为浮点数相加结果为:"+sf);

)

staticStringstrAdd(Stringstr1,Stringstr2){

returnstrl+str2;

)

staticStringstrAdd(intintljntint2)(

returnString.vahieOf(intl+int2);

}

staticStringstrAdd(floatfill,floatflt2))

retiirnString.valueOf(fltl+fk2);

}

9、应用Fileinputstream类,编写应用程序,从磁盘上读取一个Java程序,并将源程序代

码显示在屏幕上。(被读取的文件路径为:E:/myjava/Hello.java)

//ProgrammeNameFISDemo.java

importjava.io.*;

publicclassFISDemo{

publicstaticvoidmain(Stringargs(]){

byte[|buf=newbyte(2056];

try(

FilcInputStrcamfilcln=nc\vFilcInputStrcam("c:/myjava/Hcllo.java");

intbytes=filcIn.rcad(buf,0,2056);

Stringsir=newString(huf,O,bytes);

System.out.println(str);

)catch(Exceptione){

e.printStackTrace();

}

10、编写一个Java程序将当100,101,102,103,104,105个数以数组的形式写入到Dest.txt

文件中,并以相反的依次读出显示在屏幕上。(文件)

importjava.io.*;

publicclasslODemo{

publicstaticvoidmain(Stringargs[]){

intdata[]={100,101,102,103,104,105};

int[]t=newint[200];

try(

//Filefile=newFile("dest.txt");

DataOutputStreamout=newDataOutputStream(new

FileOutputStream("dest.txt"));

for(inti=0;i<data.length;i++)

out.writelnt(data[i]);写入

out.close();

DatalnputStreamin=newDatalnputStream(new

FileInputStream("dest.txt"));

〃先读出来再倒序输出

for(inti=0;i<data.length;i++){

t[i]=in.readlnt();

)

for(inti=data.length-l;i>=0;i--){

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

}

/*for(inti=data.length-1;i>=0;i--){

t=in.readlnt(data[i]);

System.out.print(""+t);

}*/

System.out.printIn();

in.close();

}catch(IOExceptione)

{

System.out.println(e.getMessage());}

}

}

11、编写一个Java程序实现多线程,在线程中输出线程的名字,隔300亳秒输出一次,

共输出20次。

//programmenameTestThread;

//声明一个子线程类Thrcaddcmo;

classThreadDemoextendsThread{

publicThreadDemo(Stringstr){

super(str);

)

publicvoidrun()(

for(inti=0;i<20;i++){

Systcm.out.printf4,,+this.gctNanic());

Try(

Sleep(300);

)catch(IntenuptedExceptione)(

System.out.println(e.getMessage());

Return;

)

}

System.out.printing4/end");

)

)

publicclassTestThread{

publicstaticvoidmain(Stringargs[]){

ThreadDemo(hread1=newThreadDemo(44T1");

ThreadDemothread2=newThreadDemo(“T2”);

ThreadDemothread3=newThreadDemo(“T3”);

threadl.start();

thread2.start();

thread3.start();

)

io.编写程序,在屏幕上显示带标题的窗口,并添加一个按钮。当用户单击按钮时,结束程

序。(窗体编程)

//ProgrammeNameButtonEventDemo.java

importjavax.swing.*;

importjava.awt.evcnt.*;

publicclassButtonEvcntDcmoextendsJPanelimplementsActionListcner{

protectedJButtonbl;〃声明一个按钮对象

publicButtonEventDemo(){〃构造方法

ImageiconBullonlcon=newImagelcon("images/green.png");〃仓U建

按钮的图标对象

bl=newJBullon("退出按钮",Buttonicon);〃牛.成按钮对象

bl.setMnemonic(KeyEvent.VK_E);〃设置bl的助记符是Alt+E

bl.setToolTipTexK”这是退出按钮。)//设置按钮提示条

this.add(bl);〃往面板对象中加载按钮

bl.addActionListcncr(this);〃本类对象注册为按钮的事务监听器

1

publicvoidactionPerformed(ActionEvente){〃按钮事务响应方法

System.exit(O);〃按bl则退出主程序

)

privatestaticvoidcreateGUI(){〃创建窗体

JFrame.setDefaultLookAndFeelDecorated(true);//设置java隐含观感

JFrameframe=newJFrame("按钮测试");//生成应用程序主窗体

frame.setDefaultCloseOperation(JFrame.EXlT_ON_CLOSE);〃设置关

闭时隐含操作

ButtonEventDemoCPane=newButtonEventDemoO;//生成主类对

象-面板

CPanc.sctOpaquc(truc);〃面板要求不透亮

frame.setContentPane(CPane);〃设置主类对象为上窗体的内容面板

frame.pack。;〃主窗体紧缩显示

frame.setVisible(true);〃设置主窗体可见

}

publicstaticvoidmain(String[]args)(〃将crealeGUI()列入线程

javax.swing.SwingUtilities.invokeLater(newRunnable(){

publicvoidrun(){

creaeGUI();

)

1);

)

)

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;

s.Tava=XF;

}

publicStringgetNOO{

returnsNO;

}

publicStringgetName()(

returnsName;

}

publicStringgetSex()(

returnsSex;

)

publicintgetAge0{

returnsAge;

)

publicintgetJava0{

returnsjava;

}

publicstaticvoidmain(String1]args){

Student[]st=newStudent[5];

st[0]=newStudent("09zc01","张三","男",19,94);

st[l]=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.printinC学生信息:”);

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.printin("学生编号:*+st[i].getNOO+*,姓名:

getName()+",性别:"+st[i].getSex()+”,年龄:

*+st[i].getAge()+*,Java课学分:"+st[i].getJava。);

}

System.out.printin();

System,out.println(,?共有学生:“+st.length+〃,平均成果:

“+sum/st.length);

System.out.printlnC7最小学分:“+min+”,最高校分:

〃+max);

)

)

Java基础

1.九种基本数据类型的大小,以及他们的封装类

2.Switch可以用的参数种类.

3.Object有哪些公用方法?

4.HTTP缓存.

5.Java的四种引用,强弱软虚,用到的场景.

6.Hashcodc的作用以及原理,Hash的算法:开放地址法和链地址法的对比.Hash扩容及加载因

子的介绍.rehash过程等.

7.ArrayList,LinkcdList,Vector的区分.

8.String.StringBuffcr与SiringBuildcr的区分.

9.Map,Set,List,Queue,Stack的特点与用法.

10.HashMap和HashTable的区分.要深层理解,不只是线程平安,还有Hash算法的区分.

11.HashMap和ConcurrcniHashMap的区分,HashMap的底层源码.

12.TreeMap.HashM叩,LindedHashM叩的区分.

13.Collection包结构,与Collections的区分.

14.trycatchfinally.try里有rcturn.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,CountDownLalch等等.

28.wait。和sleep。的区分.

29.foreach与正常for循环效盅对比.

30.Java1O.

31.反射的作用于原理.

32.泛型常用特点.

33.XML与JSON的对比.

34.Java与C\++对比.

35.设计模式的六大原

温馨提示

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

最新文档

评论

0/150

提交评论