Java核心知识点DAY03:全解析从基础到企业级开发实战
目录
一、日期类,日历类,日期格式化,Random,Math类的使用
1. 传统日期API(已过时,了解即可)
2. 格式化输出日期API
3. 随机数生成优化方案
二、集合框架深度对比
1. List集合性能对比
2. Set集合选型指南
三、设计原则与模式实战
1. SOLID原则简明版
2. 常用设计模式速查
3.this & super关键字的用法
四、多维数组与集合排序
1. 三维数组应用场景
2. 企业级排序方案
五、排序算法与企业实践(冒泡,选择,插入排序)
1. 基础算法对比
2. 企业级排序优化
六、企业开发黄金技巧
1. 日期处理规范
2. 集合使用最佳实践
3. 性能优化秘籍
一、日期类,日历类,日期格式化,Random,Math类的使用
1. 传统日期API(已过时,了解即可)
// 创建日期对象(已弃用构造函数)
Date date = new Date(2025-1900, 5-1, 17); // 注意年份需-1900,月份-1
2. 格式化输出日期API
LocalDateTime now = LocalDateTime.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
System.out.println(now.format(formatter)); // 2024-03-25 14:30:45
public class DateUtil {/*** 将字符串解析为日期* @param content* @param pattern* @return*/public static Date parse(String content,String pattern){SimpleDateFormat sdf = new SimpleDateFormat(pattern);try {return sdf.parse(content);} catch (ParseException e) {throw new RuntimeException(e);}}/*** 将日期格式化为字符串* @param date* @param pattern yyyy-MM-dd yyyy-MM-dd hh:mm:ss* @return*/public static String format(Date date,String pattern){SimpleDateFormat sdf = new SimpleDateFormat(pattern);return sdf.format(date);}
}
3. 随机数生成优化方案
// 线程安全随机数
ThreadLocalRandom random = ThreadLocalRandom.current();
int code = 1000 + random.nextInt(9000); // 生成4位验证码
4.Math类
public class MathStudy {public static void main(String[] args) {System.out.println(Math.abs(-2));//求绝对值System.out.println(Math.floor(3.4));//向下取整System.out.println(Math.round(3.46));//返回四舍五入后的整数System.out.println(Math.pow(4,3));//求4的3次方System.out.println(Math.sqrt(4));//求4的平方根System.out.println(Math.random());//返回(0-1)随机浮点数System.out.println((int)(Math.random() * 100));//返回0-100期间的随机整数}
}
5.Calendar类的学习和应用
public class CalendarStudy {public static void main(String[] args) {//日期类的缺陷:无法向后推测日期,无法实现国际化支持Date date = new Date();//日历类CalendarCalendar calendar = Calendar.getInstance();System.out.println(calendar.getTime());//获得当前的时间
// calendar.add(Calendar.DATE,1030);//推测:未来的时间,过去的时间System.out.println(calendar.getTime());System.out.println(calendar.get(Calendar.YEAR));//返回年System.out.println(calendar.get(Calendar.MONTH) + 1);//返回月份System.out.println(calendar.get(Calendar.DAY_OF_MONTH));//返回今天是月中第几天System.out.println(calendar.get(Calendar.DAY_OF_YEAR));//返回今天是年中第几天System.out.println(calendar.get(Calendar.WEEK_OF_MONTH));//返回本月中第几周System.out.println(calendar.get(Calendar.WEEK_OF_YEAR));//返回本年中第几周System.out.println(calendar.get(Calendar.HOUR));System.out.println(calendar.get(Calendar.MINUTE));System.out.println(calendar.get(Calendar.SECOND));System.out.println(calendar.get(Calendar.MILLISECOND));}
}