常用类
来源:互联网 发布:java购物商城源码 编辑:程序博客网 时间:2024/06/01 09:06
1. Object类
Object 是类层次结构的根类。
每个类都使用 Object 作为超类(父类)。所有对象(包括数组)都实现这个类的方法。
1)public int hashCode():返回的是该对象的哈希码值,哈希码值他是通过哈希表(Hashtable)里面的哈希算法算出来的,可以理解为地址值(整数)
2)public final Class<> getClass():返回此Object正在运行的类:
public String getName()以 String 的形式返回此 Class 对象所表示的实体(类、接口、数组类、基本类型或 void)名称
2.toString():返回该对象的字符串表示
该类如果没有重写toString()方法,那么打印出来的是地址值:包名.类名@16进制数据:地址值
想显示该类的成员变量的值,在该类里面重写Object中的toString()方法
3.public boolean equals(Object obj)指示其他某个对象是否与此对象“相等”。
equals:默认的比较的是地址值,
Object类中的原码:
判断此对象(当前类的对象this),obj实际的对象,判断对象是否相等
public boolean equals(Object obj) {
return (this == obj);
}
比较两个对象是否相等,看两个对象中的内容是否相同,就需要在Object类中去重写equals()方法!(shift+alt+s)
4.String类型的概述:String 类代表字符串。Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现。
字符串是常量,一旦被赋值,其值不能在改变!
常用的构造方法:
public String():无参构造
public String(byte[] bytes):将字节数组转换成字符串
public String(byte[] bytes,int offset,int length):将字节数组的一部分转换成字符串
public String(char[] value):将字符数组转换成字符串
public String(char[] value,int offset,int count):将字符数组的一部分转换成字符串
public String(String original):将一个常量转换字符串:String 是不可变的,所以无需使用此构造方法
数组中有没有length()? 字符串中有没有length()?
length:数组长度属性 :数组中不存在这个方法
字符串中有length():返回字符串长度
5.字符串的特点:
字符串一旦被赋值,其值不能在改变!
方法区:有一个内存区域:字符串常量池
如果我们创建一个字符串对象,给对象赋值,这个值会在常量池找,有的话,就返回,没有在常量池开辟空间.
6.
面试题:
String s1 = new String("hello");创建了几个对象
String s2 = "hello" ;创建了几个对象
s1创建了两个对象
s2创建了一个对象,直接指向常量池中的!
== 默认比较的是地址值
equals:默认的比较的是地址值,String类型底层已经重写了Object类中equals方法,比较的是内容是否相同!
6.2
字符串变量相加,先开辟空间,再相加
字符串常量相加,先相加,然后在常量池中,是否有这个值,有直接返回地址值,没有就创建
7.String类的获取功能:
int length():获取字符串的长度
char charAt(int index):返回指定索引处的字符!(重点)
int indexOf(int ch):返回回指定字符在此字符串中第一次出现处的索引(重点)
为什么这里的参数是int类型,而不是char类型
'a'和97 都代表'a'
int indexOf(String str):返回指定字符串在此字符串第一次出现的索引!
int indexOf(int ch,int fromIndex):返回此字符中从指定位置开始后第一次出现的索引
int indexOf(String str,int fromIndex):返回此字符串中从指定位置开始后第一次出现的索引
(重点)
String substring(int start):截取:从指定位置开始截取,默认截取到末尾:包含start这个索引
String substring(int start,int end):从指定位置开始截取到指定位置结束:包左(start这个索引),不包含end这个位置
8.字符串的转换功能:(重点)
byte[] getBytes():将一个字符串转换字节数组
char[] toCharArray():(重点方法):将一个字符串转换成字符数组
static String valueOf(char[] chs):将字符数组转换成字符串
static String valueOf(int i):将int类型的数据转换字符串
注意:
String类中的valueOf方法可以将任何数据类型转换成String
String toLowerCase():将字符串转换成小写
String toUpperCase():将字符串转换成大写
String concat(String str):字符串拼接功能
Object 是类层次结构的根类。
每个类都使用 Object 作为超类(父类)。所有对象(包括数组)都实现这个类的方法。
1)public int hashCode():返回的是该对象的哈希码值,哈希码值他是通过哈希表(Hashtable)里面的哈希算法算出来的,可以理解为地址值(整数)
2)public final Class<> getClass():返回此Object正在运行的类:
public String getName()以 String 的形式返回此 Class 对象所表示的实体(类、接口、数组类、基本类型或 void)名称
public class ObjectDemo {public static void main(String[] args) {Student s = new Student();System.out.println(s);//org1.Student@4ffb06c9System.out.println(s.hashCode());//1341851337 地址值Student s2 = s;System.out.println(s2.hashCode());//1341851337 地址值Student s3 = new Student();Class c = s3.getClass();System.out.println(c);//class org1.Student 此Object正在运行的类String str = c.getName();System.out.println(str);// org1.Student student类的全名称路径}}
2.toString():返回该对象的字符串表示
该类如果没有重写toString()方法,那么打印出来的是地址值:包名.类名@16进制数据:地址值
想显示该类的成员变量的值,在该类里面重写Object中的toString()方法
@Overridepublic String toString() {return "Student [age=" + age + ", name=" + name + "]";}public class STest {public static void main(String[] args) {Student s = new Student(22,"高圆圆");System.out.println(s);System.out.println(s.toString());//没有重写org2.Student@5e4c689eSystem.out.println(s.toString());//重写之后 Student [age=22, name=高圆圆]}}
3.public boolean equals(Object obj)指示其他某个对象是否与此对象“相等”。
equals:默认的比较的是地址值,
Object类中的原码:
判断此对象(当前类的对象this),obj实际的对象,判断对象是否相等
public boolean equals(Object obj) {
return (this == obj);
}
比较两个对象是否相等,看两个对象中的内容是否相同,就需要在Object类中去重写equals()方法!(shift+alt+s)
@Overridepublic String toString() {return "Student [age=" + age + ", name=" + name + "]";}public class STest {public static void main(String[] args) {Student s = new Student(22,"高圆圆");System.out.println(s);System.out.println(s.toString());//没有重写org2.Student@5e4c689eSystem.out.println(s.toString());//重写之后 Student [age=22, name=高圆圆]}}
4.String类型的概述:String 类代表字符串。Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现。
字符串是常量,一旦被赋值,其值不能在改变!
常用的构造方法:
public String():无参构造
public String(byte[] bytes):将字节数组转换成字符串
public String(byte[] bytes,int offset,int length):将字节数组的一部分转换成字符串
public String(char[] value):将字符数组转换成字符串
public String(char[] value,int offset,int count):将字符数组的一部分转换成字符串
public String(String original):将一个常量转换字符串:String 是不可变的,所以无需使用此构造方法
数组中有没有length()? 字符串中有没有length()?
length:数组长度属性 :数组中不存在这个方法
字符串中有length():返回字符串长度
public class StringDemo {public static void main(String[] args) {//无参构造:String s = new String() ;System.out.println(s);//空字符序列System.out.println(s.length());//0System.out.println("-----------------------");//public String(byte[] bytes):将字节数组转换成字符串//构造一个字节数组,静态初始化byte[] bys = {97,98,99,100,101} ;//abcdeString s2 = new String(bys) ;System.out.println(s2);System.out.println(s2.length());//5//public String(byte[] bytes,int offset,int length):将字节数组的一部分转换成字符串String s3 = new String(bys, 0, 3) ;System.out.println(s3);//abcSystem.out.println(s3.length());System.out.println("-------------------------");//创建一个字符数组char[] ch = {'a','b','c','d','e','爱','高','圆','圆'} ;//public String(char[] value):将字符数组转换成字符串String s4 = new String(ch) ;System.out.println(s4);System.out.println(s4.length());System.out.println("-------------------------");//public String(char[] value,int offset,int count):将字符数组的一部分转换成字符串:char[] value,int index,int lengthString s5 = new String(ch, 5, 4) ;//爱高圆圆System.out.println(s5);System.out.println(s5.length());//public String(String original):将一个常量转换字符串:由于String 是不可变的,所以无需使用此构造方法String s6 = new String("hello") ;System.out.println(s6);System.out.println(s6.length());//创建字符串对象s6相当于 s7字符串对象的创建方式String s7 = "hello" ;System.out.println(s7);System.out.println(s7.length());
5.字符串的特点:
字符串一旦被赋值,其值不能在改变!
方法区:有一个内存区域:字符串常量池
如果我们创建一个字符串对象,给对象赋值,这个值会在常量池找,有的话,就返回,没有在常量池开辟空间.
6.
面试题:
String s1 = new String("hello");创建了几个对象
String s2 = "hello" ;创建了几个对象
s1创建了两个对象
s2创建了一个对象,直接指向常量池中的!
== 默认比较的是地址值
equals:默认的比较的是地址值,String类型底层已经重写了Object类中equals方法,比较的是内容是否相同!
public class StringDemo {public static void main(String[] args) {//无参构造:String s = new String() ;System.out.println(s);//空字符序列System.out.println(s.length());//0System.out.println("-----------------------");//public String(byte[] bytes):将字节数组转换成字符串//构造一个字节数组,静态初始化byte[] bys = {97,98,99,100,101} ;//abcdeString s2 = new String(bys) ;System.out.println(s2);System.out.println(s2.length());//5//public String(byte[] bytes,int offset,int length):将字节数组的一部分转换成字符串String s3 = new String(bys, 0, 3) ;System.out.println(s3);//abcSystem.out.println(s3.length());System.out.println("-------------------------");//创建一个字符数组char[] ch = {'a','b','c','d','e','爱','高','圆','圆'} ;//public String(char[] value):将字符数组转换成字符串String s4 = new String(ch) ;System.out.println(s4);System.out.println(s4.length());System.out.println("-------------------------");//public String(char[] value,int offset,int count):将字符数组的一部分转换成字符串:char[] value,int index,int lengthString s5 = new String(ch, 5, 4) ;//爱高圆圆System.out.println(s5);System.out.println(s5.length());//public String(String original):将一个常量转换字符串:由于String 是不可变的,所以无需使用此构造方法String s6 = new String("hello") ;System.out.println(s6);System.out.println(s6.length());//创建字符串对象s6相当于 s7字符串对象的创建方式String s7 = "hello" ;System.out.println(s7);System.out.println(s7.length());
6.2
字符串变量相加,先开辟空间,再相加
字符串常量相加,先相加,然后在常量池中,是否有这个值,有直接返回地址值,没有就创建
String s1 = "hello";String s2 = "world";String s3 = "helloworld";System.out.println(s3 == s1 + s2);// falseSystem.out.println(s3.equals((s1 + s2)));//trueSystem.out.println(s3 == "hello" + "world");///true 先相加 再看常量池System.out.println(s3.equals("hello" + "world"));//true
7.String类的获取功能:
int length():获取字符串的长度
char charAt(int index):返回指定索引处的字符!(重点)
int indexOf(int ch):返回回指定字符在此字符串中第一次出现处的索引(重点)
为什么这里的参数是int类型,而不是char类型
'a'和97 都代表'a'
int indexOf(String str):返回指定字符串在此字符串第一次出现的索引!
int indexOf(int ch,int fromIndex):返回此字符中从指定位置开始后第一次出现的索引
int indexOf(String str,int fromIndex):返回此字符串中从指定位置开始后第一次出现的索引
(重点)
String substring(int start):截取:从指定位置开始截取,默认截取到末尾:包含start这个索引
String substring(int start,int end):从指定位置开始截取到指定位置结束:包左(start这个索引),不包含end这个位置
public static void main(String[] args) {//定义一个字符串String s = "helloworld" ;//int length():获取字符串的长度System.out.println(s.length());//10//char charAt(int index):返回指定索引处的字符!System.out.println(s.charAt(7)); //r //int indexOf(int ch):返回回指定字符在此字符串中第一次出现处的索引System.out.println(s.indexOf('l'));//2System.out.println(s.indexOf('k'));//-1//int indexOf(String str):返回指定字符串在此字符串第一次出现的索引!System.out.println(s.indexOf("owo"));//4//int indexOf(int ch,int fromIndex):返回此字符中从指定位置开始后第一次出现的索引System.out.println(s.indexOf('l', 4));//8 L在4后第一次出现的索引//String substring(int start):截取:从指定位置开始截取,默认截取到末尾:包含start这个索引System.out.println(s.substring(5));// worldSystem.out.println(s.substring(0));// helloworld//String substring(int start,int end):从指定位置开始截取到指定位置结束:包左(start这个索引),不包含end这个位置System.out.println(s.subSequence(5, 9));//worl(包左不包右}}
8.字符串的转换功能:(重点)
byte[] getBytes():将一个字符串转换字节数组
char[] toCharArray():(重点方法):将一个字符串转换成字符数组
static String valueOf(char[] chs):将字符数组转换成字符串
static String valueOf(int i):将int类型的数据转换字符串
注意:
String类中的valueOf方法可以将任何数据类型转换成String
String toLowerCase():将字符串转换成小写
String toUpperCase():将字符串转换成大写
String concat(String str):字符串拼接功能
public class Demo3 {public static void main(String[] args) {//定义一个字符串String s = "JavaSE" ;//byte[] getBytes():将一个字符串转换字节数组byte[] bys = s.getBytes() ;for(int x = 0 ; x < bys.length ;x++){System.out.println(bys[x]);//74 94 118 97 83 69 }//char[] toCharArray():(重点方法):将一个字符串转换成字符数组char[] chs = s.toCharArray() ;// J a v a S Efor(int x = 0 ; x < chs.length ; x ++){System.out.println(chs[x]);}//static String valueOf(char[] chs):将字符数组转换成字符串String ss = String.valueOf(chs) ;//JavaSESystem.out.println(ss);/* * static String valueOf(int i):将int类型的数据转换字符串注意:String类中的valueOf方法可以将任何数据类型转换成String * */int i = 100 ;String sss = String.valueOf(i) ;System.out.println(sss);//"100"//String toLowerCase():将字符串转换成小写System.out.println("toLowerCase():" +s.toLowerCase());System.out.println("toUpperCase():" +s.toUpperCase());String s1 = "hello" ;String s2 = "world" ;String s4 = s1.concat(s2) ;//拼接System.out.println("s4:"+s4);}}
阅读全文
0 0
- 常用类
- 常用类
- 常用类
- 常用类
- 常用类
- 常用类
- 常用类
- 常用类
- 常用类
- 常用类
- 常用类
- 常用类
- 常用类
- 常用类
- 常用类
- 常用类
- 常用类
- 常用类
- 【计算机网络】网络诊断工具ping的模拟实现之搭建框架
- poj3252(数位dp)
- 模板方法设计模式
- [leetcode]565. Array Nesting
- Leetcode 124. Binary Tree Maximum Path Sum
- 常用类
- anaconda 下多版本Python 安装说明
- 个人不熟悉的面试题目(c++,数据结构)
- 剑指offer--面试题28:对称的二叉树
- 实习遇到的坑....
- hdu 3549 isap
- jQuery中foreach的continue和break : Uncaught SyntaxError: Illegal continue statement
- MySQL数据库二(数据表创建以及插入数据)
- 据说题目很水 FZU