企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持知识库和私有化部署方案 广告
## 常用类学习 ### Object ~~~java /** * Java常用类-Object类 * @author 一教室 * */ public class ConstantClass { public String name; public int age; public ConstantClass() { super(); } public ConstantClass(String name, int age) { super(); this.name = name; this.age = age; } public static void main(String[] args) { ConstantClass s1 = new ConstantClass("a", 1); System.out.println(s1.toString()); System.out.println(s1.hashCode()); ConstantClass s2 = new ConstantClass("a", 1); System.out.println(s2.toString()); System.out.println(s2.hashCode()); System.out.println(s1.equals(s2));//根据内存地址判断是否相等 ConstantClass s3 = s1; //System.out.println(s3 == s2);不可以使用两个等于号,进行两个对象是否相等的判断的 System.out.println(s3.equals(s2)); } } ~~~ ### String ~~~java /** * java常用类,String类 * @author 一教室 * */ public class ConstantClass2 { public static void main(String[] args) { /** * 创建String对象的几种方式 */ String a = "abc";//abc存储在常量池中 a,常量池地址 String b = new String("abc");//abc还是在常量池中,但是String b所指向的对象存储堆内存中 b,堆内存地址,常量池地址 char[] ca = {'a','b','c'}; String c = new String(ca); System.out.println(a); System.out.println(b); System.out.println(c); System.out.println(a == b); //对于字符串是否相等采用equals方法,equals方法一般会比较两个对象内容是否相等 System.out.println(a.equals(b)); String str = "Hello,World!"; //根据索引获取字符串中对应的char值,最小值0,最大值length,1 System.out.println("charAt:" + str.charAt(11)); //endWith判断字符串是否以给定的字符串结尾,是返回true,否返回false String address = "d:/picture/01.jpg"; boolean flag = address.endsWith("jpg"); System.out.println("endsWith:" + flag); //startWith判断字符串是否以给定的字符串开头,是返回true,否返回false String url = "https://www.baidu.com"; boolean flag1 = url.startsWith("http:"); System.out.println("startWith:" + flag1); //indexOf(单个参数)判断字符串中子字符串第一次出现位置的索引,如果没有出现则返回-1,该方法常用来判断字符串中是否存在某个字符串 if(str.indexOf("He") > -1) { System.out.println("出现了"); } //indexOf(两个参数)判断指定的字符串第一次出现位置的索引,从第二个参数指定的索引位置开始 if(str.indexOf("He", 2) > -1) { System.out.println("*出现了*"); } //将字符串转变为char数组 char[] car = str.toCharArray(); System.out.println(car); //如何打印文件的后缀 String file = "d:/ja.va/demo.java"; //返回指定子字符串出现在父字符串中最右边的索引 int index = file.lastIndexOf("."); System.out.println(index); //subString返回从指定位置开始一直到末尾的新子字符串 String fileTypeName = file.substring(index + 1); System.out.println(fileTypeName); String str3 = "qqqqHHHHHuwaaa"; //替换字符串中指定的字符 String str4 = str3.replace('q', 'a'); System.out.println(str4); //替换字符串中指定的字符串 String str5 = str3.replaceAll("HHHH", "hhhh"); System.out.println(str5); //替换字符串中指定的首个字符串 String str6 = str3.replaceFirst("q", "Q"); System.out.println(str6); //通过特定字符来分割字符串,返回一个字符串数组 String s7 = "a,b,c,d,e,f,g"; String[] s8 = s7.split(","); for(String st:s8) { System.out.println(st); } //拼接字符串 String s9 = s7.concat(":abcd"); System.out.println(s9); //返回大写的字符串 String s10 = "你好,世界"; String s11 = s10.toUpperCase(); System.out.println(s11); String s12 = str3.toUpperCase(); System.out.println(s12); //去除字符串两端的空格 String s13 = " Hello World"; String s14 = s13.trim(); System.out.println("#" + s14 + "#"); List<Integer> list = getCharIndexOfString(s9,'a'); System.out.println(list); } //要求写一个方法,传入两个参数,要求输出第二个参数(char)在第一个参数(String)中所有位置的索引 public static List<Integer> getCharIndexOfString(String str, char cr) { List<Integer> list = new ArrayList<Integer>(); if(str != null) { char[] charArray = str.toCharArray(); for(int i = 0; i < charArray.length; i++) { if(charArray[i] == cr) { list.add(i); } } } return list; } } ~~~ ### StringBuffer ~~~java public class ConstantClass3 { public static void main(String[] args) { String a = "你"; String b = "我"; String c = "dindidindidndindindidn"; c += "suindidndind" + a + "sdindidndindind" + b; System.out.println(c); //StringBuffer类在大量字符串的拼接上比加号拼接的速度快 //利用Date类打一个时间戳 Date now = new Date(); String str = ""; //加号拼接 for(int i = 0; i < 20000; i++) { str += i; } Date nextNow = new Date(); System.out.println(nextNow.getTime()- now.getTime()); Date buNow = new Date(); StringBuffer sbu = new StringBuffer(); for(int i = 0; i < 20000; i++) { sbu.append(i); } Date nextBuNow = new Date(); System.out.println(nextBuNow.getTime()- buNow.getTime()); } } ~~~ ### Date ~~~java import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; /** * Date和SimpleDateFormat类 * @author 一教室 * */ public class ConstantClass4 { public static void main(String[] args) throws ParseException { /** * 构造器学习 */ Date date1 = new Date(); System.out.println(date1); //一天86400秒 86400*1000毫秒 System.out.println(60 * 60 * 24); //long time = 86400 * 1000 * 365; java运算表达式默认以int为计算结果类型,此处结果超出int范围,导致运算出错 long time = 86400L * 1000 * 365; System.out.println(time); Date date2 = new Date(time); System.out.println(date2);//1970-01-22 11:36:27 Date date3 = new Date(0); System.out.println(date3);//1970-01-01 08:00:00 北京时间 所出时区不一样,而且计算时间格式不同 /** * 方法学习 */ Date date = new Date(); //判断当前时间是否在指定时间之后(与before方法作用相反) boolean flag = date2.after(date); System.out.println(flag); /** * 返回正整数,表示所选时间晚于参数时间 * 返回0,表示所选时间等于参数时间 * 返回负整数,表示所选时间早于参数时间 */ int result = date.compareTo(date3); System.out.println(result); int result1 = date.compareTo(date1); System.out.println(result1); //判断两个时间是否相等 Date date4 = new Date(0); System.out.println(date3.equals(date4)); //getTime()方法返回自1970-01-01 00:00:00 GMT到指定时间对象的总毫秒数 long allHM = date2.getTime(); System.out.println(allHM); //getYear()方法已被jdk1.8弃用 int a = date.getYear(); System.out.println(a); //简单时间格式类- SimpleDateFormat //是一个以与语言环境相关的方式来格式化日期对象和解析日期文本的具体类, //它允许进行格式化(日期->文本),解析(文本->日期)和规范化 //格式化 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.SSS");//在构造器中传入字符串,该字符串用来指定日期格式 String dateS = sdf.format(date1); System.out.println(dateS); //解析-解析字符串中的文本,并生成对应的日期对象 String dateX = "2017-01-22 09:23:12.121"; Date dateT = sdf.parse(dateX); System.out.println(dateT); } } ~~~ ### Calendar ~~~java import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; /** * Calendar类(日历类) * @author 一教室 * */ public class ConstantClass5 { public static void main(String[] args) { Date date = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.SSS"); System.out.println(sdf.format(date)); /** * 日期加减 */ //getInstance()方法使用默认时区和区域获得一个日历对象,并返回该对象(常用于日期相关的计算) Calendar calendar = Calendar.getInstance(); //使用setTime()方法给日历对象设置指定时间 calendar.setTime(date); //将日历中的时间向后推迟30天 calendar.add(Calendar.DAY_OF_MONTH, 30);//第一个参数指的是日历中的天数 第二个参数指的是想要添加的数值 Date dt = calendar.getTime(); System.out.println(sdf.format(dt)); //将日历中的时间向后推迟30年 calendar.add(Calendar.YEAR, 30); System.out.println(sdf.format(calendar.getTime())); //将日历中的时间向前推进30年 calendar.add(Calendar.YEAR, -30); System.out.println(sdf.format(calendar.getTime())); //将日历中的时间向前推进1个月 calendar.add(Calendar.MONTH, -1); System.out.println(sdf.format(calendar.getTime())); /** * 日期的获取 get() */ //获取日历中日期是几号 System.out.println(calendar.get(Calendar.DAY_OF_MONTH)); //获取日历中日期的月份 System.out.println(calendar.get(Calendar.MONTH));//打印出来的月份是实际的月份-1 /** * 日期的设置 set() */ calendar.set(Calendar.YEAR, 2010); System.out.println(sdf.format(calendar.getTime())); } } ~~~