Java基础——常用类

Java基础——常用类

一、Object类

1.Object类介绍
Object类是类层次结构的根,Java中所有的类都继承自这个类。
2个特征:
1.Object类是Java中唯一没有父类的类。
2.其他所有的类都继承了Object类中的方法,所以其方法的重要性不言而喻
如果在类的声明中未使用extends关键字指明其父类,则默认父类为Object类
public class Person {

}

等价于:
public class Person extends Object {
...

}

2.==操作符与equals方法
①==既可以比较基本数据类型,也可以比较引用数据类型。
1>基本数据类型: 判断值是否相等,相等返回true,不相等返回false
2>引用数据类型:比较的是引用数据类型在堆里面的地址值是否相等

②equals():定义在Object中
1>只能比较引用数据类型
2>在object类中,发现equals方法比较的是地址值是否相等

3.toString方法
toString()方法在Object类中定义,其返回值是String类型,内容为类名以及该对象的引用地址。
在进行String与其它类型数据的连接操作时,自动调用toString()方法。
例如:
Date now=new Date();
System.out.println(“now=”+now);
相当于
System.out.println(“now=”+now.toString());
可以根据需要在用户自定义类型中重写toString()方法
比如String 类就重写了toString()方法,返回字符串的值。
s1=“hello”;
System.out.println(s1);
相当于
System.out.println(s1.toString());
基本类型数据转换为String类型时,调用了对应封装类的 toString()方法例如:
int a=10;
System.out.println(“a=”+a);

二、Java中的字符串与String

1.Java中字符串是常量,它们的值在创建之后不能更改。
2.String类的引用可以指向不同的字符串,这是因为字符串对象虽然是不能修改的, 但是它们的地址可以共享。

String类的内存解析
java程序类似于c语言, 运行时会把程序占用的内存大致分割成几个部分,分别是stuck(栈区), Heap(堆区), Data(数据区)和代码区,其中数据区用于存放静态变量和字符串常量
在这里插入图片描述String类的本质:
在这里插入图片描述String类实例化对象的方法:
String类的构造函数有很多个(参数不同), 但是在平时编码中,常用的实例化对象方法无非是两种。第一种就是与其他类一样, 利用构造方法。
例如:String s = new String(“abc”);

字符串对象操作

package SX0113_1;

import org.junit.Test;

public class TestString1 {
	
	public void test(){
		//1.返回字符串长度(常用)
		String str="yangshan";
		System.out.println(str.length());
		
		//2.返回指定索引位置的字符,index从0开始
		System.out.println(str.charAt(0));
		
		//4.返回字符串在某个字符串出现的位置
		System.out.println(str.indexOf("g"));
		
		//5.返回字符串在某个字符串从startpoint开始首次出现的位置,如果没有返回-1
		System.out.println(str.indexOf("n", 3));
		
		//8.boolean startsWith(String prefix):判断字符串是否以prefix开头
		System.out.println(str.startsWith("n"));
		
		//8.boolean endsWith(String suffix):判断字符串是否以suffix结尾
		System.out.println(str.endsWith("n"));
		
	}
	
	public void test1() {
		
		String str="yangshan";
		//1.substring(int startpoint):根据startpoint去截取字符串,坐标从0开始(常用)
		System.out.println(str.substring(5));
		
		//2.substring(int start,int end):根据start开始截取,到end结束,包含头,不包含尾(常用)
		System.out.println(str.substring(3, 5));
		
		//3.replace(char oldChar,char newChar):把指定字符串替换成一个新的字符串
		String str2=str.replace("g", "abc");
		System.out.println(str2);
		
		//5.trim():去掉一个字符串前后的空格(常用)
		String str3="    ssss   ssss   sss   sssss    ";
		System.out.println(str3);
		System.out.println(str3.trim());
		
		//6.concat(String str):连接字符串
		String str4=str.concat(str3.trim());
		System.out.println(str4);
		
		//7.String[] split(string regex):根据regex将当前字符串拆分成多个字符串,返回一个字符串数组(常用)
		String str5="aaa-bbb-ccc-ddd-eee";
		String[] strs=str5.split("-");
		for (String string : strs) {
			System.out.println(string);
		}
	}

}

StringBuffer类介绍
StringBuffer:就是字符串缓冲区,用于存储可变字符序列的容器。
特点:
1.可以对字符串进行修改。
2.长度可变。
StringBuffer类的常用方法:
构造:
StringBuffer()
StringBuffer(int size)
StringBuffer(String str)
添加:
StringBuffer append(data);
StringBuffer insert(index,data);
删除:
StringBuffer delete(start,end):包含头,不包含尾。
StringBuffer deleteCharAt(int index):删除指定位置的元素
查找:
char charAt(index);
int indexOf(string);
int lastIndexOf(string);
修改:
StringBuffer replace(start,end,string);
void setCharAt(index,char);

package SX0114_1;

public class TestStringBuffer {

	public static void main(String[] args) {
		// StringBuffer:可变字符串,可以在原有字符串的基础上进行添加
		//String:不可变,如果在原有的字符基础上进行添加,会先看字符串常量池有没有该字符串,如果没有,开辟新的空间,造一个
		StringBuffer sb=new StringBuffer();
		//append():添加
		sb.append("张三");
		sb.append("是个人吗?");
		System.out.println(sb);
		//insert(index,data):在字符串的指定位置添加一个字符串,0开始
		sb.insert(1, "四");
		System.out.println(sb);
		
		//删除
		//delete(start,end)
		sb.delete(3, 7);
		System.out.println(sb);
	}

}

StringBuffer:可变字符序列、线程安全、效率低
StringBuilder:可变字符序列、线程不安全、效率高

封装类:
针对八种基本定义相应的引用类型—封装类
在这里插入图片描述包装类的常用方法:
实现int和Integer类之间的转换
int n = 10;
Integer in = new Integer(100);
//将int类型转换为Integer类型
Integer in1 = new Integer(n);
//将Integer类型的对象转换为int类型
int m = in.intValue();

parseInt方法
public static int parseInt(String s)
toString方法
public static String toString(int i)
该方法的作用是将int类型转换为对应的String类型。
使用示例代码如下:
int m = 1000;
String s = Integer.toString(m);
则字符串s的值是”1000”

Date and DateFormat类
Date类在java.util包中。使用Date类的无参构造方法创建的对象可以获取本地当前时间。
SimpleDateFormat可用来实现日期的格式化。
public SimpleDateFormat(String pattern):使用参数pattern指定的格式创建一个对象。
public String format(Date date):按照构造方法中指定的pattern格式化时间对象date。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值