java基础:常用类的常用方法(学习笔记)

目录

包装类

数学类 

时间类型   String  -- 第一阶段的时间类型(jdk已弃用,不再维护了)

时间类型--第二阶段的时间类型 (可修改,不安全)

时间类型--第三阶段的时间类型

LocalDate

ISO_LOCAL_DATE

String类  

常用方法


包装类

Java为每一个基本数据类型都提供一个引用类型,这些引用类型就叫包装类。

    int age=0   ---   Integer i=new Integer(34); 或 Integer i1 = new Integer("123");

学习包装类的原因:

   1.默认值不同,基本数据类型的默认值没有办法证明不是真实值;

   2.集合  --替换--> 数组,集合只能存储引用数据变量。不能存储基本数据类型。

   3.包装类更符合面向对象思想。

所在包:java.lang

父类:java.lang.Number

接口:Serializable , Comparable < Integer >

属性:Integer.MAX_VALUE  ;Integer.MIN_VALUE

构造方法:  Integer(int value) ; Integer(String s)

方法: compare(int x, int y)

       compareTo(Integer anotherInteger) //比较+排序 0  1 -1

       equals(Object obj)

       parseInt(String s) 最常用: 把一个字符串转成int 变量

方法:

.compareTo():比较+排序 输出的有0,1,-1;0是一样,1是在前,-1是在后。

其实相当于:i1比新建的Integer大就输出1,小就输出-1,相等就输出0。

.equals ():判断i1的对象是否与新建的Integer( )的对象相等

相等就输出true,不相等就输出false。

.parseInt ():将字符串参数解析为有符号的十进制整数

可以做算数运算

自动拆装箱

Integer i3 = 9;

System.out.println(i2*3);

  ↓程序自动进行  拆装箱----对out里的对应字节码文件进行反编译

Integer i3 = Integer.valueOf(9); //装箱

System.out.println(i3.intValue() * 3); //拆箱  输出:27

BigInteger:超级超级大的数 eg:100,000,000,000,000,000,000

加(合) .add    减(差) .substract    乘(积) .multiply    除(商) .divide

BigDecimal:小数点后超多位精度的小数  eg:123.4567890123456789012345

加(合) .add   减(差) .substract   乘(积) .multiply  

除(商) -- 需要写计算法则:  被除数.divide(除数,保留小数点位数,提供的出发计算法则)

数学类 

import java.lang.Math;

随机数:random()是Double类型的,如果要整数必须进行强制类型转换,区间是[0.0,1.0)

int number = (int)(Math.random()*31+20);   -->  [20,50]之间的随机整数

random其实是伪随机

括号里面的参数是随机种子,种子相同产生的随机数相同(种子是long类型的)

同一个种子输出的随机数是按固定顺序的

第一个random和第一个random1,第二个random和第二个random1,第三个random和第三个random1...都是一样的,只是每次的random都互不相同。

时间类型   String  -- 第一阶段的时间类型(jdk已弃用,不再维护了)

java.util.Date  无参有参都有   

Date dt = new Date();  //无参:默认获得当前系统时间

Date dt1 = new Date(2025-1900 , 8-1, 7);  //有参:根据参数获得一个时间对象(可以继续加几点几分几秒)

拆开格式:

System.out.println("年:"+(1900+dt.getYear())); //万年历是从1900开始的

System.out.println("月:"+(1+dt.getMonth())); // 西方月份从0开始计算

System.out.println("日:"+dt.getDate());

System.out.println("小时:"+dt.getHours());

System.out.println("分钟:"+dt.getMinutes());

System.out.println("秒:"+dt.getSeconds());

System.out.println("星期:"+dt.getDay());

java.util.Date  没有无参构造                                     

java.sql.Date sdt = new java.sql.Date(125,7,1);   // 结果格式是yyyy-MM-dd

Date dt2 = new Date(125,7,1,14,1,56);  // 年份是从1900开始的,月份是从0开始的

时间格式工具类 SimpleDateFormat

改上面的dt1的格式:(只要日期可以写到yyyy-MM-dd)HH是24进制,hh是12进制

时间类型--第二阶段的时间类型 (可修改,不安全)

Calendar 日历类(抽象类)

两种创建方式:--- 结果会输出一长串

Calendar calendar = Calendar.getInstance();   //类名.调用方法 获得日历类对象

Calendar calendar1 = new GregorianCalendar();  // 这俩是当前系统时间

没有格式处理的工具类,存储时间信息多,jdk会维护

.YEAR     .MONTH     .DAY_OF_MONTH     .DAY_OF_YEAR     .HOUR_OF_DAY  .HOUR  

.DATE .DAY_OF_WEEK_IN_MONTH  有这天的周是这个月的第几周    

.WEEK_OF_MONTH     .WEEK_OF_YEAR  今年的第几周   

.AM_PM:上午返回0,下午返回1 ( .前面是对象名)

.get(Chalendar.YEAR/MONTH...)  获得指定的时间部分信息(月份需+1)

.add.get(Chalendar.YEAR/MONTH..., +1)  添加/减少 指定的时间部分

↑ calendar的月份是8,但是是第7个月份,+1出来的是8月,-1出来的是6月

.set(year, month, date [, hourOfDay, minute, second] )  重新设置时间(月*)

.getActualMaximun(Calendar.DATE )  这个月一共有几天

转换方法:String(字符串) --转成-- Calendar(日历类型)

缺点:可变性--时间应该是不可变的

时间类型--第三阶段的时间类型

LocalDate

LocalDate ld = LocalDate.now();  // 默认获得系统时间(格式:yyyy-MM-dd)

LocalDate of = LocalDate.of(2025, 9, 27);  // 自定义时间(不能加具体几点)

System.out.println(of.getDayOfWeek());  // 看这天是星期几 ---> 输出:SATURDAY

格式工具类  DateTimeFormatter

DateTimeFormatter dtf = DateTimeFormatter.ISO_LOCAL_DATE;

System.out.println(dtf.format(of));

ISO_LOCAL_DATE

是DateTimeFormatter类的一个预定义常量,它表示ISO-8601标准的本地日期格式,即"yyyy-MM-dd"。这个格式化器不包含时间部分,只处理日期(年、月、日)。

它是线程安全的,可以定义为静态常量重复使用。

如果输入字符串不符合格式(比如缺少月份或日期),解析时会抛出DateTimeParseException。


String类  

字符串:底层就是char[]

一个内存地址 对应一个信息值; 一个内存地址对应多个信息值

String [不可变]  StringBuffer 线程安全的,效率低 [可变]  StringBuilder 不安全的,效率高 [可变]

String str1  = new String("\t879865 AaBbCcD\t"); --->空格\t和” ”都算一个字符

常用方法

.substring( beginindex )  截取:从输入的下表开始截取,到最后(新产生一个字符串)

.substring( 开始下标 , 结束下标-1 ) 

截取:从输入的第一个下标开始截取,到输入的第二个下标-1 (前包后不包)

.concat( str ) 拼接    

Arrays.toString( 数组 )  将 数组 转换为可读的 字符串 表示形式

.toCharArray() 将 字符串 转换为一个新的 字符数组 (字符串中的每个字都是数组的一个元素)

.equals()  String类重写了equals方法,它比较的是两个字符串的内容(字符序列)是否完全相同

完全相同就返true,不完全相同就返false

.lastIndexOf( str )  //查找参数所在的位置(从后往前找) ,输出下标

.IndexOf( str )  //查找参数所在的位置(找),输出下标

如果两个结果一样,说明只有一个该参数,不一样就是有两个或以上

.isEmpty()  //判断是否是字符串? true:空    false:非空

.length()  //获得长度

String strtime = "2025-12-12";   //从控制台接收一个yyyy-MM-dd字符串,为java.sql.Date赋值

年份是从1900开始的,所以得-1900;月份的12表示第十三个月,所以输出了下一年的一月

.replace( target, replacement ) //替换

.charAt( index ) // 输出index下标所对应的字符

.contains( str )  //判断这段字符串里有没有输入的字符串,有是true,没有是false

.trim()  去除字符串两端的空白字符(如空格、制表符、换行符等),并返回处理后的字符串。

如果字符串两端没有空白字符,则返回原字符串本身。

.endsWith( String )   //前面的字符串是否以后面的字符串结束

.startsWith( String )  //前面的字符串是否以后面的字符串开始

String str3 = new String("\t8");

.toLowerCase()   //所有字符换成小写

.toUpperCase()   //所有字符换成大写

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值