Java练习题集
小菜鸟进阶史
学习是一个漫长而又积累的过程,一点一滴,终将汇海流。
展开
-
Java练习>修改系统日期时间(年月日)代码解析
代码解析:package Dmoe_LianXi.D05_SuiJiHongBao.D06_XiuGaiShiJian;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.Scanner;//修改年月日时间public class ...原创 2019-12-01 13:43:02 · 1207 阅读 · 0 评论 -
Java练习>随机发手气红包案例代码(键盘输入所发红包金额和人数)
代码解析:精确到小数点后两位package Dmoe_LianXi.D05_SuiJiHongBao;import java.text.DecimalFormat;import java.util.ArrayList;import java.util.Random;import java.util.Scanner;public class Demo02_Main { p...原创 2019-11-30 15:39:09 · 1400 阅读 · 0 评论 -
Java练习>递归>>打印多级目录
案例:package DiGui;import java.io.File;/* 递归打印多级目录 需求: G:\Demo02 G:\Demo02\.idea G:\Demo02\.idea\misc.xml G:\Demo02\.idea\modules.xml G:\Demo02\.i...原创 2019-08-11 14:57:36 · 438 阅读 · 0 评论 -
Java练习>Function接口>>自定义函数模型拼接
练习:自定义函数模型拼接。题目:请使用Function进行函数模型拼接,按照顺序需要执行的多个函数的操作为:String str = "张三,18"。分析:1.将字符串截取数字年龄部分,得到字符串;2.将上一步的字符串转换成为int类型的数字;3.将上一步的int数字累加100,得到结果int数组。原创 2019-08-19 16:38:10 · 1182 阅读 · 4 评论 -
Java练习>自定义异常类>>模拟注册操作,如果用户名已存在,则抛出异常并提示:亲!该用户名已经被注册
自定义异常类: java提供的异常类,不够我们使用,需要自己定义一些异常类。格式: public class RegisterException extends Exception { 添加一个空参数的构造方法 ; 添加一个异常信息的构造方法 ; }注意: 1. 自定义异常类一般都是以Exception结尾的,...原创 2019-08-07 19:46:22 · 4955 阅读 · 0 评论 -
Java练习>Predicate接口>>集合信息筛选
练习:集合信息筛选。 数组当有多个"姓名+性别"的信息如下。 String[] array = {"易烊千玺,男","黄渤,男","舒淇,女","管虎,男","刘亦菲,女"};请通过Predicate接口的拼装将符合要求的字符串筛选到集合ArrayList中,须同时满足两个条件:1.必须为男生。2.姓名为两个字。 分析: 1.有两个判断条件,所有需要使用Predicate接口,对条件进行判断2.必须同时满足两个条件,所有可以使用and方法连接两个判断条件原创 2019-08-19 15:32:22 · 588 阅读 · 0 评论 -
Java练习>序列化集合>>如何把多个对象存储到文本中并输出(序列化、反序列化)
练习:序列化集合。当我们在文件中保存多个对象的时候,可以把多个对象存储到一个集合中,对集合进行序列化和反序列化。分析: 1.定义一个存储Person对象的ArrayList集合。2.在ArrayList集合中存储Person对象。3.创建一个序列化流ObjectOutputStream对象。4.使用ObjectOutputStream对象中的方法writeObject,对集合进行序列化。5.创建一个反序列化OBjectInputStream对象。 6.使用ObjectInputStream对象中的方法rea原创 2019-08-14 11:53:58 · 3594 阅读 · 0 评论 -
Java练习>Lambda表达式使用方法>>有参有返回值的练习
Lambda表达式的标准格式: 由三部分构成: a. 一些参数。 b. 一个箭头。 c. 一段代码。格式: (参数列表) -> {一些重要方法的代码}; 解释说明格式: ():接口中抽象方法的参数列表,没有参数,就空着;有参数就写出参数,多个参数使用逗号分隔。 -&g...原创 2019-08-09 18:44:31 · 3170 阅读 · 0 评论 -
Java练习>Consumer接口>>格式化打印“姓名:xx,性别:xx。”
练习:字符串数组中存有多条信息,请按照格式"姓名:xx,性别:xx。"的格式将信息打印出来。 要求将打印姓名的动作作为第一个Consumer接口的Lambda实例,将打印性别的动作作为第二个Consumer接口的Lambda实, 将两个Consumer接口按照顺序"拼接"到一起。原创 2019-08-19 12:38:46 · 797 阅读 · 0 评论 -
Java练习>Supplier接口>>求数组元素中的最大值
案例:package JDK8.Xin;import java.util.function.Supplier;/* 练习:求数组元素最大值。 使用Supplier接口作为方法参数类型,通过Lambda表达式求出int数组中的最大值。 提示:接口的泛型请使用java.lang.Integer类。 */public class Demo02Su...原创 2019-08-19 11:02:17 · 931 阅读 · 0 评论 -
Java>异常>>异常处理的两种方法及Throwable类中3个异常处理的方法
异常处理的第一种方法_throws关键字:案例:定义一个类:package YiChang;import java.io.FileNotFoundException;import java.io.IOException;/* throws关键字:异常处理的第一种方式,交给别人处理 作业: 当方法内部抛出异常对象的时候,那么我们就必须处理这个异...原创 2019-08-07 15:45:04 · 436 阅读 · 0 评论 -
Java练习>网络编程>>TCP通信的客户端、服务器端如何实现数据传送
实例:定义服务器端代码:package WangLuoBianCheng;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.ServerSocket;import java.net.Socket;/* TCP通信的服务器...原创 2019-08-14 18:48:00 · 1036 阅读 · 0 评论 -
Java练习>递归求和>>使用递归计算1-n之间的和并分析其原理
案例:package DiGui;/* 练习: 使用递归计算1-n之间的和 */public class Demo01Sum { public static void main(String[] args) { int s = sum(3); System.out.println(s); } /* ...原创 2019-08-11 10:40:44 · 4179 阅读 · 0 评论 -
Java练习>递归求阶乘>>求n的阶乘:n!=n*(n-1)*...*1及原理分析
案例:package DiGui;/* 使用递归计算阶乘: n的阶乘:n!=n*(n-1)*...*3*2*1 5的阶乘:5!=5*(5-1)*(5-2)*(5-3)*(5-4) */public class Demo02Sum { public static void main(String[] args) { int...原创 2019-08-11 10:57:59 · 5064 阅读 · 0 评论 -
Java练习>JDBC定义一个方法,查询Xxx表的数据将其封装为对象,然后装载集合,返回。
要求:定义一个方法,查询emp表的数据将其封装为对象,然后装载集合,返回。实现方法: 1.定义Emp类 2.定义方法 public List<Emp> findAll(){} 3.实现方法 select * from emp;案例:定义Emp类:package cn.itcast.domain;import java.util.Dat...原创 2019-08-26 13:48:45 · 1226 阅读 · 1 评论 -
Java练习>缓冲流>>如何使用缓冲流进行 文件复制
实例:package Buffered;import java.io.*;/* 文件复制:一读一写 明确: 数据源:G:\Demo02\src\1.psd 数据的目的地:G:\Demo02\1.psd 文件复制的步骤: 1.创建字节缓冲输入流对象,构造方法中传递字节输入流 2.创建字节缓冲输出...原创 2019-08-13 10:30:31 · 1517 阅读 · 0 评论 -
Java练习>Map集合和缓冲流>>对文本中的内容进行排序
练习:对文本中的内容进行排序, 按照(1,2,3...)顺序排序。分析:1.创建一个HashMap集合对象,可以:存储每行文本的序号(1,2,3...);value:存储每行的文本。2.创建字符缓冲输入流对象,构造方法中绑定字符输入法。3.创建字符缓冲输出流对象,构造方法中绑定字符输出流。 4.使用字符缓冲输入流中的方法readLine,逐行读取文本。5.对读取到的文本进行切割,获取行中的序号和文本内容。6.把切割好的序号和文本内容存储到HashMap集合中(key序号是有序的,会自动排序1,2,3...原创 2019-08-13 12:12:02 · 528 阅读 · 0 评论 -
Java练习>IO流>>使用Properties集合存储数据并遍历
案例:package IO;import java.io.FileWriter;import java.io.IOException;import java.util.Properties;import java.util.Set;/* java.util.Properties集合,extends Hashtable<k,v> ipmlements Map&...原创 2019-08-12 17:23:47 · 704 阅读 · 0 评论 -
Java练习>IO流>>文件复制(FileInputStream、FileOutputStream)
案例:package IO;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;/* 文件复制练习:一读一写 明确: 数据源:G:\Demo02\src\1.txt 数据的目的地:G:\Demo02\1....原创 2019-08-12 11:48:27 · 488 阅读 · 0 评论 -
Java练习>网络编程>>TCP通信_本地文件如何上传到服务器
TCP通信的文件上传案例:原理:客户端读取本地的文件,把文件上传到服务器,服务器再把长传的文件保存到服务器的硬盘上。分析:客户端使用本地字节输入流,读取要上传的文件。 客户端使用网络字节输出流,把读取到的文件上传到服务器。 服务器使用网络字节输入流,读取客户端上传的文件。 服务器使用本地字节输出流,把读取到的文件,保存到服务器的硬盘上。 服务器使用网络字节输出流,给客户端回写一...原创 2019-08-15 15:28:23 · 652 阅读 · 0 评论 -
java练习>使用过滤器>>进行文件搜索(FileFilter、FilenameFilter接口)
我们可以用过滤器来实现: 在File类中有两个和ListFiles重载的方法,方法的参数传递的就是过滤器 File[] File.listFiles(FileFilter filter) java.io.FileFilter接口:用于抽象路径名(File对象)的过滤器。 作用:用来过滤文件(File对象) 抽象方法:用来过滤文件的...原创 2019-08-11 18:21:39 · 579 阅读 · 0 评论 -
Java练习>递归>>文件搜索(以.java格式的文件进行搜索输出)
案例:package DiGui;import java.io.File;/* 遍历G:\Demo02文件夹,及Demo02的子文件夹 搜索以.java结尾的文件,并打印输出 需求: G:\Demo02 G:\Demo02\.idea G:\Demo02\.idea\misc.xml G:\De...原创 2019-08-11 15:41:03 · 246 阅读 · 0 评论 -
Java练习>等待唤醒机制实现>>吃货吃包子案例
案例:定义包子类:package XianCheng.ChiHuo;/* 资源类:包子类 设置包子的属性 皮 陷 包子的状态:有 true,没有 false */public class BaoZi { //皮 String pi; //陷 String xian; //包子的...原创 2019-08-09 15:24:01 · 473 阅读 · 0 评论 -
Java练习>转换流>>将GBK编码的文本文件,转换为UTF-8编码的文本文件
练习:转换文件编码。题目: 将GBK编码的文本文件,转换为UTF-8编码的文本文件。分析:1.创建InputStreamReader对象,构造方法中传递字节输入流和指定的编码表名称GBK。2.创建OutputTreamWrite对象,构造方法中传递字节输出流和指定的编码表名称UTF-8。 3.使用InputStreamReader对象中的方法read读取文件。 4.使用OutputTreamWrite对象中的方法write,把读取的数据写入到文件中。5.释放资源。案例如下:原创 2019-08-13 16:58:13 · 4753 阅读 · 0 评论 -
Java练习>常用API>>自定义四个学生对象,添加到集合,并遍历
题目:自定义四个学生对象,添加到集合,并遍历思路:自定义Student学生类,四部分(所有的成员变量都要用private、无参构造、全参构造、Getter/Settert)。 创建一个集合,用来储存学生对象。泛型:<Student> 根据类,创建4个学生对象。 遍历集合:for、size、get创建Student学生类:package ArrayList;pu...原创 2019-07-22 11:21:05 · 2206 阅读 · 0 评论 -
Java练习>常用API>>java从键盘输入两个数,并进行求和运算
package JianPanShuRu;import java.util.Scanner;/*题目:键盘输入两个int整数,并进行求值运算思路:1. 尽然需要键盘输入,那就用Scanner2. Scanner的三个步骤:导包、创建、使用3. 需要的是两个数字,所以要调用两次nextInt方法4. 得到了两个数字,然后进行相加运算5. 将结果打印输出 */publi...原创 2019-07-19 16:40:24 · 4033 阅读 · 0 评论 -
Java练习>常用API>>java键盘输入三个数,求最大值
package JianPanShuRu;import java.util.Scanner;/*题目:键盘输入三个int数字,求其中的最大值思路:1. 尽然是键盘输入,肯定需要用到Scanner2. Scanner三个步骤:导包、创建、使用nextInt()方法3. 尽然是三个数字,那么要调用三个Scanner()方法,得到三个int变量4. 无法同时判断三个数谁最大,应该...原创 2019-07-19 17:01:34 · 2581 阅读 · 2 评论 -
Java练习>常用API>>生成1到n之间的随机数
题目要求:根据int变量n值,来获取随机数字,范围是[1,n],可以取到1也可以取到n思路:定义一个int变量n,随意赋值 要是用Random:三个步骤:导包、创建、使用 如果写到10,那么就是0~9,然而想要的是1~10,可以发现,整体+1即可 打印随机数字实例代码如下:package SuijJi;import java.util.Random;public cl...原创 2019-07-20 16:20:43 · 1006 阅读 · 0 评论 -
Java练习>常用API>>猜数字小游戏
题目:猜数字游戏实例如下:package SuijJi;import java.sql.SQLOutput;import java.util.Random;import java.util.Scanner;/*题目:用代码模拟猜数字游戏思路:1. 首先需要产生一个随机数字,并且一旦产生不再变化。用Random的nextInt方法2. 需要键盘输入,所以用到了Scan...原创 2019-07-20 17:37:55 · 2091 阅读 · 0 评论 -
Java练习>常用API>>生成6个1-33之间的随机整数,并添加到集合,并遍历集合
题目: 生成6个1-33之间的随机整数,并添加到集合,并遍历集合思路:1. 需要存储6个数字,创建一个集合 <Integer>2. 产生一个随机数,需要用到Random3. 用循环6次,来产生6个随机数字:for循环4. 循环内调用 r.nextInt(int n),参数是33,整体+1才是1-335. 把数字添加到集合中:add6. 遍历集合:for、size、get...原创 2019-07-22 10:37:15 · 1886 阅读 · 0 评论 -
Java练习>继承>>群主发红包案例(分析与实现)
题目:群主发普通红包,某群有多名成员,群主给成员发普通红包,普通红包的规则:群主的一笔金额,从群主余额中扣除,平均分成n等份,让成员领取; 成员领取红包后,保存到成员余额中。请根据描述,完成案例中所有类的定义以及指定类之间的继承关系,并完成发红包的操作。案例分析:实例如下:创建用户类User:package ChouXiang;//用户类public cla...原创 2019-07-25 16:15:54 · 1720 阅读 · 0 评论 -
Java练习>多态>>笔记本USB接口案例_分析与实现
案例分析:进行描述笔记本类,实现笔记本使用USB鼠标、USB键盘USB接口,包含打开设备功能,关闭设备功能 笔记本类,包含开机功能、关机功能、使用USB设备功能 鼠标类,要实现USB接口,并具备点击的方法 键盘类,要实现USB接口,具备敲击的方法重点在:接口的基本使用、对象的上下转型以及使用接口作为方法的参数 。案例实现: 定义USB接口:package DuoTai...原创 2019-07-30 15:28:52 · 1284 阅读 · 0 评论 -
Java练习>ArrayList集合>>斗地主案例(无序排序版本)
案例介绍: 按照斗地主的规则,完成洗牌发牌的动作。具体规则: 使用54张牌打乱顺序,三个玩家参与游戏,三者交替摸牌,每人1张牌,最后三张作留底牌案例分析:1. 准备洗牌牌可以设计为一个ArrayList<String>,每个字符串为一张牌。 每张牌由花色数字两部分组成,我们可以使用花色集合与数字集合嵌套迭代完成每张牌的组装。 牌由Co...原创 2019-08-02 18:31:12 · 705 阅读 · 0 评论 -
Java练习>常用API>>定义指定格式打印集合的方法(ArrayList类型作为参数)
题目:定义指定格式打印集合的方法(ArrayList类型作为参数),使用{}扩起集合,使用@分隔每个元素。格式参照{元素@元素@元素}实例代码:package ArrayList;import java.util.ArrayList;/*题目:定义指定格式打印集合的方法(ArrayList类型作为参数),使用{}扩起集合,使用@分隔每个元素。格式参照{元素@元素@元素}...原创 2019-07-22 12:04:13 · 2540 阅读 · 0 评论 -
Java练习>常用API>>筛选集合(用一个大集合存入20个随机数字,然后筛选其中的偶素元素,放到小集合当中)
题目:用一个大集合存入20个随机数字,然后筛选其中的偶素元素,放到小集合当中(要求使用自定义的方法来实现筛选)。分析:1. 需要创建一个大集合,用来储存int数字:<Integer>2. 随机数字就是用Random nextInt3. 循环20次,把随机数字放入大集合:for循环、add方法4. 定义一个方法,来进行筛选筛选:根据大集合,筛选符合要求的元素,...原创 2019-07-22 14:20:19 · 2815 阅读 · 0 评论 -
Java练习>Set集合>>可变参数_计算(0-n)整数和的方法
可变参数:是JDK1.5之后出现的新特性;使用前提:当方法的参数列表数据类型已经确定,但是参数的个数不确定,就可以使用可变参数。使用格式:定义方法时使用修饰符 返回值类型 方法名(数据类型...变量名){ };可变参数的原理:可变参数底层就是一个数组,根据传递参数个数不同,会创建不同长度的数组,来存储这些参数 可传递参数的个数,可以是0个(不传递),1,2,3...多个...原创 2019-08-04 17:31:08 · 628 阅读 · 0 评论 -
Java练习>卖票案例>>解决线性安全问题的方法(使用同步代码块、同步方法、Lock锁)
卖票案例出现了线性安全问题:卖出了不存在的票和重复的票。解决线性安全的第一种方案:使用同步代码块。格式: synchronized(锁对象){ 可能出现线性安全问题的代码(访问了共享数据的代码) }注意:同步代码块中的锁对象,可以使用任意的对象 但是必须保证多个线程使用的锁对象是同一个 锁对象作用 把同步代码块锁住,只让一...原创 2019-08-08 19:12:36 · 537 阅读 · 0 评论 -
Java练习>Map集合>>斗地主综合案例(有序排序版本)
案例:定义一个类:package JiHe.MapJiHe;import java.util.ArrayList;import java.util.Collections;import java.util.HashMap;import java.util.List;/* 斗地主综合案例:有序版本。 实现步骤: 1. 准备牌。 ...原创 2019-08-06 12:24:03 · 1111 阅读 · 3 评论 -
Java练习>Map集合>>计算一个字符串中每个字符出现次数
题目:计算一个字符串中每个字符出现次数。分析:1. 使用Scanner获取用户输入的字符串。2. 创建一个Map集合,key是字符串中的字符,value是字符的个数。3. 遍历字符串得到的每个字符。4. 使用获取到的字符,去Map集合判断key是否存在; key存在: 通过字符(key),获取value(字符个数) value++...原创 2019-08-06 10:19:25 · 238 阅读 · 0 评论 -
Java练习>System类>>将src数组[1,2,3,4,5]前3个元素,复制到dest数组[6,7,8,9,10]的前3个位置上
实例:package APITwo.System;import java.util.Arrays;/*题目:将src数组[1,2,3,4,5]前3个元素,复制到dest数组[6,7,8,9,10]的前3个位置上复制元素前 src数组[1,2,3,4,5] dest数组[6,7,8,9,10]复制元素后 src数组[1,2,3,4,5] dest数组[1,2...原创 2019-08-01 16:45:03 · 743 阅读 · 1 评论