day12_自我总结

一、回顾

1.内部类:
   分类: 
      成员内部类: 普通成员内部类  私有内部类  静态内部类
      局部内部类: 定义在方法中的类
      匿名内部类: 没有名称内部类
   静态内部类:
      语法:
         访问修饰符 class 外部类名称 {
              static  class  内部类名称 {
                
              }
         }
2.jar的管理: 打包  使用包   删除包
3.API:就是一个帮助文档 用于查看jdk提供相关的资源
4.Object
   概念:所有类的直接父类 或者是间接父类
   方法: 
     A.toString()==>重写规则:返回对象的属性值
     B.equals()==> 重写规则:比较的对象的属性值
        == 与 equals
         == 既可以比较基本数据类型 也可以比较引用数据类型 equals 只能比较引用数据类型
         == 
           比较基本数据类型比较的数值  比较引用数据类型比较的是地址值 
        equals 没有重写之前比较的对象的地址值 重写之后比较的是对象的属性值
7.String 
   概念: 
     A.String 字符串   字符串的字面值是存在堆内存中字符串常量吃中 new String() 是存在堆内存中
     B.String的底层也是使用字节数组来进行存储
   构造方法: 3+1 
   常用的方法:
       判断性  得到性

二、String(重点)

2.1 转换性

方法的名称 方法的描述
public byte[] getBytes() 将字符串转换为字节数组
public char[] toCharArray() 将字符串转换为字符数组
public String toLowerCase() 将所有的字符转换为小写
public String toUpperCase() 将所有的字符转换为大写
public String concat(String str) 在字符串末尾进行拼接(+)
public String replace(char oldChar, char newChar) 替换字符串指定的内容
public String[] split(String regex) 根据指定的字符来进行拆分
public String trim() 去除首尾的空格
public static String valueOf(boolean b) 将各种数据类型的数据转换为字符串类型的数据

代码

package com.zhenglyz.day12.test;

import java.util.Arrays;

public class Test1 {
    public static void main(String[] args) {
        //转换为字节数组
        String s1="abc";
        byte[] bytes=s1.getBytes();
        System.out.println(Arrays.toString(bytes));

        //转换为字符数组
        // String s1="abc";
        char[] chars=s1.toCharArray();
        System.out.println(Arrays.toString(chars));

        //转换大写
        String s2="AbCd";
        System.out.println(s2.toUpperCase());

        //转换小写
        // String s2="AbCd";
        System.out.println(s2.toLowerCase());

        //进行拼接
        String s3="lyz是各位的老父亲,";
        String s4="喜欢唱歌跳舞andRAP,";
        String s5="我们都喜欢junk";
        System.out.println(s3.concat(s4).concat(s5));
        String s6=s3.concat(s4).concat(s5);

        //字符串替换
        String s7=s6.replace("lyz","hyf");
        String s8=s6.replace(s3,"hyf");
        String s9=s6.replace("lyz",s3);
        System.out.println(s7);
        System.out.println(s8);
        System.out.println(s9);

        //根据逗号来进行划分
        String [] arrays=s6.split(",");
        for (int i=0;i<arrays.length;i++){
            System.out.println(arrays[i]);
        }

        //去掉两端的空格
        String  s10="     我是各位的     ****     ";
        System.out.println(s10);
        System.out.println(s10.trim());

        //将各种类型的数据转换为字符串类型的数据
        String s=String.valueOf(20.89);
        System.out.println(s);
    }
}

2.2 案例

step01 键盘录入一串字符 将字符中大写转换为小写 将小写转换为大写 数字以***来代替

​ 例如:abc123KKAa ==>ABC***kkaA

step02 分析

A.将字符串拆分一个字符数组
B.遍历数组获取数组中每一个元素
       > 'a'   < 'z' ==>转换为大写
       > 'A'   < 'Z' ==>转换为小写
       > '0'   < '9' ******
C.定义一个字符串进行重新拼接
         toLowerCase()  toUpperCase()   *

step03 代码

package com.qf.test02;

import java.util.Scanner;

public class Test02 {
    public static void main(String[] args) {
        //实例化Scanner
        Scanner  input  = new Scanner(System.in);
        System.out.println("请输入一串字符");
        String line = input.next();
        //将字符串转换为字符数组
        char[] arrays = line.toCharArray();
        //定义一个字符串来进行拼接
        String  s ="";
        //使用循环遍历
        for (int i=0;i<arrays.length;i++) {
            if (arrays[i] >='a' && arrays[i] <='z') {
                s+=(arrays[i]+"").toUpperCase();

            }else if (arrays[i] >='A' && arrays[i] <='Z'){
                s+=(arrays[i]+"").toLowerCase();
            }else {
                s+="*";
            }
        }

        System.out.println(s);
    }
}

三、StringBuffer(重点)

3.1 简介

A.线程安全的可变字符序列。一个类似于 String 的字符串缓冲区
B.StringBuffer 上的主要操作是 append 和 insert 方法  可以改变该序列的长度和内容
C.StringBuffer 在多线程中线程安全 效率低

3.2 StringBuffer与 String 比较

A.String 是不可变的字符序列    StringBuffer 是可变的字符序列
B.String 操作字符串的效率比较低  StringBuffer 操作字符串的效率比较高

3.3 StringBuffer 与 StringBuilder比较

A.版本不一样     StringBuffer  1.0     StringBuilder 1.5 
B.多线程安全性    StringBuffer 多线程安全 StringBuilder 多线程不安全
C.操作字符串效率   StringBuffer 效率低    StringBuilder 效率高

3.4 构造方法

构造方法的名称 构造方法的描述
public StringBuffer() 构建一个StringBuffer,初始容量为 16 个字符
public StringBuffer(int capacity) 构建一个StringBuffer,指定初始容量的字符串缓冲区
public StringBuffer(String str) 将字符串构建成一个StringBuffer对象,字符串的初始容量为 16 加上字符串参数的长度

代码

package com.qf.test03;

public class Test01 {
    public static void main(String[] args) {
        StringBuffer sb = new StringBuffer();
        System.out.println(sb.capacity());
        StringBuffer sb01 = new StringBuffer(19);
        System.out.println(sb01.capacity());
        StringBuffer  sb02 = new StringBuffer("abc");
        System.out.println(sb02.capacity());
    }
}

3.5 常用的方法

方法的名称 方法的描述
public StringBuffer append(boolean b) 在末尾进行追加
public StringBuffer insert(int offset, boolean b) 在指定的位置插入值
public int indexOf(String str) 查找指定字符的索引值
public int capacity() 获取内容的容量
public char charAt(int index) 获取指定索引的内容
public StringBuffer deleteCharAt(int index) 根据索引删除单个字符
public StringBuffer delete(int start, int end) 根据区间来进行删除
public StringBuffer reverse() 控制反转
public String substring(int start, int end) 截取指定的字符
public String toString() 转换为字符串
public int length() 获取StringBuffer中内容的长度
public StringBuffer replace(int start, int end, String str) 替换指定区间的内容

代码

package com.zhenglyz.day12.test;


/**  @常用方法
 *
 */
public class DemoStringBuffer {
    public static void main(String[] args) {
        StringBuffer sb=new StringBuffer("李衍智是各位的老爹");
        //append末尾添加
        sb.append(",这是个事实");
        sb.append(true);
        sb.append(123123);
        System.out.println(sb);

        //特定位置插入
        sb.insert(3,"和李颜值");
        sb.insert(3,3);
        System.out.println(sb);

        //查找对应内容的存放位
        sb.indexOf("和");//返回值要接收,不然得直接输出
        System.out.println(sb.indexOf("和"));
        //System.out.println(sb.indexOf("和"));

        //查找存放位的内容
        sb.charAt(3);//返回值要接收,不然得直接输出
        System.out.println(sb.charAt(3));
        //System.out.println(sb.charAt(3));

        //根据提供索引的位置(起止与终止)删除元素
        sb.delete(3,4);
        System.out.println(sb);
        sb.delete(3,7);
        System.out.println(sb);

        StringBuffer sb02=new StringBuffer("我是第二个案例的例句");
        //反转句子
        System.out.println(sb02.reverse());
        System.out.println(sb02.reverse());//反反得正

        //截取指定长度的字符/字符串
        System.out.println(sb02.substring(5,7));

        //转换为   字符串String类型  的数组
        System.out.println(sb02.toString());

        //获取内容长度
        System.out.println(sb02.length());

        //替换指定区间的内容 ==> 相当于删除选定区间内容,然后插入自定内容
        System.out.println(sb02.replace(5,7,"lyz"));
    }
}

3.6 StringBuffer与String 之间相互转换

1.StringBuffer ==> String 
   A.public String toString()  toString()
   B.public String(StringBuffer buffer) 构造方法
2.      String ==> StringBuffer
   A.public StringBuffer(String str) 构造方法
   B.new  StringBuffer().append(String str);

四、包装类

4.1 简介

1.概念:将基本数据类型的数据封装成一个类 可以使用类的方法以及属性 
2.罗列
3.特点:
   int类型与char类型的包装比较特殊之外 其它的包装类都是首字母变为大写 

基本数据类型 包装类
byte Byte
short Short
int Integer
long Long
double Double
float Float
boolean Boolean
char Character

4.2 Integer

4.2.1 简介

A.Integer 类在对象中包装了一个基本类型 int 的值
B.该类提供了多个方法,能在 int 类型和 String 类型之间互相转换
C.提供了处理 int 类型时非常有用的其他一些常量和方法

4.2.2 常量

常量的名称 常量的描述
public static final int MAX_VALUE 值为 231-1 的常量,它表示 int 类型能够表示的最大值
public static final int MIN_VALUE 值为 -231 的常量,它表示 int 类型能够表示的最小值
public static final int SIZE 表示 int 值的比特位数
public static final Class TYPE 表示基本类型 int 的 Class 实例

代码

package com.qf.test04;

public class Test01 {
    public static void main(String[] args) {
        //获取int类型最大值
        System.out.println(Integer.MAX_VALUE);
        //获取int最小值
        System.out.println(Integer.MIN_VALUE);
        //获取比特位 一个字节占8bit
        System.out.println(Integer.SIZE);
        //获取class实例
        System.out.println(Integer.TYPE);
    }
}


4.2.3 构造方法

构造方法的名称 构造方法的描述
public Integer(int value) 将int的值包装成包装类Integer
public Integer(String s) 将一个字符串的数值包装成Integer

代码

package com.qf.test04;

public class Test02 {
    public static void main(String[] args) {
        Integer  in  = new Integer(10);
        System.out.println(in);
        Integer i = new Integer("14");
        System.out.println(i);
        Integer inn = new Integer("14.6");
        System.out.println(inn);
    }
}


4.2.4 常用方法

方法的名称 方法的描述
public static String toBinaryString(int i) 将十进制的整数转换为二进制字符串
static String toOctalString(int i) 将十进制的整数转换为八进制字符串
public static String toHexString(int i) 将十进制的整数转换为十六进制字符串
public int xxxValue() 将Integer转换各种基本数据类型(xxx各种基本数据类型(整数类型))
public static int parseInt(String s)(重点) 将字符串转换为整数类型
public static Integer valueOf(int i) 返回一个表示指定的 int 值的 Integer 实例
public static Integer valueOf(String s) 指定的 String 的值的 Integer 对象

代码

package com.zhenglyz.day12.test;

public class DemoInteger {
    public static void main(String[] args) {
        //定义一个变量,表示Integer包装类

        //将十进制的整数转换为二进制字符串
        String s=Integer.toBinaryString(10);
        System.out.println("s = " + s);
        String s1=Integer.toBinaryString(3);
        System.out.println("s1 = " + s1);
        //将十进制的整数转换为八进制字符串
        String s2=Integer.toOctalString(10);
        System.out.println("s2 = " + s2);
        String s3=Integer.toOctalString(3);
        System.out.println("s3 = " + s3);
        //将十进制的整数转换为十六进制字符串
        String s4=Integer.toHexString(10);
        System.out.println("s4 = " + s4);
        String s5=Integer.toHexString(3);
        System.out.println("s5 = " + s5);

        //定义一个变量名为in,的Integer包类型,同时给它赋值10
        Integer in=new Integer(10);
        System.out.println("in = " + in);

        //将Integer转换各种基本数据类型(***各种基本数据类型“eg:整数类型”)
        short i=in.shortValue();
        System.out.println("i = " + i);
        double i2=in.doubleValue();
        System.out.println("i2 = " + i2);
        String i3=in.toString();
        System.out.println("i3 = " + i3);
        //……

        //**重点**
        //将字符串转化为整数型__也称将字符串与数字等效
        //这里定义一个变量名为num,数据类型为int,的Integer包装类,同时使其等效于数字10
        //即:令int数据类型的num,代指数字10
        //也可称:将10,代指数据类型为int、变量名num的  字符串
        int num=Integer.parseInt("10");
        System.out.println("num = " + num);

        //将int或者String数据类型转换为Integer包装类
        //这里定义一个变量为inTe的包装类,同时赋值20
        Integer inTe =Integer.valueOf("20");
        System.out.println("inTe = " + inTe);
        Integer inTe2 =Integer.valueOf(10);
        System.out.println("inTe2 = " + inTe2);
    }
}

4.2.5 自动拆箱与自动装箱

1.装箱:将基本数据类型包装成包装类(引用数据类型)的过程 (打包快递)
2.拆箱: 将包装类(引用数据类型) 拆成基本数据类型的过程(拆快递)
3.在jdk1.5之后 自动拆箱与自动装箱
4.自动装箱(将基本数据类型 ==>引用数据类型):也就是可以将基本数据类型变量 赋值给包装类的引用
5.自动拆箱(将引用数据类型 ==>基本数据类型):将包装类的引用 赋值给基本数据类型的变量

代码

package com.qf.test04;

public class Test04 {
    public static void main(String[] args) {
        //定义一个包装类
        Integer in  = new Integer(5);
        int  num = in; // 自动拆箱
        System.out.println(num);
        Integer i =  num;// 自动装箱
        System.out.println(i);
    }
}


五、Math

5.1 简介

Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数  数学函数的操作类

5.2 常量

常量的名称 常量的描述
public static final double E 自然对数的底数
public static final double PI π

代码

package com.qf.test05;

public class Test01 {
    public static void main(String[] args) {
        System.out.println(Math.E);
        System.out.println(Math.PI);
    }
}


5.3 常用的方法

方法的名称 方法的描述
public static int abs(int a) 绝对值
public static double cbrt(double a) 立方根
public static double sqrt(double a) 正平方根
public static double ceil(double a) 向上取整
public static double floor(double a) 向下取整
public static long round(double a) 四舍五入
public static double max(double a, double b) 较大值
public static long min(long a, long b) 较小值
public static double pow(double a, double b) 返回第一个参数的第二个参数次幂的值
public static double random()(重点) 于等于 0.0 且小于 1.0

代码

package com.qf.test05;

public class Test02 {
    public static void main(String[] args) {
        //绝对值
        System.out.println(Math.abs(10));
        System.out.println(Math.abs(-10));
        //立方根
        System.out.println(Math.cbrt(8));
        //平方根
        System.out.println(Math.sqrt(16));
        System.out.println(Math.ceil(2.1));
        System.out.println(Math.ceil(2.9));
        System.out.println(Math.floor(2.1));
        System.out.println(Math.floor(2.9));
        System.out.println(Math.round(2.1));
        System.out.println(Math.round(2.9));

        //较大值与较小值
        System.out.println(Math.max(10,20));
        System.out.println(Math.min(10,20));

        System.out.println(Math.pow(2,3));
        System.out.println(Math.random());

    }
}


六、System

6.1 简介

A.System 类包含一些有用的类字段和方法。它不能被实例化   只提供了一个私有的构造方法
B.在 System 类提供的设施中,有标准输入、标准输出和错误输出流

6.2 常量

方法的名称 方法的描述
public static final PrintStream err 标准”错误输出流(关联控制台)
public static final InputStream in “标准”输入流(关联j键盘)
public static final PrintStream out 标准”输出流(关联控制台)

代码

package com.qf.test06;

import java.io.InputStream;
import java.util.Scanner;

public class Test01 {
    public static void main(String[] args) {
        System.out.println("哈哈");
        System.err.println("呵呵");
        //实例化Scanner
        Scanner  input  = new Scanner(System.in);
        System.out.println("请输入爱好");
        String line = input.next();
        System.out.println(line);

    }
}


6.3 常用的方法

代码

package com.qf.test06;

public class Test02 {
    public static void main(String[] args) {
        System.out.println("今天比较热");
        System.out.println("温度38");
       // System.exit(0);
        System.out.println("阿飞喝奶茶");
        System.gc();
        //获取系统的毫秒值
        long time =  System.currentTimeMillis();
        System.out.println(time/1000/60/60/24);
    }
}


七、Date

7.1 简介

1.类 Date 表示特定的瞬间,精确到毫秒 时间类
2.构造方法
    public Date()  初始化date  表示当前系统的时间(重点)
    public Date(long date)  1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数
3.常用的方法
    public void setTime(long time)  
       设置此 Date 对象,以表示 1970 年 1 月 1 日 00:00:00 GMT 以后 time 毫秒的时间点
    public long getTime()
          返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。 

代码

package com.qf.test07;

import java.util.Date;

public class Test01 {
    public static void main(String[] args) {
        Date  d = new Date();
        System.out.println(d);
        Date  d1 = new Date(3000);
        System.out.println(d1);
        Date d3= new Date();
        d3.setTime(4000);
        System.out.println(d3);
        System.out.println(d3.getTime());
    }
}


八、Calendar(重点)

8.1 简介

A.Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 
   日历字段之间的转换提供了一些方法
B. 瞬间可用毫秒值来表示 从 1970 年 1 月 1 日的 00:00:00
C.日历字段
    public static final int YEAR  年
    public static final int MONTH 月
    public static final int DAY_OF_MONTH 日
    public static final int HOUR 时
    public static final int MINUTE 分钟
    public static final int SECOND 秒钟
D.常用的方法:
     public static Calendar getInstance() 返回的 Calendar 基于当前时间
     public final Date getTime() 将  Calendar  转换为Date
     public final void setTime(Date date) 使用给定的 Date 设置此 Calendar 的时间
     public void set(int field,int value) 将给定的日历字段设置为给定值
     public int get(int field) 返回给定日历字段的值
     public abstract void add(int field,int amount)
               根据日历的规则,为给定的日历字段添加或减去指定的时间量
     

代码

package com.qf.test07;

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

public class Test02 {
    public static void main(String[] args) {
        //获取Calendar
        Calendar cla = Calendar.getInstance();
        cla.setTime(new Date());
        //获取年
        int y = cla.get(Calendar.YEAR);
        //获取月
        //月份需要+1
        int  m = cla.get(Calendar.MONTH)+1;
        //获取日
        int  d = cla.get(Calendar.DAY_OF_MONTH);
        //获取时分秒
        int h = cla.get(Calendar.HOUR_OF_DAY);
        int mi = cla.get(Calendar.MINUTE);
        int s = cla.get(Calendar.SECOND);
        System.out.println(y+"-"+m+"-"+d+"  "+h+":"+mi+":"+s);
        Date d1 = cla.getTime();
        System.out.println(d1);
        //设置时间的偏移
        cla.add(Calendar.DAY_OF_MONTH,-5);
        System.out.println(cla.get(Calendar.DAY_OF_MONTH));

    }
}


posted @ 2022-07-26 21:11  真lyz  阅读(34)  评论(0)    收藏  举报