// type short int long
// float double
// char
// boolean
// TODO 包装类
// Byte b = null;
// Short s = null;
// Integer i = null;
// Long lon = null;
// Float f = null;
// Double d = null;
// Character c = null;
// Boolean bln = null;
int i = 10;
//Integer i1 = new Integer(i);
// TODO 将基本数据类型转换成包装类型
// 自动装箱
//Integer i1 = Integer.valueOf(i);
Integer i1 = i;
// 自动拆箱
//int i2 = i1.intValue();
int i2 = i1;
// Date : 日期类
// 时间戳 : 毫秒
//System.out.println(System.currentTimeMillis());
// Date : 日期类
// Calendar : 日历类
Date d = new Date();
System.out.println(d);
// Java 格式化日期格式:
// y (Y) -> 年 -> yyyy
// m (M) -> MM: 月份 mm:分钟
// d (D) -> dd:一个月中的日期 D:一年中的日期
// h (H) -> h:12进制 HH:24进制
// s (S) -> s:秒 S:毫秒
// Date -> String
//SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSSS");
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String dateFormatString = sdf.format(d);
System.out.println(dateFormatString);
// String -> Date
String dateString = "2022-06-01";
Date parseDate = sdf.parse(dateString);
System.out.println(parseDate);
// 根据时间戳构建指定的日期对象
//d.setTime(System.currentTimeMillis());
// 获取时间戳
//d.getTime();
System.out.println(parseDate.before(d));
System.out.println(parseDate.after(d));
// 日历类
Calendar instance = Calendar.getInstance();
System.out.println(instance);
System.out.println(instance.get(Calendar.YEAR));
System.out.println(instance.get(Calendar.MONTH));
System.out.println(instance.get(Calendar.DATE));
System.out.println(instance.get(Calendar.DAY_OF_MONTH));
instance.setTime(new Date());
instance.add(Calendar.YEAR,1);
// 打印当前日历
System.out.println("周一\t周二\t周三\t周四\t周五\t周六\t周日");
// 获取当前日期的日历对象
Calendar firstDate = Calendar.getInstance();
// 把日历对象设定为当前月的第一天 01-01
firstDate.set(Calendar.DAY_OF_MONTH,1);
// 获取当前月最大的日期 01-31
int maxDay = firstDate.getMaximum(Calendar.DAY_OF_MONTH);
for( int i = 0; i < maxDay; i++ ) {
// 当前日期是周几
int weekX = firstDate.get(Calendar.DAY_OF_WEEK);
// 当前日期是几号
int mothY = firstDate.get(Calendar.DAY_OF_MONTH);
if( i == 0) {
if( weekX == Calendar.SUNDAY) {
for( int j = 0; j < 6; j++) {
System.out.print("\t");
}
System.out.println(mothY);
} else {
for( int j = 0; j < weekX - 2; j++) {
System.out.print("\t");
}
System.out.print(mothY);
}
} else {
// 不是一号的场合
if( weekX == Calendar.SUNDAY) {
System.out.println(mothY);
} else {
System.out.print(mothY);
System.out.print("\t");
}
}
// 打印日历后,应该增加一天
firstDate.add(Calendar.DATE,1);
}
System.out.println(StringUtil.isEmpty("adawdsa"));
System.out.println(StringUtil.isEmpty(null));
System.out.println(StringUtil.isEmpty(""));
System.out.println(StringUtil.isEmpty(" "));
System.out.println(StringUtil.makeString());
System.out.println(StringUtil.makeString("abcdef123456",6));
System.out.println(StringUtil.parseDate("2023-1-19", "yyyy-MM-dd"));
System.out.println(StringUtil.fotmatDate(new Date(), "yyyy-MM-dd"));
}
}
// 字符串工具类
// 1. 工具类不应该创建对象才能使用,也就意味着,可以直接使用类中的属性和方法,一般都声明为静态的。
// 2. 工具类对外提供的属性和方法都应该是公共的。
// 3. 为了使用者开发方便,应该尽量提供丰富的方法和属性。
class StringUtil {
// 非空判断
public static boolean isEmpty(String str) {
// 如果字符串为null,为空
// if (str == null ) {
// return true;
// }
// // 如果字符串为空字符串,为空
// if ("".equals(str)) {
// return true;
// }
// // 如果字符串全为空格,为空
// if ("".equals(str.trim())) {
// return true;
// }
if (str == null ||"".equals(str.trim()) ) {
return true;
}
return false;
}
public static boolean isNotEmpty(String str) {
return !isEmpty(str);
}
// 生成随机字符串
public static String makeString() {
return UUID.randomUUID().toString();
}
public static String makeString( String from,int len ) {
if ( len < 1 ) {
return "";
} else {
char[] chars = from.toCharArray();
StringBuilder str = new StringBuilder();
for ( int i = 0; i < len; i++) {
Random random = new Random();
int j = random.nextInt(chars.length);
char c = chars[j];
str.append(c);
}
return str.toString();
}
}
// 转换字符串 : ISO8859-1 => str => UTF-8
public static String transform( String source , String encodeFrom , String encodeTo) throws Exception {
byte[] bytes = source.getBytes(encodeFrom);
return new String(bytes,encodeTo);
}
public static Date parseDate( String dateString ,String format) throws Exception {
SimpleDateFormat sdf = new SimpleDateFormat(format);
return sdf.parse(dateString);
}
public static String fotmatDate( Date date ,String format) throws Exception {
SimpleDateFormat sdf = new SimpleDateFormat(format);
return sdf.format(date);
// 等于
// 基本数据类型,双等号比较数值
int i = 10;
int j = 10;
System.out.println(i == j);
double d = 10.0;
System.out.println(i == d);
// 引用数据类型,双等号比较变量的内存地址
String s = "abc"; // 字符串常量值
String s1 = "abc";
String s2 = new String("abc");
System.out.println(s == s1);
System.out.println(s == s2);
System.out.println(s.equals(s2));
User9 user1 = new User9();
User9 user2 = new User9();
System.out.println(user1 == user2);
System.out.println(user1.equals(user2));
// 包装类型
// int => Integer => JVM为了操作方便,简化了很多操作
// Integer缓存: -128 ~ 127
Integer i1 = 128;
Integer i2 = 128;
System.out.println(i1 == i2);
System.out.println(i1.equals(i2));
}
}
class User9 {
@Override
public int hashCode() {
return 1;
}
@Override
public boolean equals(Object obj) {
return true;
}
}