day12学习java

day12 笔记

一.StringBuffer
1.概念:线程安全的可变的字符序列,类似于string的缓冲区
		通过某些方法调用可以改变其序列长度和内容
		 append(boolean b) insert(int offset, boolean b) 
2.string和stringbuffer的区别:
		string不可以改变字符串  stringbuffer是可以改变的字符串长度可以变的,使用一
											个新得字符串来代替以前的字符串)
		string操作字符串的效率低  stringbuffer效率高  (sql拼接常常使用)
3.StringBuiler 与StringBuffer的区别:
		A.版本不一样
			StringBuiler1.5    StringBuffer1.0
		B.效率
			StringBuiler 效率低   StringBuffer 效率高
		C.线程安全性
			StringBuiler 安全性低  StringBuffer 安全性高

构造方法:

构造方法的名称构造方法的描述
public StringBuilder()实例化StringBuiler对象,初始化容量是16
public StringBuffer(int capacity)实例化StringBuffer对象 指定初始化容量对象
publi StringBuffer(string str)将string构建成一个stringbuffer对象 初始化长度是字符串长度+16

普通方法:

方法名称方法简述
public stringBuffer append(String s)在字符串末尾进行添加
public StringBuffer inser(int offset, String str)在字符串指定位置进行添加
public int capacity()获取StringBuffer的容量
public StringBuffer deletaCharAt(int index)根据索引来进行删除
public StringBuffer delete( int start ,int end)指定区间来进行删除
public StringBuffer reverse()控制反转

代码:

package com.qf.lt.oop02;

public class Test05 {
    public static void main(String[] args) {
        StringBuffer sb = new StringBuffer("张三");
        //末尾进行拼接
        sb.append("是一个法外狂徒");
        System.out.println(sb);
        //指定的索引进行删除
        sb.deleteCharAt(3);
        System.out.println(sb);
        //指定的区间进行删除
        sb.delete(5,sb.length());
        System.out.println(sb);

    }
}

StringBuffer与String的转换

1.StringBuffer转换为String
		调用toString()
		利用构造方法public String(StringBuffer  buffer)
2.String 转换 StringBuffer
		利用构造方法 publicStringBuffer(String str);
		调用方法 new StringBuffer().append("");fv

案例:
在这里插入图片描述

分析:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PYkeWdxJ-1642514972991)(C:/Users/%E6%82%B2%E9%99%8C/AppData/Roaming/Typora/typora-user-images/image-20220118184023295.png)]

代码:

package com.qf.lt.oop01;

public class Test01 {
    public static void main(String[] args) {
        int [] arrays ={0,1,2,3};

        StringBuffer sb=new StringBuffer();

        for (int i=0;i< arrays.length;i++){
            sb.append("a"+arrays[i]+",");
        }

        System.out.println(sb.append("["+"]"));
        System.out.println(sb.reverse());
    }
}

二.包装类
1.概念:将基本数据类型包装成引用数据类型   将基本数据类型封装成一个类
2.好处:
	A.包装类可以调用类的属性和方法
	B.集合中的泛型必须使用包装类
3.罗列:(重点)
	特点:
	A.包装类就是基本数据类型的首字母大int 以及char类型

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OxRViMzX-1642514972992)(C:/Users/%E6%82%B2%E9%99%8C/AppData/Roaming/Typora/typora-user-images/image-20220118184625854.png)]

三.BigDecimal
1.概念:不可变的,任意精度的有字符的十进制数

构造方法:

|
|
|
|
|

方法名称方法简述
public BigDecimal(double val)将double类型转换为BigDecimal
public BigDecimal(int val)将int 类型转换为BigDecimal
public BigDecimal(string str)将string类型转换为BigDecimal

常用的方法:

方法名称方法描述
public BigDecimal add(BigDecimal augend)加法
public BigDecimal divide(BigDecimal divisor,int scale, int roundingMode)除法
public BigDecimal multiply(BigDecimal multiply)乘法
public BigDecimal subtract (BigDecimal subtract)减法
public BigDecimal remaider(BigDecimal divisor)取余数

代码:

package com.qf.lt.oop02;

import java.math.BigDecimal;

public class Test {
    public static void main(String[] args) {
        BigDecimal big = new BigDecimal("123547128713874");
        System.out.println(big);

        BigDecimal big01 = new BigDecimal(15);
        BigDecimal big02 = new BigDecimal(7);
        //+
        System.out.println(big01.add(big02));
        //-
        System.out.println(big01.subtract(big02));
        //*
        System.out.println(big01.multiply(big02));
        //除
        System.out.println(big01.divide(big02,3,BigDecimal.ROUND_HALF_UP));
        //%
        System.out.println(big01.remainder(big02));

    }
}

四.Data
1.构造方法:A.public Data()  创建对象
	       B.public Data(long data)  创建一个毫秒值德Data对象
2.两个方法:A.public void setTime(long time)  设置此 Date 对象,以表示 1970 年 1 月 1 日 													00:00:00 GMT 以后time 毫秒的时间点
	       B.publi long getTime()  返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示                                      的毫秒数

代码:

package com.qf.demo02;

import java.util.Calendar;
import java.util.Date;

public class Test04 {
    public static void main(String[] args) {
        //使用 Calendar.getInstance来进行实例化对象的
        Calendar cal = Calendar.getInstance();

        //获取当前系统的年份Calender的get方法
        System.out.println(cal.get(Calendar.YEAR));

        //Calender的set方法,设置之后需要转换成Data对象才行
        cal.set(Calendar.YEAR,2021);
        Date time = cal.getTime();
        System.out.println(time);

        //Calender的setTime方法,也是设置时间,但是里面的又参数,参数是Data类型的
        //相比setTime()来说,getTime()方法是返回的是Data类型的数据


        //需要转换毫秒值的时候,需要使用Calender的getTime()方法,在使用Data的getTime()方法来进行转换

    }
}

五.calender
1.概念:Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历字段		之间的转换提供了一些方法
2.获取Calendar ==>Calendar rightNow = Calendar.getInstance();

常用的方法:

方法名称方法描述
public abstract void add(int field, intamount)根据日历的规则,为给定的日历字段添加或减去指定的时间量
public int get(int field)返回给定日历字段的值
public static Calendar getInstance()获取Calendar对象
public final Date getTime()将Calendar转换为Date对象
public void set(int field,int value)将给定的日历字段设置为给定值

代码:

package com.qf.lt.oop02;

import java.util.Calendar;
import java.util.Date;

public class Test03 {
    public static void main(String[] args) {
        Calendar cal = Calendar.getInstance();
        //获取年
        System.out.println(cal.get(Calendar.YEAR));
        //获取月
        System.out.println(cal.get(Calendar.MONTH));
        //获取日
        System.out.println(cal.get(Calendar.DATE));
        //获取时
        System.out.println(cal.get(Calendar.HOUR));
        //获取分sout
        System.out.println(cal.get(Calendar.MINUTE));
        //获取秒
        System.out.println(cal.get(Calendar.SECOND));

        //设置特定时间段
        cal.set(Calendar.MONTH,5);
        System.out.println(cal.get(Calendar.MONTH));

        Date ti =cal.getTime();
        System.out.println(ti);
    }
}

六.SimpleDateFormat
1.概念:格式化和解析日期的具体类
2.格式: yyyy-MM-dd ==>年月日 yyyy-MM-dd hh:mm:ss 年 月 日 时 分 秒
3.构造方法:public SimpleDateFormat(String pattern) 参数表示传递格式的类型
4.常用的方法:
		public StringBuffer format(Date date)==> 将Date 对象格式化指定时间格式
        public Date parse(String text)==>将指定格式字符串时间转换为Date对象

重点:

SimpleDateFormat中format方法可以把date类型转换成特定格式的String型的字符串
SimpleDateFormat中的parse方法可以把String型的字符串转换成特定格式的date类型

package com.qf.lt.oop02;

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

public class Test04 {
    public static void main(String[] args) throws ParseException {
        //实例化
        SimpleDateFormat sp = new SimpleDateFormat("yyyy/MM/dd");

        //实例化
        Date ti =new Date();
        //将时间转华为string
        String str = sp.format(ti);
        Date d =sp.parse(str);
        System.out.println(d);

        System.out.println(sp.format(ti));
    }
}

案例:

需求:键盘输入生日,计算出生多少天?

分析:

1.键盘录入的 年 月 日生日 转换为 Date类型
2.调用getTime() 获取毫秒值
3.系统的毫秒值 - 生日的毫秒值 

代码:

package com.qf.lt.oop02;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;

public class exit {
    public static void main(String[] args) throws ParseException {
        Scanner sca = new Scanner(System.in);
        System.out.println("输入你出生的时间:");
        String date01 = sca.next();

        //实例化
        Date sp = new SimpleDateFormat("yyyy-MM-dd").parse(date01);

        //获取输入时间的毫秒值
        long ti = sp.getTime();

        //获取当前时间的毫秒值
        long newTime = System.currentTimeMillis();

        //相减
        long day = ((newTime-ti)/1000/60/60/24);
        System.out.println("你已经存活了:"+day+"天");
    }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一个胖小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值