栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java第四章(javase知识点总结)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java第四章(javase知识点总结)

文章目录

替换功能正则表达式StringBuffer

String,StringBuffer,StringBuilder区别功能 Math类Random类System类Date类Calendar类

SimpleDateFormat 类 BigInteger_BigDecimal


替换功能
package api1.stringdemo;

public class StringTihuan {
    public static void main(String[] args) {
        
        String s=" abcde fg ";
        String s1=s.replace("cd","CC");
        System.out.println(s1); // abCCe fg
        System.out.println(s.length()); //10 字符串长度包括10
        System.out.println(s.trim()); //abcde fg
        System.out.println(s.trim().length()); //8

        
        String s="abcdefcdg";
        String s1=s.replaceAll("cd","CC");
        System.out.println(s1); //abCCefCCg

        String s2=s.replaceFirst("cd","CC");
        System.out.println(s2); //abCCefcdg

    }
}
正则表达式

正则 表达式
规则
是一种字符串模式匹配语言
指定规则:手机号规则

package api1.stringdemo;

import java.util.Arrays;
import java.util.Scanner;

public class StringZhengze {
    
    public static void main(String[] args) {
        
        String s="abcdefcdg";
        String s1=s.replaceAll("cd","CC");
        System.out.println(s1); //abCCefCCg

        String s2=s.replaceFirst("cd","CC");
        System.out.println(s2); //abCCefcdg

        
      
        //凡是程序中有输入的地方 必须对输入内容做验证
        //验证phone这个字符串是否为手机号?  phone.legth()==11  phone.charAt(0)==1
        //boolean matches(String regex)
         

        String x="ab";
        boolean res=x.matches("a"); //用字符串对象中matchse("正则表达式")
        System.out.println(res); //false 做验证 不匹配为false

        String x1="12345678901";
        //boolean res1=x1.matches("\d?"); //用字符串对象中的matches("正则表达式"); 一次或一次也没有 11为false
        //boolean res1=x1.matches("\d*"); //零次或多次
        //boolean res1=x1.matches("\d*"); //一次或多次
        //boolean res1=x1.matches("\d{11}"); //恰好11次
        //boolean res1=x1.matches("\d{11,}"); //至少11次
        boolean res1=x1.matches("\d{1,11}"); //至少1次 但不超过11次
        System.out.println(res1); //不是数字 false

        //手机号格式规则
        boolean res2=s.matches("1[35789]\d{9}");
        System.out.println(res2); //第一位为1,第二位为3/5/7/8/9,后面有九位[数字]

        //qq 数字 6--12  第一位没有0
        boolean qq="012345".matches("[1-9]\d{5,11}");
        System.out.println(qq);  //第一位是1到9,后面有5-11位

        //通用邮箱格式    \. 对.号进行转义
        boolean res="fgd3AA73@163qq.com.cn".matches("\w{6,10}@\w{2,5}\.(com|com\.cn)");
        System.out.println(res);
    }

}


StringBuffer

我们如果对字符串进行拼接操作,每次拼接,都会构建一个新的String 对象,既耗时,又浪费空间。字符串扩容

String,StringBuffer,StringBuilder区别

String:
是字符常量,适用于少量的字符串操作的情况
值不能变 底层 final char [] value;
一旦需要改变值,必须重新创建一个String value=value+111;StringBuffer:
适用多线程下在字符缓冲区进行大量操作的情况
添加synchronized 同步锁 多线程安全
值可变 char [] value 继承 AbstractStringBuilderStringBuilder:
适用于单线程下在字符缓冲区进行大量操作的情况
没有添加同步锁 多线程不安全
值可变 char [] value 继承 AbstractStringBuilderStringBuffer和StringBuilder功能相同,只是线程安全不同

public synchronized StringBuffer append(String str) {
    toStringCache = null;
    super.append(str);调用父类
    return this;
}
public StringBuilder append(String str) {
   super.append(str);  调用父类
   return this;
}
功能

构造,添加append,删除delete,替换replace,反转reverse

package api1.stringdemo;
public class StringBufferDemo {

    public static void main(String[] args) {

    
        //StringBuffer s=new StringBuffer(); //创建了一个字符串对象。底层是一个char数组
        //StringBuffer s1=new StringBuffer(30);
        StringBuffer s=new StringBuffer("abcd"); //字符串扩容 abcd11111222223333344444
                     s.append("11111"); //将append里字符串添加到此序列
                     s.append("22222");
                     s.append("33333");
                     s.append("44444");

                     //s.insert(1,"xxxx"); //axxxxbcd11111222223333344444
                     //s.deleteCharAt(2); //abd11111222223333344444
                     //s.delete(0,5); //1111222223333344444 删除指定区间字符串 包含开始不包含结尾
        //System.out.println(s); //底层value数组中创建,StringBuffer对象没变
        //System.out.println(s.reverse()); //反转 44444333332222211111dcba
        //System.out.println(s.replace(0,5,"ccccc")); //替换指定区间字符串 ccccc1111222223333344444

        String ss=new String(s); //将stingBuffer对象 变成String对象,就可以使用string里的方法
    }
}


Math类

java.lang.Math
提供了一系列静态方法用于科学计算;其方法的参数和 返回值类型一般为double型

package api1;

public class MathDemo {
    
    public static void main(String[] args) {
        System.out.println(Math.abs(-5)); //相反数 5
        System.out.println(Math.sqrt(9)); //平方根3.0

        System.out.println(Math.pow(2, 3)); //次方 8.0

        System.out.println(Math.random());//0.9641808089904788 随机数 大于等于 0.0 ,小于 1.0 。

        System.out.println(Math.floor(9.99)); //9.0
        System.out.println(Math.ceil(9.001)); //10.0

        System.out.println(Math.round(9.55)); //10

        System.out.println(Math.max(3, 5)); //5

    }
}

Random类

import java.util.Random;
用于产生随机数

package api1;

import java.util.Arrays;
import java.util.Random;

public class RandomDemo {
    public static void main(String[] args) {
        
        Random r=new Random();

        //System.out.println(r.nextBoolean()); 随机返回true false
        System.out.println(r.nextInt());  //705359992 随机返回整数
        System.out.println(r.nextLong()); //-5961209393186785663
        System.out.println(r.nextFloat()); //0.35238278
        System.out.println(r.nextDouble()); //0.2880023757444067

        byte[] b=new byte[5]; //[0,0,0,0,0]
        r.nextBytes(b);
        System.out.println(Arrays.toString(b)); //[48, -113, -40, -101, -41]
    }
}

System类

包含一些有用的类字段和方法。它不能被实例化。

package api1.system;

import java.util.Arrays;

public class SystemDemo {
    public static void main(String[] args) {
        //PrintStream out
        System.out.println("11");

        System.out.println(Person.phone.no);

        //System 里面包含了一些对于系统信息相关的方法
        //System.exit(0); //退出 停止虚拟机
        //System.out.println("aaaaaaaaaaaaa");

        //自1970-1-1 0:0:0 至程序运行那一刻的时间差
        long a=System.currentTimeMillis(); //1647767762714
        System.out.println(a);

        

        //System.out.println(System.gc()); //运行垃圾回收器
        System.out.println(System.getenv()); //拿到操作系统的信息
        System.out.println(System.getenv("Path"));

        //数组复制
        int[] b={1,2,3,4,5};
        int[] ints= Arrays.copyOf(b,10);
        //返回一个指定长度的新数组,把原数组值填充进去
        System.out.println(Arrays.toString(ints)); //[1, 2, 3, 4, 5, 0, 0, 0, 0, 0]

        int[] c={1,2,3,4,5};
        int[] d=new int[10];
        
        System.arraycopy(c,0,d,4,c.length);
        System.out.println(Arrays.toString(b)); //[1, 2, 3, 4, 5]
    }
}


Date类

import java.util.Date;
代表当前系统时间

package api1;

import java.util.Date;

public class DateDemo {
    //使用Date类代表当前系统时间
    public static void main(String[] args) {
        

        //有参构造
        Date date=new Date(1621735853158L);
        date.setMonth(7);
        System.out.println(date.getMonth()+1); //8
        System.out.println(date.getHours()); //10
        System.out.println(date.getMonth()); //7
        System.out.println(date.getHours()); //10
        System.out.println(date.getMinutes()); //10
        System.out.println(date.getSeconds()); //53
        System.out.println(date); //Mon Aug 23 10:10:53 CST 2021
        System.out.println(date.toLocaleString()); //根据本地区习惯输出一个字符串格式的时间 2021-8-23 10:10:53
    }
}


Calendar类

import java.util.Calendar;
import java.util.GregorianCalendar;
是抽象类 不能创建对象
使用时实现特定的子类的对象,创建对象的过程对程序员来说是透明的,只需要使用getInstance方法创建
GregorianCalendar c = new GregorianCalendar();//直接new子类对象

package api1;

import java.util.Calendar;
import java.util.GregorianCalendar;

public class CalendarDemo {
    public static void main(String[] args) {
        //是抽象类 不能创建对象
        //使用时实现特定的子类的对象,
        //创建对象的过程对程序员来说是透明的,只需要使用getInstance方法创建
        //Calendar c=Calendar.getInstance(); 返回是子类对象
        GregorianCalendar c = new GregorianCalendar();//直接new子类对象

        c.set(2002,5,10);
        //System.out.println(c.getTime()); //Mon Jun 10 18:11:55 CST 2002

        System.out.println(c.get(Calendar.YEAR)); //2002
        System.out.println(c.get(Calendar.MONTH)+1); //6
        System.out.println(c.get(Calendar.DAY_OF_MONTH)); //10
        System.out.println(c.get(Calendar.DAY_OF_WEEK)); //2
        System.out.println(c.get(Calendar.DAY_OF_YEAR)); //161 一年中第几天
    }
}


SimpleDateFormat 类

日期格式化类


BigInteger_BigDecimal

import java.math.BigInteger;
import java.math.BigDecimal;

BigInteger:大整数 可以表示任意整数
可以准确地表示任何 大小的整数值而不会丢失任何信息
add(),subtract(),multiply(),divide()

BigDecimal:计算机是二进制的,浮点数会失去 一定的精确度。
根本原因是:十进制值通常没有完全相同的二进制表示形式;
十进制数的二进制表示形式可 能不精确。只能无限接近于那个值

package api1;

import java.math.BigInteger;

public class BigIntegerDemo {
    public static void main(String[] args) {
        
        BigInteger a=new BigInteger("11111111111111111111111111111117899997777777777777777777");
        BigInteger b=new BigInteger("555555555555555555555555555555555555555588888888888888888888");

        BigInteger c=a.add(b);
        System.out.println(c);
    }
}

package api1;

import java.math.BigDecimal;
public class BigDecimalDemo {
    public static void main(String[] args) {
        
        double d=10.5;
        System.out.println(10.5-10.4); //0.09999999999999964

        BigDecimal a=new BigDecimal("122222222222222222222233333333333333333333333311111111");
        BigDecimal b=new BigDecimal("12.4");
        System.out.println(a.subtract(b)); //122222222222222222222233333333333333333333333311111098.6


    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/773450.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号