Java常用类

一、Java常用类

学习java的常用类-学会jdk-api文档的使用,我们把java的常用类又称为java的API
jdk6-api文档翻译的比较准确-人译
jdk8-api文档-机译

1、Object(*)

Object类是所有类的父类,即所有类都继承Object类

		Student stu1 = new Student("xxx");
		Student stu2 = new Student("xxx");
		Student stu3 = stu1;

1、equals

指示其他某个对象是否与此对象“相等”。

比较的内存地址

		/**
		 * 1.equals:比较两个对象的内存地址是否相等
		 */
		System.out.println(stu1.equals(stu3));
		System.out.println(stu1.equals(stu2));

2、hashCode

		/**
		 * 2.hashCode:获取对象的内存地址
		 */
		int hashCode1 = stu1.hashCode();
		int hashCode2 = stu2.hashCode();
		int hashCode3 = stu3.hashCode();
		System.out.println(hashCode1);
		System.out.println(hashCode2);
		System.out.println(hashCode3);

3、toString

如果子类没有重写父类Object类的toString方法,这个时候直接输出对象,结果是对象的内存地址

如果子类重写父类Object类中的toString方法,这个时候直接输出对象,结果是执行子类重写后的toStirng方法,输出对象的字符串表现形式

3、getClass(了解)

获取创建该对象的类路径

		System.out.println(stu1.getClass());

5.finalize()

垃圾回收器

总结

		/**
		 * == 
		 * 	如果作用于基本数据类型,比较值是否相等
		 * 	如果作用于引用数据类型,比较内存地址是否相等
		 * equals
		 * 	引用数据类型的比较,建议使用equals
		 */
		int n = 1;
		int m=2;
		System.out.println(n == m);
		System.out.println(stu1 == stu2);

2、基本数据类型的包装类(*)

java语言是一个面向对象的语言,但是java中的基本数据类型却不是面向对象的,但是我们在实际使用中经常将基本数据类型转换成对象,便于操作,这时,我们就需要用的基本数据类型的包装类!

包装类的继承关系:

image-20210201121538988

image-20210201115331936

1.Integer

1.赋值
		//1.整数
		int a1 = 10;
		Integer a2 = 100;
		
		//2.小数
		double b1 = 3.14;
		Double b2 = 3.11;
		//3.字符
		char c1 = 'a';
		Character c2 = 'b';
		//4.布尔
		boolean d1 = true;
		Boolean d2 = false;
2属性和方法
		//1.int最大值
		System.out.println(Integer.MAX_VALUE);
		//2.int最小值
		System.out.println(Integer.MIN_VALUE);
		//3.把字符串转整数--字符串的内容必须看着就像数值
		String s = "123";
		int n = Integer.parseInt(s);
		System.out.println(n);
		//4.整数转字符串
		int m = 234;
		String s2 = m+"";
		System.out.println(s2);
3Integer跟int值的区别
Intege有属性,有方法
在java中所有的引用类型都可以赋null值,null表示空的意思
Integerint多一个值null
4自动装箱和自动拆箱
自动装箱
    自动把int类型的数字转换成Integer,该过程自动调用valueOf(int i) 
    int a = 100;
    Integer b = a; 等价于 Integer b = Integer.valueOf(100) 
自动拆箱
    自动把Integer类型的数字转换成int,该过程自动调用 intValue()
	Integer n = 20;
	int num = n;//该过程等价于int num = n.intValue();
5.案例

分析下面代码的运行结果

		Integer i = 10;
	    Integer j = 10;
	    //1--==作用于引用数据类型比较的是内存地址,因为i和j的内存地址相等,结果为true
	    System.out.println(i == j);
	    Integer a = 128;
	    Integer b = 128;
	    //2--a,b代表不同的对象,a,b存储的内存地址不同等,结果为false
	    System.out.println(a == b);

	    int k = 10;
	    //3--变量i会自动拆箱转换为int类型,然后比较值
	    System.out.println(k == i);
	    int kk = 128;
	    //4--变量a会自动拆箱,转换为int类型,然后比较值
	    System.out.println(kk == a);

	    Integer m = new Integer(10);
	    Integer n = new Integer(10);
	    //5
	    System.out.println(m == n);
	    //6包装类对Object类的equals方法进行了重写,重写后equals方法用来比较值
	    System.out.println(a.equals(b));

总结

    1.当 i >= -128 并且 i <= 127 的时候,直接从缓存中把值取出来赋值给变量。那么第一个打印结果因为 i = 10 在缓存表示的范围内,所以为 true2.从上面的分析我们知道,128是不在-128127之间的,所以第一次创建新的Integer对象,第二次也创建了一个新的Integer对象。故打印结果为false
	3.基本数据类型跟包装类型比较,直接比较值
	4.基本数据类型跟包装类型比较,直接比较值
	5.new出来的都是新对象
	
	总结:Integer类重写了equals方法,重写后的作用是用来比较2Integer类型变量的值
	比较引用数据类型变量的值,使用equals

3、String(*)

1、获取方法

方法说明
int length()获取字符串的长度(*)
char charAt(int index)获取指定位置的字符(index 下标 )
int indexOf(String str)获取指定字符首次出现的位置
int lastIndexOf(String str)获取指定字符最后一次出现的位置
		String s = "hello";
		/**
		 * 一.获取方法
		 */
		//1、获取长度
		int len = s.length();
		System.out.println("字符串的长度为:"+len);
		//2.获取指定下标位置的字符(字符串中的每个字符都有下标,下标从0开始)
		char c = s.charAt(4);
		System.out.println(c);
		//3.获取指定字符首次出现的下标
		int index = s.indexOf("l");
		System.out.println(index);

2、判断方法(*)

方法说明
boolean endswith(String str)测试此字符串是否以指定的后缀结束
boolena isEmpty()字符串长度是否为0 jdk1.6新特性
boolean contains(CharSequences s)是否包含指定值 应用:搜索
boolean equals(Object objec)判断两个字符串值是否相等
boolean equalsIgnoreCase(String str)忽略大小写是否相等
startsWith(String prefix)测试此字符串是否以指定的前缀开始。
		/**
		 * 二.判断方法
		 */
		//1.equals
		String s1 = "world";
		boolean r1 = s1.equals(s);
		System.out.println(r1);
		
		String s2 = "www.woniuxy.com";
		//2.判断字符串是否以指定的后缀结束
		boolean r2 = s2.endsWith(".com");
		System.out.println(r2);
		//3.判断字符串是否为空--判断长度
		String s3 = "";
		boolean r3 = s3.isEmpty();
		System.out.println(r3);
		//4.判断字符串是否包含指定的值
		boolean r4 = s2.contains("wo");
		System.out.println(r4);
		//5.比较两个字符串是否相等,并忽略大小写
		String s4 = "WWW.WoniuXy.Com";
		boolean r5 = s4.equalsIgnoreCase(s2);
		System.out.println(r5);
		//6.判断字符串是否以指定的内容开头
		boolean r6 = s2.startsWith("www.");
		System.out.println(r6);

3、转换方法

方法说明
String toUpperCase()小写转大写
String toLowerCase()大写转小写
char[] toCharArray()将字符串转换为字符数组
new String(char[] array)将字符数组转为字符串
		/**
		 * 三.转换
		 */
		String s5 = "Hello";
		//1.小写转大写
		String newS1 = s5.toUpperCase();
		System.out.println(newS1);
		//2.大写转小写
		String newS2 = s5.toLowerCase();
		System.out.println(newS2);
		//3.字符串转字符数组
		char[] arr = s5.toCharArray();
		//字符数组可以直接打印
		for (int i = 0; i < arr.length; i++) {
			System.out.println(arr[i]);
		}
		//4.字符数组转字符串
		String newStr = new String(arr);
		System.out.println(newStr);

4、其他方法(*)

方法说明
String replace(char oldChar, char newChar)使用指定的值替换替换此字符串所有匹配的字符
String[] split(String regex)根据指定字符将字符串切割为数组
String substring(int beginIndex)从指定位置截取到最后
String substring(int beginIndex, int endIndex)截取指定长度的字符串
String trim()去除字符串首尾空格
		/**
		 * 四.其它方法
		 */
		String str = "woniuxy";
		//1.替换--被替换的内容,替换后的内容
		String newStr1 = str.replace("woniu", "***");
		System.out.println(newStr1);
		//2.切割(注意,不能对点和*进行切割)
		String str2 = "aa-bb-cc-dd";
		String[] arr2 = str2.split("-");
		for (int i = 0; i < arr2.length; i++) {
			System.out.println(arr2[i]);
		}
		//3.截取
		String s6 = "www.woniuxy.com";
		//a.从指定下标截取到字符串末尾
		String newS6 = s6.substring(3);
		System.out.println(newS6);
		//b.指定截取的下标区间--不包含结束下标
		String newS7 = s6.substring(3, 7);
		System.out.println(newS7);
		//4去除字符串的首尾空格
		String s7 = "  aaa   bbb  cc   ";
		String newS8 = s7.trim();
		System.out.println(newS8);
		//5.去除字符串的所有空格
		String newS9 = s7.replace(" ", "");
		System.out.println(newS9);

5.字符串的遍历

		/**
		 * 	字符串的遍历
		 */
		String str8 = "www.woniuxy.com";
		//方式一
		for(int i=0;i<str8.length();i++) {
			char b = str8.charAt(i);
			System.out.println(b);
		}
		
		System.out.println("----------------------");
		//方式二
		char[] arr3 = str8.toCharArray();
		for (int i = 0; i < arr3.length; i++) {
			System.out.println(arr3[i]);
		}

6、补充

String类是被final修饰的类,不可以被继承

在java中,所有的字符串字面值都看作是Stirng类的实例(对象),并且所有的字符串字面值都是常量。

1、比较字符串的值(*)
/**
 * String类被final修饰,不能有子类
 * 所有的字符串字面值,都看作String类的实例(对象)
 * 字符串的值是常量,在创建后不可更改
 * 字符串拼接一定会创建新对象
 */

		String s1 = "hello";
		String s2 = s1+"world";
		System.out.println(s2);
		
		
		String str1 = "Java 基础版";

		String str2 = new String();

		String str3 = new String("Java 高级版"); 
		System.out.println(str3);
		
		
		String st1 = "abc";
		String st2 = "abc";
		//==比较对象的内存地址
		System.out.println(st1 == st2);//st1,st2是同一个对象
		System.out.println("-------------------------");
		String st3 = new String("abc");//st3是new出来的,是一个新的对象
		System.out.println(st3 == st1);	

比较引用数据类型的值是否相等用equals

		//1.比较字符串的值是否相等--String类重写了Object类的equals方法,用来比较字符串的值是否相等
		String s1 = "hello";
		String s2 = new String("hello");
		System.out.println(s1.equals(s2));
2、hashCode
		String s1 = "abc";
		String s2 = "abc";
		String s3 = new String("abc");
		
		System.out.println(s1 == s2);
		System.out.println(s1 == s3);
		
		
		System.out.println(s1.hashCode());
		System.out.println(s2.hashCode());
		System.out.println(s3.hashCode());
		
		String s4 = "Aa";
		String s5 = "BB";
		System.out.println("--------------------------");
		System.out.println(s4.hashCode());
		System.out.println(s5.hashCode());

		System.out.println(s1.equals(s3));	

4、Arrays

数组工具类型,可以让我们非常方便的去操作数组

		//创建数组
		int[] arr = {2,6,3,7,5};
		//1.数组复制(扩容)
		int[] newArr = Arrays.copyOf(arr, 10);
//		for (int i = 0; i < newArr.length; i++) {
//			System.out.println(newArr[i]);
//		}
		
		//2.数组排序--升序排序
		Arrays.sort(arr);
//		for (int i = 0; i < arr.length; i++) {
//			System.out.println(arr[i]);
//		}
		
		//3.数组查找--使用二分法去数组中查找元素,数组必须是升序的,结果是元素在数组中的下标,没找到结果为负数
		int index = Arrays.binarySearch(arr, 10);
		System.out.println(index);
		//4.数组转字符串
		//直接输出数组输出的是数组的内存地址
		System.out.println(arr);
		
		//返回指定数组内容的字符串表示形式。
		System.out.println(Arrays.toString(arr));

5、Math 类

Math执行基本数学运算的方法。

		//1.PI
		System.out.println(Math.PI);
		//2.取绝对值-
		int n1 = Math.abs(-123);
		System.out.println(n1);
		//3.向上取整
		double n2 = Math.ceil(3.3);
		System.out.println(n2);
		//4.向下取整
		double n3 = Math.floor(3.6);
		System.out.println(n3);
		//5.四舍五入
		long n4 = Math.round(3.49);
		System.out.println(n4);
		//6.随机数  0<=Math.random()<1
		//生成1-10之间的整数
		double n5 = (int)(Math.random()*10)+1;
		System.out.println(n5);
		
		//7.求m的n次方
		double n6 = Math.pow(2, 3);
		System.out.println(n6);

6、UUID

表示通用唯一标识符

		/**
		 * UUID
		 * 	生成32位随机字符串
		 */
		String uuid = UUID.randomUUID().toString();
		System.out.println(uuid);

7、Random

		//创建Random对象
		Random random = new Random();
		//生成0-10之间的随机整数,不包含10
		int n = random.nextInt(10);
		System.out.println(n);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值