学习myDay12包装类与常用类

Day12复习(内部类)

内部类分类
	成员内部类
		创建对象方式:
			1.先创建外部类对象
			2.内部类名  对象名 = 外部类对象名.new 内部类构造函数(实参列表);
	静态内部类
		创建对象方式:
			内部类名 对象名 = 外部类类名.new 内部类构造函数(实参列表);
	局部内部类
		内部类类名 对象名 =  new 内部类构造函数(实参列表);
		只能在定义的方法中创建对象;
	匿名内部类
		没有类名
		定义位置 值或实参中
		作用: 简化代码
		创建对象过程
			父类名/父接口名 对象名 = new 父类名/父接口名(){
				所有重写的方法;
				其他;
			}

Day12包装类与常用类

八大数据类型及其包装类:
 字节长度   数据类型	   对应包装类
   1        byte		Byte
   2        short		Short
   4        int			Integer
   8        long		Long
   2        float		Float
   4        double		Double
   1        boolean		Boolean
   2        char		Character

数据类型转换:
	字符串转换为int:
		int 转换后的数字的变量名 = Integer.parseInt(字符串);
	将字符串转换为double
		double 转换后的数字的变量名 = Double.parseDouble(字符串);
	将字符串转换为布尔
		boolean 转换后的数字的变量名 = Boolean.parseboolean(字符串);
	将各种类型传换为字符串
		String 变量名 = "" + 其他类型的数据;
System:
	属性
	in	输入
	out	正常输出
	err 错误输出
	提供的方法:
	ArrayCopy(原数组,拷贝开始位置,目标数组,复制开始位置,拷贝数组长度);
	
	
	System.currentTimeMillis()
		获取1970年1月1日00:00:00(格林威治时间)到现在的毫秒值
			常用与判断程序运行时间
			程序运行结束时毫秒值 - 程序运行开始前毫秒
	System.exit(0);
			退出当前程序
			0:表示正常退出
			其他:非正常退出
	System.gc();
		手动调用垃圾回收机制
		
Scanner
	键盘输入,获取值
	new Scanner(System.in)
	next();
	nextInt();
Random
	随机数
	next(最大值); 0~最大值-1;
	
Arrays
数组操作工具类
	sort(数组):排序
	toString:将数组转换为特点格式的字符串
Object
	所有类的父类 
		1.类对象可以转换为Object的对象
		2.Object提供的方法所有对象都有的方法
		
		Object object = new Object();
		object.equals("");//比较是否相同
		//object提供的方法是比较对象内存地址是否相同;
				/**
				 * 1.判断两个对象内存地址是否相同,
				 * 若相同,是 同一个对象,属性值也相同
				 * 2.判断传入的对象与调用equals方法的对象是否同一个类的对象.
				 * 		如果是,将传入的对象,转换为该类对象
				 * 		使用转换后的对象的属性与调用equals方法的对象一一对比
				 * 		如果属性值都相同,认为相同
				 * 3.返回不相同;
				 * 
				 * 
				 */
			@Override
                    public boolean equals(Object obj) {
                        // TODO Auto-generated method stub
                        if (this == obj) {
                            return true;
                        }

                        if (obj instanceof Person) {
                            Person person = (Person)obj;
                            if (this.name.equals(person.name) && 
                                    this.age == person.age && 
                                    this.sex.equals(person.sex)) {
                                return true;
                            }
                        }

                        return false;
                    }
                    
		Class<? extends Object> class1 = object.getClass();
		object.hashCode();//获取对象的hash码值,如果不重写,可以理解为堆内存中的地址
		fianlize();//回收该对象回所占内存地址时调用.final,fianlly.
		
		object.toString();//将对象转换为字符串
		//打印对象是,默认调用对象toString()方法;

BigDecimal (精准计算)
	eg:
		BigDecimal money1 = new BigDecimal(0.1+"");
		BigDecimal money2 = new BigDecimal(0.01+"");
		//创建该对象时传入字符串
		money1.add(money2);//加
		money1.subtract(money2);//减
		money1.multiply(money2);//乘
		money1.divide(money2);//除
		//doubleValue()转换为double的数据;
		
		double doubleValue = money1.doubleValue();

		

字符串相关:

	可变字符:
		StringBuffer
			1.线程安全的
			2.jdk1.0出现
			3.效率低
		StringBuilder
			1.线程不安全的
			2.jdk1.5出现
			3.效率高
	
		方法:
			append(被添加的字符串):添加到尾部
			delete()
			insert()
		大量(大于10000)修改,时使用可变字符串
	
			
建议使用可变字符串进行大量修改

将不可变字符串转变为可变字符串
String str = "kkk";
StringBuffter sb = new StringBuffer(str);
StringBuilder sb = new StringBuilder(str);
将可变字符串转变为不可变字符串
sb.toString();

String 不可变字符

String
			增
				+ 字符串连接
		
		String  str= "abcdef";
		String  str1 = "c";

			/*
			 * 查询方法	
			 */
				str.contains(str1);//判断str中是否(包含)存在str1
				str.indexOf(str1);//查询str1是否在str中存在的位置,返回值为-1(不存在).存在,返回str1中第一个字符出现的位置
				str.lastIndexOf(str1);//查询str1在str中最后一次出现的位置.-1为不存在
				
				str.charAt(0);//获取指定位置下的字符
				str.length();//获取字符串长度;
			/*
			 * 比较
			 */
				str.equals(str1);//不忽略大小写比较是否相同
				str.equalsIgnoreCase(str1);//忽略大小写比较是否相同str.
			/*
			 * 转换大小写字母
			 */
				str.toUpperCase();//把字符中的小写字母全部变成大写字母
				str.toLowerCase();//把字符中的大写字母全部变成小写字
			/*
			 * 转换数组
			 */	
				str.toCharArray();//将字符串str转换为char数组
				str.getBytes();//将str字符串转换成byte数组
				
			/*
			 * 判断字符串开始,结束
			 */
				str.endsWith(str1);//判断字符串是否以str1结尾
				str.startsWith(str1);//判断字符串是否以str1开始
			/*
			 * 切割	
			 */
				String regex = ",";
				str.split(regex);//以什么(,)字符串切割
				
			/*
			 * 截取	
			 */
				str.substring(beginIndex);//开始位置到字符串结尾
				str.substring(beginIndex, endIndex);//开始位置到结束位置(不包含endIndex的值)
				str.substring(2);//截取字符串,从2开始到末尾
				str.substring(1,3);//截取字符串,下标从1开始,3结束(不包含3)
				
			/*
			 * 替换	
			 */
				//返回值为替换后的字符串
				str.replace(oldChar, newChar)//oldChar(要被替换的字符串), newChar(新的字符串);
				str.replace("a", "z");//替换字符(要替换的字符 , 替换后的字符)
				
			/*
			 * null :空
			 * 	""  :空字符串
			 */	
				//使用null调用方法,空指针异常;
				str.isEmpty();//判断是否为空字符串;
			/*
			 * 忽略字符串前后空白
			 */
				str.trim();//字符串前后空白
				
				

时间相关

Date 时间(年月日时分秒)
		//获取当前系统时间
		Date date = new Date();
		
		//获取距离1970年1月1日00:00:00(格林威治时间)1000毫秒值
		Date date1 = new Date(1000l);
		date.getTime();
		date.after(date1);
		date.before(date1);
Calendar 日历
		
		calendar.set(Calendar.YEAR, 2000);
		calendar.set(Calendar.MONTH, 2);
		calendar.set(Calendar.DAY_OF_MONTH, 20);
		calendar.set(Calendar.HOUR_OF_DAY, 13);
		calendar.set(Calendar.MINUTE, 14);
		calendar.set(Calendar.SECOND, 56);
		calendar.set(Calendar.MILLISECOND, 521);
		
		System.out.println(calendar);
		calendar.get(calendar.YEAR);
		
		//将calendar对象转换为Date对象
		Date date = calendar.getTime();
		
		
simpleDateFormat(时间格式化)

	SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss:SSS");
	
Date date = new Date();
		
		/**
		 * 格式要求:
		 * y:年
		 * M:月
		 * d:日
		 * H:小时24
		 * h:小时12
		 * m:分钟
		 * s:秒
		 * SS:毫秒
		 */
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss:SSS");
		
		String time = sdf.format(date);
		System.out.println(time);
		
		String str = "2022/10/10 16:06:55:347";
		Date date2 = sdf.parse(str);
		
		System.out.println(date2);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值