【知识点详解】 1. Object类的equals方法: Object类中的equals方法默认比较的是对象的内存地址,而String类重写了equals方法,用于比较两个字符串的内容是否相同。当比较两个字符串对象时,如果使用==运算符,实际上是检查它们是否指向同一个内存空间;如果使用equals方法,则比较的是字符串的内容是否相等。 2. Object类的toString方法: 默认的toString方法返回的是类名@十六进制的哈希值,例如"java.lang.Object@123456"。在ToStringTest示例中,虽然重写了toString方法,但输出结果受`System.out.println`语句的影响,先输出"I ",然后才调用toString方法返回"java ",所以输出"love Ijava"和"me 2I"。 3. String对象的比较: (1) s1和s2是两个引用不同的"abc"对象,因此`s1 == s2`为false,但`s1.equals(s2)`为true。 (2) 相同于(1),都是比较内容。 (3) "a"+"b"+"c"在编译时会被优化为一个常量"abc",所以`s1 == s2`为true,`s1.equals(s2)`也为true。 (4) s3是在s1的基础上添加了"c",生成新的对象,因此`s3 == s2`为false,但`s3.equals(s2)`为true。 4. StringBuilder与String的区别: String是不可变的,每次修改都会创建新对象,而StringBuilder是可变的,可以在原对象上进行修改,效率更高。在频繁修改字符串内容时,应优先选择StringBuilder。 5. Date类的使用: 使用`new Date()`获取当前日期和时间,然后通过`SimpleDateFormat`格式化输出,例如:`SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); System.out.println(sdf.format(new Date()));` 6. DateFormat类的使用: 通过`SimpleDateFormat`实例化,然后使用`format`方法转换日期,例如:`SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日"); System.out.println(sdf.format(new Date("2018-03-04")));` 7. Calendar类的使用: `Calendar calendar = Calendar.getInstance(); calendar.setTime(new Date("2018-02-14")); System.out.println(calendar.get(Calendar.DAY_OF_WEEK));` 这段代码会输出2018年2月14日是星期几。 8. System类的arraycopy方法: 将字符数组{'i','t','c','a','s','a'}的第二个元素复制到末尾,覆盖原有元素:`char[] chars = {'i','t','c','a','s','a'}; System.arraycopy(chars, 1, chars, 5, 1);` 然后遍历数组输出"itcast"。 9. StringBuilder与String拼接性能对比: 使用`System.currentTimeMillis()`记录时间,分别执行100000次字符串拼接,例如: ```java long startStr = System.currentTimeMillis(); String str = ""; for (int i = 0; i < 100000; i++) { str += "x"; } long endStr = System.currentTimeMillis(); long startStringBuilder = System.currentTimeMillis(); StringBuilder sb = new StringBuilder(); for (int i = 0; i < 100000; i++) { sb.append("x"); } long endStringBuilder = System.currentTimeMillis(); ``` 打印两者的耗时。 10. StringBuilder的reverse方法: 定义数字字符串数组,使用reverse方法判断对称性: ```java String[] numbers = {"010", "3223", "666", "7890987", "123123"}; int symmetricCount = 0; for (String number : numbers) { if (number.equals(new StringBuilder(number).reverse().toString())) { System.out.println(number + " 是对称的"); symmetricCount++; } else { System.out.println(number + " 不是对称的"); } } System.out.println("对称字符串的个数:" + symmetricCount); ``` 11. StringBuilder的使用(打印特定序列): 使用StringBuilder构建7、8、9的序列,例如: ```java StringBuilder sb = new StringBuilder(); for (int i = 7; i <= 9; i++) { sb.append(i); } System.out.println(sb.toString()); ``` 以上就是针对给定文件中的Java知识点的详细解析和示例代码。这些知识点涵盖了Object类的基本方法,字符串比较,字符串与StringBuilder的使用,日期和时间处理,以及数组操作和性能测试。
- 粉丝: 26
- 资源: 312
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于ArcEngine的GIS数据处理系统.zip
- (源码)基于JavaFX和MySQL的医院挂号管理系统.zip
- (源码)基于IdentityServer4和Finbuckle.MultiTenant的多租户身份认证系统.zip
- (源码)基于Spring Boot和Vue3+ElementPlus的后台管理系统.zip
- (源码)基于C++和Qt框架的dearoot配置管理系统.zip
- (源码)基于 .NET 和 EasyHook 的虚拟文件系统.zip
- (源码)基于Python的金融文档智能分析系统.zip
- (源码)基于Java的医药管理系统.zip
- (源码)基于Java和MySQL的学生信息管理系统.zip
- (源码)基于ASP.NET Core的零售供应链管理系统.zip