Java学习笔记04(常用类)

Java中的常用类

String类和StringBuffer类

string类:在Java中,String类是final类型的,所以定义的String字符串是一个常量,一旦被创建就不能在被修改。若要对一个字符串进行修改,则必须在重新定义一个;

StringBuffer类:为了方便对字符串进行修改,jdk中提供了该类,也叫做,字符串缓冲区。StringBuffer类似于一个字符容器,可以对其进行操作,可以改变内容和长度;

用String定义的字符串都会存在于字符串常量池中,一旦被定义,就不能被修改;为了方便对字符串就行修改,有了StringBuffer类;

两类的区别:

  1. String不可变,StringBuffer可变;
  2. String类重写浏览equal()方法,而StringBuffer类没有重写;
  3. Sting对象可以用 + 进行拼接,StringBuffer不能‘;

拓展:StringBuilder类和StringBuffer类似,其所拥有的方法也基本相同,最大的不同是StringBuffer是线程安全的;

Math类

该类的构造方法为private的,所以无法创建Math对象,类中的所有方法都是静态的,还包括两个静态常量 PI 和 E ,( 表示 Π 和 e);

abs( ):求绝对值 sin();正弦 cos();余弦; tan();正切 sqrt();平方根 cbrt();立方根 pow(2,3); 乘方 2 的 3 次方;

Random类

有两个构造方法:

Random(){}//无参构造;
Random(long seeed){}//有参构造     通过有参构造创建的对象,若 seed相同,会生成相同的随机数;

Random 方法;

nextBoolean() 随机生成 boolean 类型的随机数; nextDouble(),nextFloat(),nextInt(),nextLong();

nextInt(int n ) 随机生成 【0,n】 之间 int 类型的随机数;

包装类

在Java中,有很多类中的方法都要接收引用类型的对象,此时基本类型的数据就无法传入,为了解决这个问题,JDK中提供了包装类,每个基本类型的值可以包装成引用数据类型;

除了 int 类型的 包装类为 Integer , char类型的 包装类 为 Character 外 ,其余 六种基本数据类型的 包装类名 与 基本数据类型一样(首字母大写)

基本数据类型和基本数据类型包装类之间可以进行自动转换,称为自动装箱和自动拆箱;

自动装箱:将基本数据类型的变量赋值给对应的基本数据包装类变量;

自动拆箱:将基本数据包装类变量赋值给对应的基本数据类型的变量;

其他方法进行 基本数据类型,基本数据包装类,字符串 之间的转换:

  1. 通过 String 中的 valueOf方法 可以将 八种基本数据类型 转化为 对用的字符串类型; 基本数据类型 -> 字符串类型;
  2. 通过各类中的 valueOf方法,可以将 基本数据类型 转化为 包装类, 也可将 字符串类型 转化为 包装类;(Character 除外, 它不能将String类型 转化为 Character包装类);
  3. 通过构造方法;(Character 除外, 它不能将String类型 转化为 Character包装类);
  4. 通过 8中包装类的静态方法 parseXxx() 可以将变量内容匹配的字符串 转化为 定义的基本数据类型;

除了 Character 外,其余的包装类都有 valueOf(String s) 和 parseXxx(String s) 方法;

时间和日期类

Date

两种构造方法:

  1. 无参构造 Date(), 创建当前日期时间 的 Date对象;
  2. 有参构造 Date(long date); 创建 指定的 日期时间Date对象,参数date表示 时间戳(1970年1月1号 毫秒数), System.currentTimeMillis 获得当前系统时间毫秒数;

Date类的功能已经被Calendar替代,由于没有考虑国际化的问题;

Calendar类

Calenadar是一个抽象类,不能实例化, 可以通过 调用 getInstance()静态方法得到 Calendar 对象;

Calendar calendar = Calendar.getInstance();  //得到 Calendar 对象;

该抽象类中 有一些 静态属性,表示当前的时间 YEAR,MONTH,DATE,HOUR,MINUTE,SECOND(表示年月日时分秒) 注意:月份的值为 0-11;

Calendar中的主要方法;

get 方法

int get (int field)// 返回指定日历的字段值;
int month = calendar.get(Calendar.MONTH) + 1;   // 与 Calendar.YEAR 搭配; 得到当前月份值

set 方法

void set(int filed , int value); //设置指定日历字段值
calendar.set(calendar.MONTH,8); 	//设置 calendar的MONTH 为 8;

void set(int year , int month , int date); //设置年月日
calendar.set(2021,5,10);

void set(int year,, int month , int date,int hour ,int minute , int second)//设置年月日时分秒

add 方法

void add (int filed , int amout)// 指定的日历字段 添加amount 时间量;
calendar.add(Calendar.MONTH,4);  // 月份 加 4 ;

JDK8又增加了一个java.time包,此包下有更多的时间日期操作类。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值