常用类

沉迷于学习,无法自拔
写这篇博客不知道为什么莫名的心累,哎╮(╯▽╰)╭

1、String

public class Test1 {

	public static void main(String[] args) {
		// String是个被final和private修饰的String类
		String s="ab";
		System.out.println(s);
		// 这是重新赋值,不是修改
		s="xx";
		System.out.println(s);
		System.out.println("----------");
		String s1 = "hello";
		String s2 = "hello";
		String s3 = new String("hello");
		// s1 与 s2存放位置是常量池
		System.out.println(s1 == s2);
		// new生成两个对象,一个在常量池,一个在堆
		// s3 存放位置是堆
		System.out.println(s1 == s3);
	}
}
public class Test2 {

	public static void main(String[] args) {
		// 常用方法
		byte[] byteArray = {97,98,99};
		// 对指定byte数组解码
		String s1 = new String(byteArray);
		System.out.println(s1);
		// 使用一个字符数组构建一个字符串
		char[] charArray1 = {'N','B','A'};
		String s2 = new String(charArray1);
		System.out.println(s2);
		// String(char[] value, int offset, int count) 
		//                     偏移值(下标)  长度
		char[] charArray2 = {'a','b','c','d','e'};
		String s3 = new String(charArray2,2,2);
		System.out.println(s3);
		System.out.println("----------");
		// 获取字符串长度
		int length = s3.length();
		System.out.println(length);
		System.out.println("----------");
		// 将字符串转为字符数组
		char[] arr = s3.toCharArray();
		for (char ch : arr) {
			System.out.println(ch);
		}
		System.out.println("----------");
		// 将字符串转为字节数组
		byte[] bytes = s2.getBytes();
		for (byte b : bytes) {
			System.out.println(b);
		}
		System.out.println("----------");
		String s4 = "hello";
		// 转为大写字母
		String upperCase = s4.toUpperCase();
		System.out.println(upperCase);
		// 转为小写字母
		String lowerCase = upperCase.toLowerCase();
		System.out.println(lowerCase);
		System.out.println("----------");
		// +号用于字符串与任意类型的连接,所有类型都会转为字符串
		System.out.println("hello "+10);
		System.out.println("----------");
		// 去掉字符串两边空格(注意:是两边)
		String s5 = "  z x  x   ";
		System.out.println(s5.length());
		String newString = s5.trim();
		System.out.println(newString);
		System.out.println(newString.length());
		System.out.println("----------");
		String s6 = "abc";
		String s7 = "ABC";
		// 比较字符串内容是否相同
		System.out.println(s6.equals(s7));
		// 比较字符串内容是否相同,忽略大小写
		System.out.println(s6.equalsIgnoreCase(s7));
		System.out.println("----------");
		String s8 = "ascvfgh";
		String s9 = "scvg";
		// 判断是否包含
		System.out.println(s8.contains(s9));
		System.out.println("----------");
		String s10 = "asc";
		String s11 = "fh";
		// 判断是否以……开头
		System.out.println(s8.startsWith(s10));
		// 判断是否以……结尾
		System.out.println(s8.endsWith(s11));
		System.out.println("----------");
		String s12 = " ";
		// 判断是否为空
		System.out.println(s12.isEmpty());
		System.out.println("----------");
		String s13 = "afgtrgteb";
		// 获取指定索引的字符
		char ch = s13.charAt(5);
		System.out.println(ch);
		char c = getCharByIndex(s13, 5);
		System.out.println(c);
		System.out.println("----------");
		// 返回指定字符串第一次出现的索引
		System.out.println(s13.indexOf('g'));
		// 返回指定字符串最后一次出现的索引
		System.out.println(s13.lastIndexOf('g'));
		// 指定字符串不存在返回-1
		System.out.println(s13.indexOf("ah"));
		System.out.println(s13.lastIndexOf("gt"));
		System.out.println("----------");
		String s14 = "abcdscd";
		// 用后一个字符串(*)替换前一个字符串(c)
		String string = s14.replace('c', '*');
		System.out.println(string);
		System.out.println("----------");
		// 截取子串,包括开始,不包括结尾
		string = s14.substring(2,5);
		System.out.println(string);
		System.out.println("----------");
		// 按字典顺序比较两个字符串,返回int类型
		String s15 = "abc";
		String s16 = "abd";
		System.out.println(s15.compareTo(s16));
		System.out.println("----------");
		// 按指定字符串进行分割
		String s17 = "ax-dg-sfd";
		String[] array = s17.split("-");
		for (String str : array) {
			System.out.println(str);
		}
		System.out.println("----------");
		// 将其他类型转换成字符串
		int number = 9527;
		String str = String.valueOf(number);
		System.out.println(str);
		double d = 2.3;
		str = String.valueOf(d);
		System.out.println(str);
		System.out.println(String.valueOf(false));
		char[] chs = {'n','b','a'};
		str = String.valueOf(chs);
		System.out.println(str);
	}
	public static char getCharByIndex(String string,int index) {
		char c = ' ';
		if(index>=0&&index<string.length()) {
			c = string.charAt(index);
		}
		return c;
	}
}

2、StringBuffer

public class Test1 {

	public static void main(String[] args) {
		// 将参数以字符串形式添加,拼接成字符串
		StringBuffer stringBuffer = new StringBuffer();
		stringBuffer.append(69).append(" or ");
		stringBuffer.append("hello");
		System.out.println(stringBuffer);
		// 逆置、交换
		stringBuffer.reverse();
		System.out.println(stringBuffer);
		System.out.println(stringBuffer.toString());
		// 截取子串 ps:不会影响原字符串
		System.out.println(stringBuffer.substring(2, 4));
		// 删除指定位置的字符
		StringBuffer str = stringBuffer.deleteCharAt(1);
		System.out.println(str);
		// 删除一定范围的字符
		stringBuffer = new StringBuffer();
		stringBuffer.append("abcdef");
		StringBuffer delete = stringBuffer.delete(1, 3);
		System.out.println(delete);
		// 替换,将一定范围的字符进行替换
		stringBuffer = new StringBuffer();
		stringBuffer.append("abcdef");
		stringBuffer.replace(1, 3, "*");
		System.out.println(stringBuffer);
		// 在指定位置添加新的文本对象
		stringBuffer.insert(3, "xx");
		System.out.println(stringBuffer);
		// 长度
		System.out.println(stringBuffer.length());
		// 容量(默认缓冲区大小)
		System.out.println(stringBuffer.capacity());
		// 替换指定位置的字符
		stringBuffer.setCharAt(1, 'c');
		System.out.println(stringBuffer);	
	}
}

3、String、StringBuffer、StringBuilder比较

在这里插入图片描述

4、包装类

在这里插入图片描述

4.1、Integer部分方法

public class Test1 {

	public static void main(String[] args) {
		// 包装  int->Integer
		Integer integer = new Integer(9527);
		System.out.println(integer);
		// int的取值范围
		System.out.println(Integer.MAX_VALUE);
		System.out.println(Integer.MIN_VALUE);
		// 字符串转整数
		String string = "88";
		integer = Integer.valueOf(string);
		System.out.println(integer);
		System.out.println(integer.intValue());	
		System.out.println(Integer.parseInt(string));
		// 整数转字符串
		Integer integer2 = new Integer(9527);
		System.out.println(integer2.toString().length());
		// 二进制字符串
		System.out.println(Integer.toBinaryString(3));
		//十六进制字符串
		System.out.println(Integer.toHexString(3));
		//八进制字符串
		System.out.println(Integer.toOctalString(8));
	}
}

4.2、Character部分方法

public class Test2 {

	public static void main(String[] args) {
		Character character = new Character('a');
		char ch  = character.charValue();
		System.out.println(ch);
		// 是否是字母
		System.out.println(Character.isLetter(ch));
		// 是否是数字
		System.out.println(Character.isDigit(ch));
		// 是否是小写
		System.out.println(Character.isLowerCase(ch));
		// 是否是大写
		System.out.println(Character.isUpperCase(ch));
	}
}

4.3、自动装箱与自动拆箱

自动装箱是把一个基本数据类型直接赋给对应的包装类。
自动拆箱是把一个包装类对象直接赋给对应的基本数据类型。

public class Test3 {

	public static void main(String[] args) {
		Integer i = 1;// 自动装箱
		int j = i;// 自动拆箱
	}

5、BigDecimal

用于精确的表示和计算浮点数

public class Test2 {

	public static void main(String[] args) {
		double d1 = 0.1;
		double d2 = 0.2;
		double d3 = d1 + d2;
		System.out.println(d3);
		System.out.println("----------");
		// BigDecimal 高精度小数
		// 推荐:在构造时传入字符串类型的数字
		BigDecimal bigDecimal1 = new BigDecimal("0.1");
		BigDecimal bigDecimal2 = new BigDecimal("0.2");
		// 加、减、乘、除
		System.out.println(bigDecimal1.add(bigDecimal2));
		System.out.println(bigDecimal1.subtract(bigDecimal2));
		System.out.println(bigDecimal1.multiply(bigDecimal2));
		System.out.println(bigDecimal1.divide(bigDecimal2));
	}
}

6、Math

public class MathDemo {

	public static void main(String[] args) {
		// 取圆周率
		System.out.println(Math.PI);
		// 取绝对值
		System.out.println(Math.abs(-10));
		// 向上取整,结果是double类型
		System.out.println(Math.ceil(12.3));
		System.out.println(Math.ceil(12.99));
		// 向下取整,结果是double类型
		System.out.println(Math.floor(12.3));
		System.out.println(Math.floor(12.99));
		// 取两个值中的最大值
		System.out.println(Math.max(23,24));
		// 前面的数是底数,后面的数是指数
		System.out.println(Math.pow(2, 3));// 2.0^3.0
		// 0.0到1.0之间的随机数,[0.0,1.0)
		System.out.println(Math.random());
		// 四舍五入
		System.out.println(Math.round(12.49f));
		System.out.println(Math.round(12.9f));
		// 开平方
		System.out.println(Math.sqrt(4));
		System.out.println(Math.sqrt(2));
	}
}

7、Runtime

public class Test4 {

	public static void main(String[] args) {
		// 1970.1.1 0:0:0 到现在的毫秒数
		long time = System.currentTimeMillis();
		System.out.println(time);
		
		// 拷贝数组
		int[] array1 = {1,2,3,4,5};
		int[] array2 = new int[array1.length];
		// 从array1的下标0开始复制    到array2的小标0开始黏贴  复制的长度
		System.arraycopy(array1, 0, array2, 0, array1.length);
		for (int i : array2) {
			System.out.println(i);
		}
		// Runtime类主要描述应用程序运行的环境
		Runtime runtime = Runtime.getRuntime();
		// JVM最大内存容量(单位:字节)
		long maxMemory = runtime.maxMemory();
		// 可用内存数(单位:字节)
		long freeMemory = runtime.freeMemory();
		System.out.println(maxMemory);
		System.out.println(freeMemory);
	}
}

8、日期和时间

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

public class Test2 {

	public static void main(String[] args) {
		Date date = new Date();// 当前时间的Date对象
		System.out.println(date);
		String pattern = "yyyy年MM月dd日 kk时mm分ss秒";
		Locale locale = Locale.getDefault();
		SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern,locale);
		String time = simpleDateFormat.format(date);
		System.out.println(time);
	}
}

结果:
Mon Mar 15 21:54:32 CST 2021
20210315215432
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

public class Test3 {

	public static void main(String[] args) throws ParseException {
		String date = "2020年07月20日 15:04:42";
		String pattern = "yyyy年MM月dd日 HH:mm:ss";
		Locale locale = Locale.getDefault();
		SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern, locale);
		Date parse = simpleDateFormat.parse(date);
		System.out.println(parse);
	}
}

结果:
Mon Jul 20 15:04:42 CST 2020
import java.text.SimpleDateFormat;
import java.util.Locale;

public class Test4 {

	public static void main(String[] args) {
		String str="1566290810071";
		long time = Long.valueOf(str);
		System.out.println(time);
		String pattern = "yyyy年MM月dd日 HH:mm:ss";
		Locale locale = Locale.getDefault();
		SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern, locale);
		Long timeLong = new Long(time);
		String string = simpleDateFormat.format(timeLong);
		System.out.println(string);
	}
}

结果:(时间戳转字符串)
1566290810071
2019082016:46:50
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

public class Test4 {

	public static void main(String[] args) {
		String birthday = "1999-02-20";
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd",Locale.getDefault());
        Date date = simpleDateFormat.parse(birthday);
        System.out.println(date);
        long dateTime = date.getTime();
        System.out.println(dateTime);
	}
}

结果:
Sat Feb 20 00:00:00 CST 1999
919440000000

8.1、趣味题(出生至今多少天了?)

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Test7 {

	public static void main(String[] args) throws ParseException {
		String birthday = "1998-12-07";
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
        Date date = simpleDateFormat.parse(birthday);
        long dateTime = date.getTime();
        long timeMillis = System.currentTimeMillis();
        long time = (timeMillis - dateTime) / 1000 / 60 / 60 / 24;
        System.out.println("我已经在地球上已经待了 "+ time +" 天");
	}
}

9、枚举

public class Test5 {
	// 枚举,注意:枚举要编辑在main函数之前
	enum Seaason{
		SPRING,SUMMER,FALL,WINTER;
	}
	public static void main(String[] args) {
		System.out.println(Seaason.SPRING);//SPRING
		System.out.println(Seaason.WINTER);//WINTER
		System.out.println(Seaason.SPRING.ordinal());//0
		System.out.println(Seaason.FALL.ordinal());//2
		// 枚举在switch的使用
		Seaason s = Seaason.SUMMER;
		switch (s) {
		case SPRING:
			System.out.println("春天");
			break;
		case SUMMER:
			System.out.println("夏天");
			break;
		case FALL:
			System.out.println("秋天");
			break;
		case WINTER:
			System.out.println("冬天");
			break;
		default:
			System.out.println("error");
			break;
		}
	}
}

9.1细节

1.枚举是一个
2.枚举值默认修饰符:public static final
3.枚举类的构造方法默认修饰符:private
4.枚举值必须要位于枚举类的第一个语句

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值