《2022年JAVA高级练习题.pdf》由会员分享,可在线阅读,更多相关《2022年JAVA高级练习题.pdf(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、JAVA高级练习题1、 编写一个程序,实现从命令行参数输入两个字符串类型的数值,并计算输出两个数值的与。2、编写一个程序,实现从命令行参数输入一字符串,统计该字符串中字符“ e”出现的次数。package zuoye; /* 输出 e的出现次数*/import java 、util 、Scanner; publicclass Test2 publicstaticvoid main(String args ) Scanner input = new Scanner(System、in); String str = input 、next(); int count =0; for (int i =
2、 0; i str、length(); i+) if (str、charAt( i)= e ) count +; System 、out、println(e的出现次数就是:+ count ); 3、生成十个0100 之间的随机数 ,放到数组中 ,然后排序输出。package zuoye; import java 、util 、Arrays; /* 生成十个 0100 之间的随机数 ,放到数组中 ,然后排序输出* author Administrator*/publicclass Test3 publicstaticvoid main(String args ) int arr = newint
3、 10; / 定义一个长度为 10的int 数组for (int i = 0; i s、lastIndexOf(、) System 、out、println(邮箱地址中、出现在的前面 ); returnfalse ; for (int i=0; i= a & s、charAt( i)= A & s、charAt( i)= Z ) else System 、out、println(用户名里有其她字符); returnfalse ; returntrue ; package youxiang; publicclass Test publicstaticvoid main(String args )
4、 / TODO Auto-generated method stubif (MailTest 、testMail() 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 3 页,共 18 页 - - - - - - - - - - JAVA高级练习题System 、out、println(邮箱格式合法 ); else System 、out、println(邮箱格式不合法 ); 6、分别在控制台输入字符串与子字符串,并计算字符串中子字符串出现的次数。package zuoye; import java 、ut
5、il 、Scanner; /* 控制台输入一段字符串,再查询一段子字符串出现的次数*/publicclass Test6 publicstaticvoid main(String args ) Scanner input = new Scanner(System、in); String a = input 、next(); String b = input 、next(); int count = 0; / 计数器for (int i = 0; i a、length()-b 、length(); i= a、indexOf( b , i)+1) if (a、indexOf( b, i)!=-1)
6、 count +; System 、out、println(count ); 集合类1、请使用 LinkedList来模拟一个队列(先进先出的特性): 1) 拥有放入对象的方法void put(Object o) 2) 取出对象的方法Object get() 3) 判断队列当中就是否为空的方法boolean isEmpty(); 并且 ,编写测试代码,验证您的队列就是否正确。publicclass Linkeds List l ; Linkeds() l =new LinkedList(); publicvoid put(Object o) 精品资料 - - - 欢迎下载 - - - - -
7、- - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 4 页,共 18 页 - - - - - - - - - - JAVA高级练习题l 、add(o); public Object get() Object o= l 、get(0); l 、remove(0); return o; publicboolean isEmpty() if( l 、isEmpty() returntrue; returnfalse; public static void main(String args) /定义一个空队列Linkeds l = new Linkeds(); /往队
8、列中放入对象l 、put(Tom1); l 、put(John2); l 、put(Mary3); /如果队列不为空, 依次输出队列中的元素while(!l、isEmpty() System、out 、println(l、get(); 2、假设顺序列表ArrayList 中存储的元素就是整型数字15,遍历每个元素,将每个元素顺序输出。package zuoye; import java 、util、ArrayList; import java 、util、Iterator; import java 、util、List; public class Test1 public static voi
9、d main(String args) List list=new ArrayList(); Number n1=new Number(1); Number n2=new Number(2); Number n3=new Number(3); Number n4=new Number(4); Number n5=new Number(5); list、add(n1); list、add(n2); list、add(n3); list、add(n4); 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 5 页
10、,共 18 页 - - - - - - - - - - JAVA高级练习题list、add(n5); Iterator it=list 、iterator(); while(it 、hasNext() System、out、print(it 、next(); 3、在一个列表中存储以下元素:apple,grape,banana,pear 1)返回集合中的最大的与最小的元素2)将集合进行排序,并将排序后的结果打印在控制台上package zuoye; publicclass Fruit private String fruit ; public Fruit() public Fruit(Strin
11、g fruit ) this 、fruit =fruit; public String getFruit() returnfruit ; publicvoid setFruit(String fruit ) this 、fruit = fruit ; package zuoye; import java 、util、Arrays; import java 、util、Collections; import java 、util、List; public class FruitTest public static void main(String args) List fruit = Array
12、s、asList(apple grade banana pear 、split( ); System、out 、println( 最大值就是 : + Collections 、max(fruit); System、out 、println( 最小值就是 : + Collections 、min(fruit); 4、 编写一个程序 ,创建一个 HashMap 对象 ,用于存储银行储户的信息(其中储户的主要信息有储户的 ID,姓名与余额 )。另外 ,计算并显示其中某个储户的当前余额。package zuoye; publicclass Bank private String id ; 精品资料 -
13、 - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 6 页,共 18 页 - - - - - - - - - - JAVA高级练习题private String name ; privatedoublemoney ; public Bank() public Bank(String id ,String name ,doublemoney ) this 、id =id ; this 、name = name ; this 、money = money ; public String getId() returnid ;
14、publicvoid setId(String id ) this 、id = id ; public String getName() returnname ; publicvoid setName(String name ) this 、name = name ; publicdouble getMoney() returnmoney ; publicvoid setMoney(doublemoney ) this 、money = money ; package zuoye; import java 、util、HashMap; import java 、util、Iterator; i
15、mport java 、util、Map; import java 、util、Set; public class BankTest public static void main(String args) Map map=new HashMap(); map、put( 用户 1, new Bank(1, 张三 ,Math 、 random()*100000); map、put( 用户 2, new Bank(2, 李四 ,Math 、 random()*100000); map、put( 用户 3, new Bank(3, 王五 ,Math 、 random()*100000); map、p
16、ut( 用户 4, new Bank(4, 赵六 ,Math 、 random()*100000); Set keySet=map、keySet(); Iterator it = keySet、 iterator(); 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 7 页,共 18 页 - - - - - - - - - - JAVA高级练习题double sum = 0; while(it 、hasNext() Object key = it、next(); Bank a = map、get(key)
17、; System、out、 println( 账户 +a、getId()+ 的余额 :+a、getMoney(); / 计算所有帐户的余额之与sum += a、 getMoney(); System、 out、println( 所有账户余额:+sum); 5、 从控制台输入若干个单词(输入回车结束 )放入集合中 ,将这些单词排序后(忽略大小写 )打印出来。package zuoye; import java 、util、ArrayList; import java 、util、List; import java 、util、Scanner; public class Test5 public
18、static void main(String args) Scanner input = new Scanner(System、in); List list = new ArrayList(); String str = input 、nextLine(); String arr = str 、split( ); String tmp; for (int i = 0; i arr 、length; i+) for (int j = i + 1; j 0) str = arrj; arrj = arrj + 1; arrj + 1 = str; for (String a : arr) lis
19、t、 add(a); System、out、println(a); IO 流1、在本机的磁盘系统中,找一个文件夹 ,利用 File 类的提供方法,列出该文件夹中的所有文件精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 8 页,共 18 页 - - - - - - - - - - JAVA高级练习题的文件名与文件的路径,执行效果如下: - 路径名 :c:tempdef 、txt package作业 ; import java 、io 、File; publicclass Test1 publicstatic
20、void main(String args ) = new File(新建文件夹 ); String files = (); for (String o : files ) System 、out、println(文件名 : + o); System 、out、println(路径 : + () + + o ); System 、out、println(-); 2、编写一个java 程序实现文件复制功能,要求将d:/io/copysrc 、 doc 中的内容复制到d:/io/copydes 、doc 中。package 作业 ; import java 、io、File; import jav
21、a 、io、; import java 、io、; /* * 文件的拷贝*/ public class Test2 public static void main(String args) = new File(fileabc 、txt); = new File(fileabc_back 、txt); try ( fi = new (file); fo = new ();) int b = -1; while (b = fi 、read() != -1) fo、 write(b); catch (Exception e) e、printStackTrace(); System、out 、pri
22、ntln( 拷貝成功! ); 3、创建 c:/test 、txt 文件并在其中输入hello world 创建一个输入流读取该文件中的文本并且把小写的l 变成大写L 再利用输出流写入到d:test 、txt 中实现步骤 :1、在本地硬盘C 盘下创建一个文件test 、txt 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 9 页,共 18 页 - - - - - - - - - - JAVA高级练习题2、创建一个包含main() 方法的类 ,并在 main 中编写代码3.运行代码并且测试结果实现过滤器的功
23、能效果显示 : package 作业 ; import java 、io、BufferedReader; import java 、io、BufferedWriter; import java 、io、; import java 、io、; import java 、io、; import java 、io、IOException; /* * 替换文件中的小写字母l 为大写字母L */ public class Test3 public static void main(String args) f; String s = ; BufferedReader br = null; try f =
24、 new (F:test 、txt); br = new BufferedReader(f); s = br、readLine(); System、out、println( 源文件 + s); s = s 、replace(l, L); catch ( e) 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 10 页,共 18 页 - - - - - - - - - - JAVA高级练习题e、printStackTrace(); catch (IOException e) e、printStackTrace
25、(); finally try br、 close(); catch (IOException e) e、printStackTrace(); BufferedWriter bw = null; System、out 、println(s); try fw = new (F:test 、txt); bw = new BufferedWriter(fw); bw、write(s); catch (IOException e) e、printStackTrace(); finally try bw、close(); catch (IOException e) e、printStackTrace()
26、; 4、在程序中创建一个Student 类型的对象 ,并把对象信息保存到d:/io/student、txt 文件中 ,然后再从文件中把Student 对象的信息读出显示在控制台上,Student 类的描述如下: package作业 ; import java 、util 、Date; publicclass Student privateint id ; private String name ; private Date birth ; public Student() super (); public Student( int id , String name , Date birth )
27、 super (); this 、id = id ; this 、name = name ; this 、birth = birth ; 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 11 页,共 18 页 - - - - - - - - - - JAVA高级练习题publicint getId() returnid ; publicvoid setId( intid ) this 、id = id ; public String getName() returnname ; publicvoid se
28、tName(String name ) this 、name = name ; public Date getBirth() returnbirth ; publicvoid setBirth(Date birth ) this 、birth = birth ; Overridepublic String toString() returnStudent id= + id + , name= + name + , birth= + birth + ; public class SerializationExercise public static void main(String args)
29、Student s1 = new Student(1,zhangsan,1999-11-11); try fos = new (d:iostudent、txt); ObjectOutputStream oos = new ObjectOutputStream(fos); System 、out 、println( 对象序列化、 、 、); oos 、writeObject(s1); oos 、flush(); oos 、close(); catch ( e1) System 、out 、println(e1 、getMessage(); catch (IOException e2) Syste
30、m 、out 、println(e2 、getMessage(); try fis = new (d:iostudent、txt); ObjectInputStream ois = new ObjectInputStream(fis); System 、out 、println( 反序列化、 、); Student ss1 = (Student)ois、readObject(); System 、out 、println(ss1); 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 12 页,共 18 页
31、- - - - - - - - - - JAVA高级练习题ois、close(); catch ( e) System 、out 、println(e 、getMessage(); catch (IOException e) System 、out 、println(e 、getMessage(); catch (ClassNotFoundException e) System 、out 、println(e 、getMessage(); 多线程1、利用 Thread 实现 ,要求多线程求解某范围素数每个线程负责1000 范围 :线程 1 找 1-1000;线程 2 找 1001-2000;线
32、程 3 找 2001-3000。编程程序将每个线程找到的素数及时打印。package找素数 ; publicclass Number privateint num ; public Number() super (); public Number(int num ) super (); this 、num = num ; publicint getNum() returnnum ; publicvoid setNum(int num ) this 、num = num ; publicsynchronizedvoid checkNum(int num ) if (num = 1000) for
33、 (intn = 2; n = num ; n+) booleanb = true ; if (n != 1) for (int i = 2; i n; i+) if (n % i = 0) b = false ; break ; 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 13 页,共 18 页 - - - - - - - - - - JAVA高级练习题if (b) System 、out、println( n + 就是质数 ); if (num = 2000) for (intn = 1001;
34、n = num ; n+) booleanb = true ; if (n != 1) for (int i = 2; i n; i+) if (n % i = 0) b = false ; break ; if (b) System 、out、println( n + 就是质数 ); if (num = 3000) for (intn = 2001; n = num ; n+) booleanb = true ; if (n != 1) for (int i = 2; i n; i+) if (n % i = 0) b = false ; break ; if (b) System 、out
35、、println( n + 就是质数 ); package找素数 ; /public class Numbers1 implements Runnablepublicclass Numbers1 extends Thread private Number num ; public Numbers1(Number num ) 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 14 页,共 18 页 - - - - - - - - - - JAVA高级练习题this 、num = num ; publicvoi
36、d run() num 、checkNum(1000); package找素数 ; /public class Numbers1 implements Runnablepublicclass Numbers2 extends Thread private Number num ; public Numbers2(Number num ) this 、num = num ; publicvoid run() num 、checkNum(2000); package找素数 ; /public class Numbers1 implements Runnablepublicclass Numbers
37、3 extends Thread private Number num ; public Numbers3(Number num ) this 、num = num ; publicvoid run() num 、checkNum(3000); package找素数 ; publicclass Test publicstaticvoid main(String args ) Number num = new Number(); Numbers1 n1= new Numbers1(num ); Thread t1 = new Thread( n1); t1、setName( 11000:); t
38、1、start(); Numbers2 n2= new Numbers2(num ); Thread t2 = new Thread( n2); t2、setName( 10012000:); t2、start(); Numbers3 n3= new Numbers3(num ); Thread t3 = new Thread( n3); t3、setName( 20013000); t3、start(); 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 15 页,共 18 页 - - - - - - -
39、 - - - JAVA高级练习题 2、 利用 Runnable 实现 ,要求多线程求解某范围素数每个线程负责1000 范围 :线程 1 找 1-1000;线程 2 找 1001-2000;线程 3 找 2001-3000。编程程序将每个线程找到的素数及时打印。与第一题相同 ,不再贴出代码,第一题注释即为修改处。3、编写一个Java程序 (包括一个主程序类,一个线程类。在主程序类中创建2 个线程 ,将其中一个线程的优先级设为10,另一个线程的优先级设为6。 让优先级为10的线程打印200 次 “线程 1 正在运行” ,优先级为6的线程打印200 次“线程2 正在运行”。package优先级 ;
40、publicclass Main privateint num ; publicint getNum() returnnum ; publicvoid setNum(int num ) this 、num = num ; public Main() super (); public Main( int num ) super (); this 、num = num ; publicvoid dayin( int num ) for (int i=0; i num ;i+)System、out、println(Thread、currentThread()、getName()+正在运行 ); pa
41、ckage优先级 ; publicclass Xiancheng1 implements Runnable private Main num ; public Xiancheng1() super (); public Xiancheng1(Main num ) this 、num = num ; Overridepublicvoid run() num 、dayin(200); package优先级 ; 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 16 页,共 18 页 - - - - - - -
42、- - - JAVA高级练习题publicclass Xiancheng2 implements Runnable private Main num ; public Xiancheng2() super (); public Xiancheng2(Main num ) this 、num = num ; Overridepublicvoid run() num 、dayin(200); package优先级 ; publicclass Test publicstaticvoid main(String args ) Main num =new Main(); Xiancheng1 x1=ne
43、w Xiancheng1(num ); Thread t1 = new Thread( x1); t1、setPriority(10); t1、setName( 线程 1 ); t1、start(); Xiancheng2 x2=new Xiancheng2(num ); Thread t2 = new Thread( x2); t2、setPriority(6); t2、setName( 线程 2 ); t2、start(); 4、编写一个计时器,每隔一秒钟 ,在控制台打印出最新时间。package 计时器 ; import java 、text、SimpleDateFormat; impo
44、rt java 、util、Date; public class Main private Date date; public Main() super(); / TODO Auto-generated constructor stub public Main(Date date) super(); this、date = date; public Date getDate() 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 17 页,共 18 页 - - - - - - - - - - JAVA高级练习
45、题return date; public void setDate(Date date) this、date = date; public void getDay() while (true) Date date=new Date(); SimpleDateFormat num = new SimpleDateFormat(hh:mm:ss); String dateString = num 、format(date); System、out、println(Thread 、currentThread() 、getName() +dateString ); try Thread、sleep(1
46、000); catch (InterruptedException e) e、printStackTrace(); package计时器 ; publicclass Clock implements Runnable private Main num ; public Clock() super (); public Clock(Main num ) super (); this 、num = num ; Overridepublicvoid run() num 、getDay(); package计时器 ; publicclass Test publicstaticvoid main(String args ) Main num = new Main(); Clock c = new Clock( num ); Thread t = new Thread( c); t、setName(当前时间为 :); t、start(); 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 18 页,共 18 页 - - - - - - - - - -