JAVA高级练习题.docx
- 文档编号:24816222
- 上传时间:2023-06-01
- 格式:DOCX
- 页数:20
- 大小:22.53KB
JAVA高级练习题.docx
《JAVA高级练习题.docx》由会员分享,可在线阅读,更多相关《JAVA高级练习题.docx(20页珍藏版)》请在冰豆网上搜索。
JAVA高级练习题
1、编写一个程序,实现从命令行参数输入两个字符串类型的数值,并计算输出两个数值的和。
2、编写一个程序,实现从命令行参数输入一字符串,统计该字符串中字符“e”出现的次数。
packagezuoye;
/**
*输出e的出现次数
*/
importclassTest2{
publicstaticvoidmain(String[]args){
Scannerinput=newScanner;
Stringstr=();
intcount=0;
for(inti=0;i<();i++)
{
if(i)=='e')
{
count++;
}
}
"e的出现次数是:
"+count);
}
}
3、生成十个0~100之间的随机数,放到数组中,然后排序输出。
packagezuoye;
import*生成十个0~100之间的随机数,放到数组中,然后排序输出
*@authorAdministrator
*
*/
publicclassTest3{
publicstaticvoidmain(String[]args){
intarr[]=newint[10];
==-1)
{
"邮箱地址中不包含@或.");
returnfalse;
}
if("@")!
=("@")||(".")!
=("."))
{
"邮箱地址中含有多余的@或.");
returnfalse;
}
if("@")>("."))
{
"邮箱地址中.出现在@的前面");
returnfalse;
}
for(inti=0;i<("@");i++)
{
if((i)>='a'&&(i)<='z')||(i)>='A'&&(i)<='Z'))
{
}else
{
"用户名里有其他字符");
returnfalse;
}
}
returntrue;
}
}
packageyouxiang;
publicclassTest{
publicstaticvoidmain(String[]args){
plit(""));
"最大值是:
"+(fruit));
"最小值是:
"+(fruit));
}
}
4、编写一个程序,创建一个 HashMap对象,用于存储银行储户的信息(其中储户的主要信息有储户的ID,姓名和余额)。
另外,计算并显示其中某个储户的当前余额。
packagezuoye;
publicclassBank{
privateStringid;
privateStringname;
privatedoublemoney;
publicBank()
{
}
publicBank(Stringid,Stringname,doublemoney)
{
=id;
=name;
=money;
}
publicStringgetId(){
returnid;
}
publicvoidsetId(Stringid){
=id;
}
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
=name;
}
publicdoublegetMoney(){
returnmoney;
}
publicvoidsetMoney(doublemoney){
=money;
}
}
packagezuoye;
importclassBankTest{
publicstaticvoidmain(String[]args){
Map
("用户1",newBank("1","张三",()*100000));
("用户2",newBank("2","李四",()*100000));
("用户3",newBank("3","王五",()*100000));
("用户4",newBank("4","赵六",()*100000));
SetkeySet=();
Iteratorit=();
doublesum=0;
while()){
Objectkey=();
Banka=(key);
"账户"+()+"的余额:
"+());
本地硬盘C盘下创建一个文件
2.创建一个包含main()方法的类,并在main中编写代码
3.运行代码并且测试结果
实现过滤器的功能
效果显示:
package作业;
import*替换文件中的小写字母l为大写字母L
*/
publicclassTest3{
publicstaticvoidmain(String[]args){
FileReaderf;
Strings="";
BufferedReaderbr=null;
try{
f=newFileReader("F:
\\");
br=newBufferedReader(f);
s=();
"源文件"+s);
s=("l","L");
}catch(FileNotFoundExceptione){
();
}catch(IOExceptione){
();
}finally{
try{
();
}catch(IOExceptione){
();
}
}
BufferedWriterbw=null;
try{
FileWriterfw=newFileWriter("F:
\\");
bw=newBufferedWriter(fw);
(s);
}catch(IOExceptione){
();
}finally{
try{
();
}catch(IOExceptione){
();
}
}
}
}
4、在程序中创建一个Student类型的对象,并把对象信息保存到d:
/io/文件中,然后再从文件中把Student对象的信息读出显示在控制台上,Student类的描述如下:
package作业;
importclassStudent{
privateintid;
privateStringname;
privateDatebirth;
publicStudent(){
super();
}
publicStudent(intid,Stringname,Datebirth){
super();
=id;
=name;
=birth;
}
publicintgetId(){
returnid;
}
publicvoidsetId(intid){
=id;
}
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
=name;
}
publicDategetBirth(){
returnbirth;
}
publicvoidsetBirth(Datebirth){
=birth;
}
@Override
publicStringtoString(){
return"Student[id="+id+",name="+name+",birth="+birth+"]";
}
}
publicclassSerializationExercise{
publicstaticvoidmain(Stringargs[]){
Students1=newStudent("1","zhangsan","1999-11-11");
try{
FileOutputStreamfos=newFileOutputStream("d:
\\io\\");
ObjectOutputStreamoos=newObjectOutputStream(fos);
"对象序列化...");
(s1);
();
();
}catch(FileNotFoundExceptione1){
}catch(IOExceptione2){
}
try{
FileInputStreamfis=newFileInputStream("d:
\\io\\");
ObjectInputStreamois=newObjectInputStream(fis);
"反序列化...");
Studentss1=(Student)();
();
}catch(FileNotFoundExceptione){
}catch(IOExceptione){
}catch(ClassNotFoundExceptione){
}
}
}
多线程
1、利用Thread实现,要求多线程求解某范围素数每个线程负责1000范围:
线程1找1-1000;线程 2 找 1001-2000;线程 3 找2001-3000。
编程程序将每个线程找到的素数及时打印。
package找素数;
publicclassNumber{
privateintnum;
publicNumber(){
super();
}
publicNumber(intnum){
super();
=num;
}
publicintgetNum(){
returnnum;
}
publicvoidsetNum(intnum){
=num;
}
publicsynchronizedvoidcheckNum(intnum){
if(num==1000){
for(intn=2;n<=num;n++){
booleanb=true;
if(n!
=1){
for(inti=2;i if(n%i==0){ b=false; break; } } } if(b){ +"是质数"); } } } if(num==2000){ for(intn=1001;n<=num;n++){ booleanb=true; if(n! =1){ for(inti=2;i if(n%i==0){ b=false; break; } } } if(b){ +"是质数"); } } } if(num==3000){ for(intn=2001;n<=num;n++){ booleanb=true; if(n! =1){ for(inti=2;i if(n%i==0){ b=false; break; } } } if(b){ +"是质数"); } } } } } package找素数; //publicclassNumbers1implementsRunnable publicclassNumbers1extendsThread{ privateNumbernum; publicNumbers1(Numbernum){ =num; } publicvoidrun(){ (1000); } } package找素数; //publicclassNumbers1implementsRunnable publicclassNumbers2extendsThread{ privateNumbernum; publicNumbers2(Numbernum){ =num; } publicvoidrun(){ (2000); } } package找素数; //publicclassNumbers1implementsRunnable publicclassNumbers3extendsThread{ privateNumbernum; publicNumbers3(Numbernum){ =num; } publicvoidrun(){ (3000); } } package找素数; publicclassTest{ publicstaticvoidmain(String[]args){ Numbernum=newNumber(); Numbers1n1=newNumbers1(num); Threadt1=newThread(n1); ("1~1000: "); (); Numbers2n2=newNumbers2(num); Threadt2=newThread(n2); ("1001~2000: "); (); Numbers3n3=newNumbers3(num); Threadt3=newThread(n3); ("2001~3000"); (); } } 2、利用Runnable实现,要求多线程求解某范围素数每个线程负责1000范围: 线程1找1-1000;线程 2 找 1001-2000;线程 3 找2001-3000。 编程程序将每个线程找到的素数及时打印。 与第一题相同,不再贴出代码,第一题注释即为修改处。 3、编写一个Java程序(包括一个主程序类,一个线程类。 在主程序类中创建2个线程,将其中一个线程的优先级设为10,另一个线程的优先级设为6。 让优先级为10的线程打印200次“线程1正在运行”,优先级为6的线程打印200次“线程2正在运行”。 package优先级; publicclassMain{ privateintnum; publicintgetNum(){ returnnum; } publicvoidsetNum(intnum){ =num; } publicMain(){ super(); } publicMain(intnum){ super(); =num; } publicvoiddayin(intnum){ for(inti=0;i } } package优先级; publicclassXiancheng1implementsRunnable{ privateMainnum; publicXiancheng1(){ super(); } publicXiancheng1(Mainnum){ =num; } @Override publicvoidrun(){ (200); } } package优先级; publicclassXiancheng2implementsRunnable{ privateMainnum; publicXiancheng2(){ super(); } publicXiancheng2(Mainnum){ =num; } @Override publicvoidrun(){ (200); } } package优先级; publicclassTest{ publicstaticvoidmain(String[]args){ Mainnum=newMain(); Xiancheng1x1=newXiancheng1(num); Threadt1=newThread(x1); (10); ("线程1"); (); Xiancheng2x2=newXiancheng2(num); Threadt2=newThread(x2); (6); ("线程2"); (); } } 4、编写一个计时器,每隔一秒钟,在控制台打印出最新时间。 package计时器; importclassMain{ privateDatedate; publicMain(){ super(); //TODOAuto-generatedconstructorstub } publicMain(Datedate){ super(); =date; } publicDategetDate(){ returndate; } publicvoidsetDate(Datedate){ =date; } publicvoidgetDay(){ while(true){ Datedate=newDate(); SimpleDateFormatnum=newSimpleDateFormat("hh: mm: ss"); StringdateString=(date); +dateString); try{ (1000); }catch(InterruptedExceptione){ (); } } } } package计时器; publicclassClockimplementsRunnable{ privateMainnum; publicClock(){ super(); } publicClock(Mainnum){ super(); =num; } @Override publicvoidrun(){ (); } } package计时器; publicclassTest{ publicstaticvoidmain(String[]args){ Mainnum=newMain(); Clockc=newClock(num); Threadt=newThread(c); ("当前时间为: "); (); } }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 高级 练习题