一直在更新

  • 案例汇总
    • 运动员和教练
    • 猫1
    • 猫2
    • 猫3
    • 冒泡排序
    • 案例:字符串中数据排列
    • 日期工具类
    • Calendar类
    • 二月天
    • 自定义异常
    • 遍历ArrayList
    • 遍历Map
    • 判断是否为数字
    • 自然排序Comparable
    • 成绩排序
    • 不重复的随机数
    • 字符流
    • 创建目录
    • 读取目录
    • 删除目录

案例汇总

运动员和教练

多态,接口,抽象类


public class Test{public interface Speaking {public abstract void speak();}public abstract class Person {private String name;private int age;public Person() {}public Person(String name, int age) {this.name = name;this.age = age;}public void setName(String name) {this.name = name;}public void setAge(int age) {this.age = age;}public String getName() {return name;}public int getAge() {return age;}public abstract void eat();public void show() {System.out.println(this.getName() + ", " + this.getAge());}}public abstract class Coach extends Person {public Coach() {}public Coach(String name, int age) {super(name, age);}public void teach() {System.out.println("教学");}}public abstract class Player extends Person {public Player() {}public Player(String name, int age) {super(name, age);}public abstract void study();}public class BasketBallCoach extends Coach {public BasketBallCoach() {}public BasketBallCoach(String name, int age) {super(name, age);}public void teach() {System.out.println("教打篮球技巧");}public void eat() {System.out.println("吃大鱼大肉");}}public class TableTennisCoach extends Coach implements Speaking{public TableTennisCoach() {}public TableTennisCoach(String name, int age) {super(name, age);}public void teach() {System.out.println("教学乒乓球技巧");}public void eat() {System.out.println("吃山珍海味");}public void speak() {System.out.println("说流利的英语");}}public class BasketBallPlayer extends Player {public BasketBallPlayer() {}public BasketBallPlayer(String name, int age) {super(name, age);}public void eat() {System.out.println("吃大鱼大肉");}public void study() {System.out.println("学习篮球技术");}}public class TableTennisPlayer extends Player implements Speaking{public TableTennisPlayer() {}public TableTennisPlayer(String name, int age) {super(name, age);}public void eat() {System.out.println("吃山珍海味");}public void study() {System.out.println("学习乒乓球技巧");}public void speak() {System.out.println("说流利的英语");}}public static void main(String[] args) {Test t = new Test();System.out.println("----------------------------------");Coach bbc = t.new BasketBallCoach("姚明", 23);bbc.show();bbc.eat();bbc.teach();System.out.println("----------------------------------");TableTennisCoach ttc = t.new TableTennisCoach("刘国梁", 25);ttc.show();ttc.eat();ttc.teach();ttc.speak();System.out.println("----------------------------------");Player bbp = t.new BasketBallPlayer("天正", 19);bbp.show();bbp.eat();bbp.study();System.out.println("----------------------------------");TableTennisPlayer ttp = t.new TableTennisPlayer("马龙", 25);ttp.show();ttp.eat();ttp.study();ttp.speak();}}

猫1

类名作为方法的形参
类名作为方法的返回值


public class Test{public class Cat {public void eat() {System.out.println("猫吃鱼");}}/**    类作为形参,类作为返回值*    实际传递的是对象的地址值*/public class CatOperator {public void useCat(Cat c) { //等价于 Cat c = new Cat();c.eat();}public Cat getCat() {Cat c = new Cat();return c;}}public static void main(String[] args) {Test t = new Test();CatOperator co = t.new CatOperator();Cat c = t.new Cat();co.useCat(c);co.getCat().eat();;}
}

猫2

抽象类名作为形参和返回值


public class Test{/**   抽象类名作为形参和返回值*/public abstract class Animal {public abstract void eat();}public class Cat extends Animal {public void eat() {System.out.println("猫吃鱼");}}public class AnimalOperator {public void useAnimal(Animal a) {a.eat();}public Animal getAnimal() {//编译看左边,执行看右边Animal a = new Cat();return a;}}public static void main(String[] args) {AnimalOperator ao = new Test().new AnimalOperator();Animal a= new Test().new Cat();ao.useAnimal(a);ao.getAnimal().eat();}
}

猫3

接口作为形参和返回值


public class Test{/**   接口名作为形参和返回值*/public interface Jumpping {void jump();}public class Cat implements Jumpping {public void jump() {System.out.println("猫可以跳高了");}}public class JumppingOperator {public void useJumpping(Jumpping j) {j.jump();}public Jumpping getJumpping() {Jumpping j = new Cat();return j;}}public static void main(String[] args) {JumppingOperator jo = new Test().new JumppingOperator();jo.useJumpping(jo.getJumpping());jo.getJumpping().jump();}
}

冒泡排序

冒泡排序


public class Test{/**   案例:冒泡排序*/public static String arrayToString(int[] array) {StringBuilder sb = new StringBuilder();sb.append("[");for (int i = 0; i < array.length; i++) {if (i == array.length - 1) {sb.append(array[i]);} else {sb.append(array[i]).append(",");}}sb.append("]");return sb.toString();}public static void main(String[] args) {int array[] = {3, 1, 12, 44, 23, 10, 0};//冒泡排序for (int i = 0; i < array.length; i++) {for (int j = 0; j < array.length - i - 1; j++) {if (array[j] > array[j+1]) {int temp = array[j];array[j] = array[j+1];array[j+1] = temp;}}}System.out.println("排序后:" + arrayToString(array));}
}

案例:字符串中数据排列

类型转换

import java.util.Arrays;public class Test{/** 案例:字符串中数据排列*/public static void main(String[] args) {String s = "91 27 46 38 50";String[] array = s.split(" ");int[] arr = new int[array.length];for (int i = 0; i < array.length; i++) {arr[i] = Integer.parseInt(array[i]);}Arrays.sort(arr);StringBuilder sb = new StringBuilder();sb.append("[");for (int i = 0; i < arr.length; i++) {if (i == arr.length - 1) {sb.append(arr[i]);} else {sb.append(arr[i]).append(" ");}}sb.append("]");System.out.println(sb.toString());}
}

日期工具类

Date类,SimpleDateFormat类

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;/** 案例:日期工具类* 工具类:构造方法私有,成员方法静态*/public class DateUtils {private DateUtils() {}public static String dateToString(Date date, String format) {SimpleDateFormat sdf = new SimpleDateFormat(format);String s = sdf.format(date);return s;}public static Date stringToDate(String s, String format) throws ParseException {SimpleDateFormat sdf = new SimpleDateFormat(format);Date date = sdf.parse(s);return date;}}
import java.util.Date;
import java.text.ParseException;public class Test{public static void main(String[] args) throws ParseException {Date date = new Date();String s1 = DateUtils.dateToString(date, "yyyy-MM-dd HH:mm:ss");System.out.println(s1);String ss = "2021-09-11 09:30:22"; Date dd = DateUtils.stringToDate(ss, "yyyy-MM-dd HH:mm:ss");System.out.println(dd);}
}

Calendar类

日历类

import java.util.Calendar;public class Test{/** 日历类*/public static void main(String[] args) {//需求1:3年前的今天Calendar c = Calendar.getInstance();c.add(Calendar.YEAR, -3);int year = c.get(Calendar.YEAR);int month = c.get(Calendar.MONTH) + 1;int day = c.get(Calendar.DATE);System.out.println("日期为:" + year + "-" + month + "-" + day);//需求2:10年后的5天前c.add(Calendar.YEAR, 10);c.add(Calendar.DATE, -5);int y = c.get(Calendar.YEAR);int m = c.get(Calendar.MONTH) + 1;int d = c.get(Calendar.DATE);System.out.println("日期为:" + y + "-" + m + "-" + d);//设置当前日历的年月日c.set(2001, 11, 1);int year1 = c.get(Calendar.YEAR);int month1 = c.get(Calendar.MONTH) + 1;  //Month 值是基于 0 的。例如,0 表示 January。int day1 = c.get(Calendar.DATE);System.out.println("日期为:" + year1 + "-" + month1 + "-" + day1);}}

二月天

Calendar类

import java.util.Calendar;
import java.util.Scanner;public class Test{/** 案例:二月天*/public static void main(String[] args) {Scanner sc = new Scanner(System.in);int year = sc.nextInt();Calendar c = Calendar.getInstance();c.set(year, 2, 1); //Month 值是基于 0 的。例如,0 表示 January。c.add(Calendar.DATE, -1);int day = c.get(Calendar.DATE);System.out.println(year + "年" + "二月有" + day + "天");sc.close();}}

自定义异常

异常类使用

import java.util.Scanner;public class Test{/** 案例:自定义异常类*/public class ScoreException extends Exception{/*** */private static final long serialVersionUID = 1L;public ScoreException() {}public ScoreException(String message) {super(message);}}public class Teacher{public Teacher() {}public void checkScore(int score) throws ScoreException {if (score < 0 || score > 100) {throw new ScoreException("分数有误!!!");
//              System.out.println("分数有误!!!");} else {return;}}}public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.print("请输入分数:");int score = sc.nextInt();sc.close();Teacher t = new Test().new Teacher();try{t.checkScore(score);} catch(ScoreException e) {e.printStackTrace();}}
}

遍历ArrayList

集合

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;public class Test{/**  案例:遍历ArrayList*/public static void main(String[] args) {//方法一:For-Each遍历List<String> list = new ArrayList<>();list.add("hello");list.add("java");list.add("world");for (String s : list) {System.out.println(s);}System.out.println("---------------");//方法二:把链表变为数组进行遍历String[] array = new String[list.size()];list.toArray(array);for (int i = 0; i < array.length; i++) {System.out.println(array[i]);}System.out.println("---------------");//方法三:使用迭代器进行遍历,该方法可以不用担心在遍历的过程中会超出集合的长度。Iterator<String> i = list.iterator();while(i.hasNext()) {System.out.println(i.next());}System.out.println("---------------");//方法四:for (int x = 0; x < list.size(); x++){System.out.println(list.get(x));}}
}

遍历Map

集合类

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;public class Test{/**   案例:遍历Map*/public static void main(String[] args) {//方法一:通过Map.keySet遍历key和valueMap<Integer, String> map = new HashMap<Integer, String>(); map.put(1, "张三");map.put(2, "李四");map.put(3, "王五");for (Integer i : map.keySet()) {System.out.println(i + "," + map.get(i));}System.out.println("---------------");//方法二:通过Map.entrySet使用iterator遍历key和value:Iterator<Map.Entry<Integer, String>> i = map.entrySet().iterator();while (i.hasNext()) {Map.Entry<Integer, String> entry = i.next();System.out.println(entry.getKey() + "," + entry.getValue());}System.out.println("---------------");//方法三:推荐,尤其是容量大时,通过Map.entrySet遍历key和valuefor (Map.Entry<Integer, String> entry : map.entrySet()) {System.out.println(entry.getKey() + "," + entry.getValue());}System.out.println("---------------");//方法四:通过Map.values()遍历所有的value,但不能遍历keyfor (String v : map.values()) {System.out.println(v);}}
}

判断是否为数字

练习

import java.util.regex.Pattern;public class Test{/**  案例:判断是否为数字*///方法一:用Java自带方法(非负数并且是整数)public static  boolean isNumeric(String string) {for (int i = 0; i < string.length(); i++) {if (!Character.isDigit(string.charAt(i))) {return false;}}return true;}//方法二:推荐,速度最快  (只能是整数)public static boolean isInteger(String string) {Pattern pattern = Pattern.compile("^[-\\ ]?[\\d]*$");return pattern.matcher(string).matches();}//方法三:用ascii码  (只能是正整数)public static boolean isNumeric1(String str){for(int i=str.length();--i>=0;){int chr=str.charAt(i);if(chr<48 || chr>57)return false;}return true;}public static void main(String[] args) {String string = "-10000";boolean flag1 = isNumeric(string);boolean flag2 = isInteger(string);boolean flag3 = isNumeric1(string);System.out.println("数字" + flag1);System.out.println("数字" + flag2);System.out.println("数字" + flag3);}
}

自然排序Comparable

TreeSet


public class Student implements Comparable<Student>{private String name;private int id;private int age;public Student() {}public Student(String name, int age) {this.name = name; this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getId() {return id;}public void setId(int id) {this.id = id;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic int compareTo(Student s) {//按照年龄从小到大排序int num = this.age - s.age;//年龄相同时,按照姓名的字母顺序排序int num2 = num == 0 ? this.name.compareTo(s.name) : num;//(重复元素)return num2;}}
import java.util.TreeSet;public class Test{public static void main(String[] args) {TreeSet<Student> ts = new TreeSet<Student>();Student s1=new Student("xishi",29);Student s2=new Student("wangzhaojun",28);Student s3=new Student("diaochan",30);Student s4=new Student("yangyuhuan",33);Student s5=new Student("linqingxia",33);Student s6=new Student("linqingxia",33);ts.add(s1);ts.add(s2);ts.add(s3);ts.add(s4);ts.add(s5);ts.add(s6);for (Student s : ts) {System.out.println(s.getName() + "," + s.getAge());}}
}

成绩排序

TreeSet

import java.util.Comparator;
import java.util.TreeSet;public class Test{/** 案例:成绩排序* */public static void main(String[] args) {TreeSet<Student> ts = new TreeSet<Student>(new Comparator<Student>() {public int compare(Student s1, Student s2) {//int num=(s2.getChinese()+s2.getMath())-(s1.getChinese()+s1.getMath());//主要条件int num = s2.getSum() - s1.getSum();//次要条件int num2 = num == 0 ? s1.getChinese() - s2.getChinese() : num;int num3 = num == 0 ? s1.getName().compareTo(s2.getName()) : num2;return num3;}});Student s1=new Student("xishi",98,100);Student s2=new Student("wangzhaojun",95,95);Student s3=new Student("diaochan",100,93);Student s4=new Student("yangyuhuan",100,97);//     Student s5=new Student("linqingxia",98,98);Student s5=new Student("linqingxia",98,98);Student s6=new Student("zhaoyun",97,99);ts.add(s1);ts.add(s2);ts.add(s3);ts.add(s4);ts.add(s5);ts.add(s6);for (Student s : ts) {System.out.println(s.getName() + "," + s.getChinese() + "," + s.getMath() + "," +s.getSum());}}
}

public class Student{private String name;private int age;private int chinese;private int math;public Student() {}public Student(String name, int age) {this.name = name; this.age = age;}public Student(String name, int chinese, int math) {this.chinese = chinese;this.math = math;this.name = name;}public int getChinese() {return chinese;}public void setChinese(int chinese) {this.chinese = chinese;}public int getMath() {return math;}public void setMath(int math) {this.math = math;}public int getSum() {return this.chinese + this.math;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}}

不重复的随机数

TreeSet

import java.util.Random;
import java.util.Set;
import java.util.TreeSet;public class Test{/** 案例:不重复的随机数* */public static void main(String[] args) {Set<Integer> set = new TreeSet<Integer>();Random r = new Random();int x = 0;while (set.size() < 10) {x = r.nextInt(20) + 1;set.add(x);}for (Integer i : set) {System.out.println(i);}}
}

字符流

FileOutputStream、OutputStream、OutputStreamReader、OutputStreamWriter

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;public class Test{public static void main(String[] args) throws IOException {File f = new File("a.txt");FileOutputStream fos = new FileOutputStream(f);// 构建FileOutputStream对象,文件不存在会自动新建OutputStreamWriter osw = new OutputStreamWriter(fos, "UTF-8");// 构建OutputStreamWriter对象,参数可以指定编码,默认为操作系统默认编码,windows上是gbkosw.append("中文输入");// 写入到缓冲区osw.append("\r\n");// 换行osw.append("English");// 刷新缓存冲,写入到文件,如果下面已经没有写入的内容了,直接close也会写入osw.close();// 关闭写入流,同时会把缓冲区内容写入文件,所以上面的注释掉fos.close();// 关闭输出流,释放系统资源FileInputStream fis = new FileInputStream(f);// 构建FileInputStream对象InputStreamReader osr = new InputStreamReader(fis, "UTF-8");// 构建InputStreamReader对象,编码与写入相同StringBuffer sb = new StringBuffer();while (osr.ready()) {sb.append((char) osr.read());// 转成char加到StringBuffer对象中}System.out.println(sb.toString());osr.close();// 关闭读取流fis.close();// 关闭输入流,释放系统资源}
}

创建目录

mkdir()、mkdirs()

import java.io.File;public class Test{/** 创建目录  mkdir()、mkdirs()*/public static void main(String[] args){String dirname = "/tmp/user/java/bin";File d = new File(dirname);// 现在创建目录d.mkdirs();}
}

读取目录

isDirectory()、list()

import java.io.File;public class Test{/** 案例:读取目录  isDirectory()、list()*/public static void main(String[] args){String dirname = "/class 3";File f1 = new File(dirname);if (f1.isDirectory()) {System.out.println("目录 " + dirname);String s[] = f1.list();for (int i = 0; i < s.length; i++) {File f = new File(dirname + "/" + s[i]);if (f.isDirectory()) {System.out.println(s[i] + " 是一个目录");} else {System.out.println(s[i] + " 是一个文件");}}} else {System.out.println(dirname + " 不是一个目录");}}
}

删除目录

delete()、listFiles()

import java.io.File;public class Test{/** 案例:删除目录  delete()、listFiles()必须保证该目录下没有其他文件才能正确删除,否则将删除失败。*/public static void main(String[] args){// 这里修改为自己的测试目录File folder = new File("/tmp/java/");deleteFolder(folder);}// 删除文件及目录public static void deleteFolder(File folder) {File[] files = folder.listFiles();if (files != null) {for (File f : files) {if (f.isDirectory()) {deleteFolder(f);} else {f.delete();}}}folder.delete();}
}

Java 案例大全(详细)二相关推荐

  1. Java知识大全 - 十二、Java和大数据

    Java 是大数据处理中使用最广泛的编程语言之一,因为它的性能.可扩展性和易用性.Java有几个库和框架为大数据处理提供支持,包括Apache Hadoop,Apache Spark,Apache S ...

  2. Python语言学习之lambda:lambda函数的简介、使用方法、案例大全之详细攻略

    Python语言学习之lambda:lambda函数的简介.使用方法.案例大全之详细攻略 目录 lambda函数的简介 1.lambda匿名函数的格式 2.lambda函数特点 3.lambda函数与 ...

  3. Python语言学习之pandas:DataFrame二维表的简介、常用函数、常用案例之详细攻略

    Python语言学习之pandas:DataFrame二维表的简介.常用函数.常用案例之详细攻略 目录 DataFrame的简介 DataFrame的常用案例 1.写入和读取excel表格文件

  4. ML之FE:金融风控—基于预处理(PSI+标签编码+文本型抽数字+缺失值RF模型拟合填充)+多种筛选指标(PCA/IV值/Gini/熵/丰富度)利用CatBoost实现贷款违约二分类预测案例之详细攻略

    ML之FE:金融风控-基于预处理(PSI+标签编码+文本型抽数字+缺失值RF模型拟合填充)+多种筛选指标(PCA/IV值/Gini/熵/丰富度)利用CatBoost实现贷款违约二分类预测案例之详细攻略 ...

  5. java数组精讲-多案例-够详细

    1 数组概述 需求:现在需要统计某公司员工的工资情况,例如计算平均工资.找到最高工资等.假设该公司有80名员工,用前面所学的知识,程序首先需要声明80个变量来分别记住每位员工的工资,然后在进行操作,这 ...

  6. Java资源大全中文版

    Java资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列的资源整理.awesome-java 就是 akullpp 发起维护的 Java 资源列表,内容 ...

  7. Java基础知识(二)(Object类的常用方法、日期时间类、System类、StringBuilder类、包装类、Collection集合、Iterator迭代器、泛型、list集Set接口...)

    文章目录 Java基础知识(二) 1.Object类的常用方法 1.1 toString方法 1.2 equals方法 1.3 Objects类 2.日期时间类 2.1 Date类 2.2 DateF ...

  8. Java经典面试(二)

    Java经典面试(二) 1.volatile是什么 2.JMM JMM可见性 3.volatile不保证原子性 volatile不保证原子性理论解释 解决volatile不保证原子性问题 4.vola ...

  9. 2017最新java学习大全

    一.Java学习路线图 二.Java学习路线图--视频篇 六大阶段 学完后目标 知识点 配套免费资源(视频+笔 记+源码+模板) 密码        第一阶段 Java基础 入门 学习周期: 35天 ...

  10. Java基础巩固(二)异常,多线程,线程池,IO流,Properties集合,IO工具类,字符流,对象流,Stream,Lambda表达式

    一.异常,多线程 学习目标 : 异常的概述 异常的分类 异常的处理方式 自定义异常 多线程入门 1 异常的概述 1.1 什么是异常? 异常就是程序出现了不正常情况 , 程序在执行过程中 , 数据导致程 ...

最新文章

  1. java检测按键_java – 在控制台中检测按键
  2. 申请阿里云服务器并远程登录
  3. python中怎么比较两个列表-如何比较python中的两个列表并返回匹配
  4. ajax怎么整理,ajax使用整理
  5. SQL SERVER与C#中数据类型的对应关系
  6. boost的chrono模块运行时解析的测试程序
  7. 网速慢?不!可能是DNS出了问题! 公共DNS优选之 BAT 百度、腾讯、阿里、谷歌DNS哪个更快?
  8. Deepin 下 使用 Rider 开发 .NET Core
  9. linux 日记函数,每日记一些php函数,jQuery函数和linux命令(一)
  10. Google大佬手把手教你从数据中挖掘价值:好产品是怎样炼成的
  11. 图解WebGLThree.js工作原理
  12. python——字典攻击
  13. 图像识别与人工智能的联系
  14. cmd命令查询电脑序列号_如何在Windows10中查找计算机序列号/主板型号
  15. C语言之如何判断闰年:
  16. 使用Audacity软件分析浊音、清音、爆破音的时域及频域特性。
  17. MATLAB永久常数
  18. 什么是UV测试?为什么要进行UV老化测试?UV老化测试的标准有哪些?
  19. CQF笔记M2L2优化理论及其在资产组合选择中的应用
  20. 基于springboot+redis+bootstrap+mysql开发一套属于自己的分布式springcloud云权限架构(七)【权限架构生产者(数据字典)】

热门文章

  1. DSP SRIO接口设计
  2. sql 语句循环方法的使用
  3. 微信小程序 地图map的坑
  4. kaptcha生成java验证码
  5. Ubuntu11设置VGA分辨率
  6. 赫/哈/霍 夫曼(Huffman)编码 游程编码
  7. mac电脑网游加速器哪个好用?网易uu网游加速器分享
  8. JRebel过期激活
  9. 开发板 集成下载器 jtag_迅为i.MX6ULL开发板原理图分析介绍
  10. Kotlin教程:Kotlin入门