java object转date6_JAVASE-API(Object/String/包装类/Date)+进制

本文详细介绍了Java中Object类的基本方法,如equals、hashCode和toString,以及String类的操作,如concat、startsWith和trim。此外,还讲解了包装类的特点和Integer的自动装箱、拆箱。进一步讨论了Date类的使用,包括获取日期和时间的方法,以及SimpleDateFormat的日期格式化。最后,提到了BigDecimal和BigInteger用于精确计算,以及进制转换的概念和方法。
摘要由CSDN通过智能技术生成

1 Object

概述:

所有对象的顶级父类

存在于java.lang包中,这个包不需要我们手动导包

创建对象:

构造方法用来创建对象new Object( );

常用方法:protected Object clone() 创建并返回此对象的一个副本。

boolean equals(Object obj) 指示其他某个对象是否与此对象“相等”。

protected void finalize() 当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。

Class> getClass() 返回此 Object 的运行时类。

int hashCode() 返回该对象的哈希码值。

void notify() 唤醒在此对象监视器上等待的单个线程。

//唤醒一个wait的线程,重新抢锁执行

void notifyAll() 唤醒在此对象监视器上等待的所有线程。

String toString() 返回该对象的字符串表示。

void wait() 在其他线程调用此对象的 notify() 方法或 notifyAll() 方法前,导致当前线程等待。

//挂起当前线程,释放获取到的锁

void wait(long timeout) 在其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或者超过指定的时间量前,导致当前线程等待。

void wait(long timeout, int nanos) 在其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或者其他某个线程中断当前线程,或者已超过某个实际时间量前,导致当前线程等待。

总结:

1,Object是所有类的 超类/父类/基类

2,toString()--用来展示对象的字符串--重写前展示地址值--重写后展示属性值

3,equals()--比较两个对象是否相等--重写前比地址值--重写后比属性值

2 String

概述:

字符串底层维护了一个char[]。

特点:

1,是一个封装的数组对象

2,长度不可变,是个被final修饰的常量。

f3a535fdc0faedfa248dd499b22fd397.png

创建对象://1,创建String对象--String(char[] value)

//方法1:

char[] a=new char[]{'a','b'};

String s = new String(a);

//方法2:

String s2 = "abc";//相当于简写方式

常用方法:String s2 = "abc";

//调用方法

System.out.println(s2.charAt(2));//c,根据下标,获取对应的字符

System.out.println(s2.concat("zx"));//abczx,在后面拼接字符串

System.out.println(s2.endsWith("c"));//true,判断结尾

System.out.println(s2.equals("abc"));//true,equals()在String类中已重写,判断两个字符串的内容是否相同

System.out.println(s2.hashCode());//96354,

System.out.println(s2.indexOf("a"));//0,获取第一次出现的索引值

System.out.println(s2.lastIndexOf("a"));//0

System.out.println(s2.isEmpty());//false,当且仅当 length() 为 0 时返回 true。

System.out.println(s2.length());//3,长度

System.out.println(s2.replace("a","d"));//dbc,旧字符换成新字符

System.out.println(s2.startsWith("ab"));//true,判断是否以指定内容开始

System.out.println(s2.substring(1));//bc,从1下标开始向后截取

System.out.println(s2.substring(0,2));//ab,从0下标开始,到2下标结束,包含0下标,不包含2下标,含头不含尾

System.out.println(s2.toLowerCase());//abc,全转为小写

System.out.println(s2.toUpperCase());//ABC,全转为大写

s2=" abc 1 23 ";

System.out.println(s2.trim());//abc 1 23,返回字符串副本,忽略前后的空格

// static String ,,valueOf(int i)// 返回 int 参数的字符串表示形式。

System.out.println(String.valueOf(123)+10);//12310,返回 int 参数的字符串表示形式。

// char[] ,,,toCharArray() //将此字符串转换为一个新的字符数组。

char[] ss = s2.toCharArray();

System.out.println(ss);// abc 1 23 ,将此字符串转换为一个新的字符数组。

// byte[],,, getBytes() //使用平台的默认字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中。

byte[] bs = s2.getBytes();

System.out.println(Arrays.toString(bs));

// String[] ,,,split(String regex) // 根据给定正则表达式的匹配拆分此字符串。

s2="a1b1c1";

String[] ss1 = s2.split("1");//按照指定的字符串切割,放入数组

System.out.println(Arrays.toString(ss1));//[a, b, c]

StringBuilder/StringBuffer:

概述:一个可变的字符序列。

特点:

1、 封装了char[]数组

2、 是可变的字符序列

3、 提供了一组可以对字符内容修改的方法

4、 常用append()来代替字符串做字符串连接

5、 内部字符数组默认初始容量是16:initial capacity of 16 characters

6、 如果大于16会尝试将扩容,新数组大小原来的变成2倍+2,容量如果还不够,直接扩充到需要的容量大小。int newCapacity = value.length * 2 + 2;

7、 StringBuffer 1.0出道线程安全,StringBuilder1.5出道线程不安全

创建对象:StringBuilder()

构造一个不带任何字符的字符串生成器,其初始容量为 16 个字符。

常用方法append(String str)

将指定的字符串追加到此字符序列。

3 包装类

为对应的基本类型,提供丰富的功能。

3039eee03f56764d2576def0f6496c2d.png

3.1 Number类

概述:

是所有数字类型(前6个)包装类的抽象父类,不能new

特点:

1,抽象父类

2,继承Object类

共性方法:

可以把包装类转换成基本类型byte byteValue() 以 byte 形式返回指定的数值。

abstract double doubleValue() 以 double 形式返回指定的数值。

abstract float floatValue() 以 float 形式返回指定的数值。

abstract int intValue() 以 int 形式返回指定的数值。

abstract long longValue() 以 long 形式返回指定的数值。

short shortValue() 以 short 形式返回指定的数值。

3.2 Integer类

概述:

包装了一个基本类型int的值。

创建对象:Integer(int value)

构造一个新分配的 Integer 对象,它表示指定的 int 值。

Integer(String s)

构造一个新分配的 Integer 对象,它表示 String 参数所指示的 int 值。

static Integer--- valueOf(int i)

返回一个表示指定的 int 值的 Integer 实例。

高效-----相同数据不再开辟空间存储,超出范围不高效了

范围-----大小为基本类型的范围

常用方法:int ----intValue() 以 int 类型返回该 Integer 的值。

static int ----parseInt(String s) 将字符串参数作为有符号的十进制整数进行解析。

总结:

//1,包装类的作用,为对应的基本类型,提供丰富的方法

//2,自动装箱:把基本类型 包装 成包装类型

//3,自动拆箱:把包装类型 变回成 基本类型

//4,自动装箱有两种方式:构造方法创建对象+静态方法创建对象(高效,推荐)//1,创建方法

Double d= new Double (1.1);//--------------自动装箱,,把基本类型包装成包装类型

//高效,,相同数据不再开辟空间存储-128--127,底层已有

Double d2 = Double.valueOf(1.1);

System.out.println(d2);//1.1

//2,调用方法

double m = d.doubleValue();//---------------自动拆箱,,把包装类型拆成基本类型

double m1 = Double.parseDouble("1.1");//将字符串的数字转化为基本类型的数字,以10进制进行解析

System.out.println(m1);//1.1

4 Date

4.1 Date

概述:

存在于java.util.Date包。

用来封装一个毫秒值表示一个精确的时间点。

从1970-1-1 0点开始的毫秒值。

创建对象:new Date()

分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒)

常用方法://创建对象

//Date() 分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒)。

Date date = new Date();//表示当前时刻

//调用方法

System.out.println(date.getDate());//15 今天是多少号

System.out.println(date.getDay());//6 今天是星期几

System.out.println(date.getHours());//11 现在是几点

System.out.println(date.getMinutes());//53 现在多少分钟

System.out.println(date.getMonth()+1);//7 现在是几月,,,,月-1,,,使用的时候记得+1

System.out.println(date.getSeconds());//25 现在是多少秒

System.out.println(date.getTime());//1597463605634 返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。

System.out.println(date.getYear());//120 从1900年到现在多少年

System.out.println(date.toLocaleString() );//2020-8-15 11:58:06 现在的是时刻

4.2 日期工具类SimpleDateFormat

概述:

日期格式化工具,可以把Date对象格式化成字符串,也可以日期字符串解析成Date对象。

创建对象:SimpleDateFormat(String pattern)

用给定的模式和默认语言环境的日期格式符号构造 SimpleDateFormat。

常用方法:String---- format(Date date)

//将给定的 Date 格式化为日期/时间字符串,并将结果添加到给定的String。

//Date --- String

Date---- parse(String text)

//解析字符串的文本,生成 Date。

//String --- Date

测试://1,创建对象--参数是日期的格式----年y-月M-日d

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

String str =sdf.format(new Date());//Date--String

System.out.println(str);//2020-11-06

Date d = sdf.parse(str);//String--Date

System.out.println(d.getMonth()+1);//11

5 BigDecimal/BigInteger

概述:

BigDecimal:常用来解决精确的浮点数运算。

BigInteger:常用来解决超大的整数运算。

创建对象:

BigDecimal(String val)

--推荐,String类型的运算不出错

常用方法:

add(BigDecimal bd): 做加法运算

substract(BigDecimal bd) : 做减法运算

multiply(BigDecimal bd) : 做乘法运算

divide(BigDecimal bd) : 做除法运算

divide(BigDecimal bd,保留位数,舍入方式):除不尽时使用

setScale(保留位数,舍入方式):同上

pow(int n):求数据的几次幂private static void method2() {

//接收两个小数

double a = new Scanner(System.in).nextDouble();

double b = new Scanner(System.in).nextDouble();

//创建对象

BigDecimal bd1 = new BigDecimal(String.valueOf(a));//触发含参构造BigDecimal(String val)----推荐

BigDecimal bd2 = new BigDecimal(b+"");

//做运算

System.out.println(bd1.add(bd2)); //加

System.out.println(bd1.subtract(bd2)); //减

System.out.println(bd1.multiply(bd2)); //乘

// System.out.println(bd1.divide(bd2)); //除 ---除不尽时--java.lang.ArithmeticException

//重载divide(x,y,z)--x是要参与运算的对象名称,y是要保留的小数位,z是舍入模式

System.out.println(bd1.divide(bd2, 5, BigDecimal.ROUND_HALF_UP));

}

6 进制

概念:

进制也就是进位计数制。

二进制:0和1,逢二进一,以0b开始

八进制:0-7,逢八进一,以0开始

十进制:0-9,逢十进一

16进制:0-9,abcdef,逢16进一,以0x开始

通常情况下,1byte=8个二进制位。

所以表示一个数字用二进制来表示的话就可以这样表示:0000 0000

把这8个位进行组合,每三位组合就形成了八进制,每四位组合就形成了十六进制。

进制的转换:

十进制转二进制:不断除以2商0为止,取余,倒着写。

把十进制11转成2进制:1011。

6f5bf021d99e9c9bf8ea7b15d0f2f25d.png

二进制转十进制:从低位次,每位乘以2的位次次幂 再求和。

计算二进制数据:0000 1101对应的十进制

4fd08bbb5e472dd2710ee2909b9b4116.png

二进制转八进制:从低位次开始,每三位为一组,产生一个八进制数字,最高位不足补零。

计算二进制数据110 0111对应的八进制

1ab965fbd38c4dab007f434e68f922e2.png

八进制转二进制:把一个数字转为3个数字,不足三位的,最高位补零。

计算八进制数据:023 0653对应的二进制数据

1b8b7f62ae50c7a556cd2ebb8172f818.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值