网站建设新手如何自己做网站,学校二级网站建设,高级网页设计教程,网站主页模板 优帮云String概述 java.lang.String 类代表字符串#xff0c;String类定义的变量可以用于指向字符串对象#xff0c;同时String类提供了很多操作字符串的功能#xff0c;我们可以直接使用。Java 程序中的所有字符串文字#xff08;例如“abc”#xff09;都为此类的对象 特点:St…String概述 java.lang.String 类代表字符串String类定义的变量可以用于指向字符串对象同时String类提供了很多操作字符串的功能我们可以直接使用。Java 程序中的所有字符串文字例如“abc”都为此类的对象 特点: String其实常被称为不可变字符串类型它的对象在创建后不能被更改。String变量每次的修改其实都是产生并指向了新的字符串对象,原来的字符串对象都是没有改变的所以称不可变字符串。以“”方式给出的字符串对象在字符串常量池中存储。String类创建对象的方式 方式一直接使用“”定义。 String s 中国人; 方式二通过String类的构造器创建对象。常用的构造器有下面几个 不同的创建方式有不同的特点。具体如下 以 方式给出的字符串对象在字符串常量池中存储而且相同内容只会在其中存储一份。 通过构造器new对象每new一次都会产生一个新对象放在堆内存中。 代码示例 public class Demo01String {public static void main(String[] args) {String s1 中国人;String s2 中国人;System.out.println(s1 s2);//truechar[] c {中, 国, 人};String s3 new String(c);String s4 new String(c);System.out.println(s3 s4);//false}
}String类常用方法 字符串的内容比较相关的方法 代码示例 import java.util.Scanner;public class Demo02String {public static void main(String[] args) {String okName admin;String oKPassword 123456;Scanner sc new Scanner(System.in);System.out.println(输入账号);String inputName sc.next();System.out.println(输入密码);String inputPassword sc.next();if ((okName.equals(inputName))(oKPassword.equals(inputPassword))){System.out.println(密码账号正确登录成功..);}else {System.out.println(密码或账号不正确登录失败..);}}
}String中与遍历、替换、截取、分割操作相关的方法 代码示例 import java.util.Arrays;public class Demo03String {public static void main(String[] args) {// 1、public int length(): 获取字符串的长度String name 我爱你中国love;System.out.println(name.length()); //9// 2、public char charAt(int index): 获取某个索引位置处的字符char c name.charAt(1);System.out.println(c);// 爱// 3、public char[] toCharArray(): 把字符串转换成字符数组char[] chars name.toCharArray();System.out.println(Arrays.toString(chars)); //[我, 爱, 你, 中, 国, l, o, v, e]// 4、public String substring(int beginIndex, int endIndex) 截取内容(包前不包后的)String name2 Java是最厉害的编程语言;String rs name2.substring(0, 4);System.out.println(rs);//javaString rs1 name2.substring(6, 8);System.out.println(rs1);//厉害// 5、public String substring(int beginIndex):从当前索引一直截取到末尾String rs2 name2.substring(9);System.out.println(rs2); //编程语言// 6、public String replace(CharSequence target, CharSequence replacement)String name3 TMD是最厉害的80后语言TMD棒棒的;String rs3 name3.replace(TMD, ***);System.out.println(rs3);//***是最厉害的80后语言***棒棒的// 7、public boolean contains(CharSequence s)System.out.println(name3.contains(厉害)); // trueSystem.out.println(name3.contains(不厉害)); // false// 8、public boolean startsWith(String prefix)System.out.println(name3.startsWith(T)); //trueSystem.out.println(name3.startsWith(MD是));// false// 9、public String[] split(String s): 按照某个内容把字符串分割成字符串数组返回。String name4 张三,李四,王五;String[] names name4.split(,);System.out.println(Arrays.toString(names)); //[张三, 李四, 王五]}
}Object根父类 类 java.lang.Object是类层次结构的根类即所有类的父类。每个类都使用 Object作为超类。 Object类型的变量与除Object以外的任意引用数据类型的对象都多态引用所有对象包括数组都实现这个类的方法。如果一个类没有特别指定父类那么默认则继承自Object类。例如public class MyClass /*extends Object*/ {// ...
} Object类中常用方法 根据JDK源代码及Object类的API文档Object类当中包含的方法有11个。 public String toString( ) 默认情况下toString()返回的是“对象的运行时类型 对象的hashCode值的十六进制形式如果我们直接System.out.println(对象)默认会自动调用这个对象的toString()。通常是建议重写 因为Java的引用数据类型的变量中存储的实际上时对象的内存地址但是Java对程序员隐藏内存地址信息所以不能直接将内存地址显示出来所以当你打印对象时JVM帮你调用了对象的toString()。 例如自定义的Person类 public class Person {private String name;private int age;Overridepublic String toString() {return Person{ name name \ , age age };}//类中其他代码
}public final Class? getClass()获取对象的运行时类型。 因为Java有多态现象所以一个引用数据类型的变量的编译时类型与运行时类型可能不一致因此如果需要查看这个变量实际指向的对象的类型需要用getClass()方法 public class Test {public static void main(String[] args) {Object obj new String();//获取对象的运行时类型System.out.println(obj.getClass()); //class java.lang.StringObject ob new Person();System.out.println(ob.getClass()); //class sgg1.demo02.Person}
}protected void finalize( )用于最终清理内存的方法 当对象被GC确定为要被回收的垃圾在回收之前由GC帮你调用这个方法不是由程序员手动调用。这个方法与C语言的析构函数不同C语言的析构函数被调用那么对象一定被销毁内存被回收而finalize方法的调用不一定会销毁当前对象因为可能在finalize()中出现了让当前对象“复活”的代码每一个对象的finalize方法只会被调用一次。子类可以选择重写一般用于彻底释放一些资源对象而且这些资源对象往往时通过C/C等代码申请的资源内存 public int hashCode()返回每个对象的hash值。主要用于后面当对象存储到哈希表等容器中时为了提高存储和查询性能用的。 如果两个对象的hash值是不同的那么这两个对象一定不相等如果两个对象的hash值是相同的那么这两个对象不一定相等。public class Test {public static void main(String[] args) {System.out.println(Aa.hashCode());//2112System.out.println(BB.hashCode());//2112System.out.println(ABC.hashCode());//64578}
}public boolean equals(Object obj)用于判断当前对象this与指定对象obj是否“相等”。 默认情况下equals方法的实现等价于与“”比较的是对象的地址值绝大部分情况下我们都应该去重写此方法import java.util.Objects;public class Person {private String name;private int age;Overridepublic boolean equals(Object o) {if (this o) return true;if (o null || getClass() ! o.getClass()) return false;Person person (Person) o;return age person.age Objects.equals(name, person.name);}//类中其他代码
} 未完待续