从零开始学Java-Day11
2021/6/15 20:36:55
本文主要是介绍从零开始学Java-Day11,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
API
Objex(顶级父类):
在不明确给出超类的情况下,Java会自动把Object作为要定义类的超类
package cn.tedu.api; import java.util.Objects; //本类用于测试顶级父类Object public class TestObject { public static void main(String[] args) { Student student = new Student("大和赤骥", 3); Student student2 = new Student("大和赤骥", 3); System.out.println(student); System.out.println(student2); System.out.println(student.hashCode()); System.out.println(student2.hashCode()); /* *equals()默认实现是==,比较2给对象的地址值 */ System.out.println(student.equals(student2)); } } class Student { String name; int age; public Student() { } public Student(String name, int age) { this.name = name; this.age = age; } @Override public String toString(){ return "Student{" + "name:" + name + "," + "age:" + age + "}"; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Student student = (Student) o; return age == student.age && Objects.equals(name, student.name); } @Override public int hashCode() { return Objects.hash(name, age); } }
toString()
- 默认实现打印对象的地址值
- 重写后:打印的是对象的属性和属性值
hashCode():对象的哈希码值,一串数字,用来区分不同的对象
equals():
- equals()默认实现的是==,比较的是地址值
- 重写后比较的是属性值
String 字符串,使用""来包裹
String底层维护了一个char[]
String 创建的两种方式
方式一:char[] value = {'a', 'b', 'c'}; String s = new String(value);--没有高效的效果
方式二:String s = "abc";有高效的效果,存在堆的常量池
package cn.tedu.api; import javax.jws.soap.SOAPBinding; //本类用于测试String类的用法 public class TestString { public static void main(String[] args) { String s = "abc"; /*字符串底层维护着是一个char[],对象存在堆中*/ char[] value = {'a', 'b', 'c'}; String s1 = new String(value); String s2 = new String(value); System.out.println(s1 == s2);//false /*String底层也重写了equals,比较的是两给串的实际参数而不是地址值*/ System.out.println(s1.equals(s2));//true System.out.println("================"); /*此种创建方式有一个高效的效果,底层也会new String()存放在堆中的常量池中 * 第二次创建时会查看之前是否创建如果有,就不再创建,效率高,只有这种创建方式才有 * 高效的效果*/ String str = "abc"; String str1 = "abc"; System.out.println(str == str1);//true System.out.println(str.equals(str1));//true } }
package cn.tedu.api; import java.util.Arrays; //本类用于测试String常用方法 public class TestString2 { public static void main(String[] args) { String s = "abc"; char[] value = {'a', 'b', 'c'}; String s1 = new String(value); System.out.println(s.charAt(0));//打印下标为0的元素 System.out.println(s.concat("111"));//将"111"链接到字符串末尾 System.out.println(s.startsWith("a"));//判断是否以a开头 System.out.println(s.endsWith("a"));//判断是否以a结尾 System.out.println(s == s1);//判断2给字符串地址是否相同 System.out.println(s.equals(s1));//判断2给字符串的值是否相同 System.out.println(s.length());//打印字符串的长度 System.out.println(s.indexOf('a'));//打印字符串中a的下标 System.out.println(s.indexOf("a")); System.out.println(s.lastIndexOf('c'));//打印字符串反转中c的下标 System.out.println(s.lastIndexOf("c")); System.out.println(s.toLowerCase());//使字符串中的字母全都小写 System.out.println(s.toUpperCase());//使字符串中的字母全都大写 System.out.println(s.getBytes());//将字符串转成字节数组 System.out.println(Arrays.toString(s.getBytes())); String s2 = "a b%c d e"; System.out.println(s2.split("%"));//以%为标记分割字符串 System.out.println(Arrays.toString(s2.split("%"))); s2 = " abcde "; System.out.println(s2.trim());//去除字符串首尾的空格 System.out.println(s.substring(0,2));//截取0~2位置的字符串左闭右开 System.out.println(String.valueOf(54) + 54);//将整形54转化为字符串的54 } }
这篇关于从零开始学Java-Day11的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-26Mybatis官方生成器资料详解与应用教程
- 2024-11-26Mybatis一级缓存资料详解与实战教程
- 2024-11-26Mybatis一级缓存资料详解:新手快速入门
- 2024-11-26SpringBoot3+JDK17搭建后端资料详尽教程
- 2024-11-26Springboot单体架构搭建资料:新手入门教程
- 2024-11-26Springboot单体架构搭建资料详解与实战教程
- 2024-11-26Springboot框架资料:新手入门教程
- 2024-11-26Springboot企业级开发资料入门教程
- 2024-11-26SpringBoot企业级开发资料详解与实战教程
- 2024-11-26Springboot微服务资料:新手入门全攻略