[java 常用类API] 新手小白的编程字典

目录

1.API

    1.1定义:

2.Object类

     2.1 toString() 方法

     2.2 equals() 方法

3. Arrays 类

     3.1 equals() 方法

     3.2 sort() 方法

       3.2.1排序

      3.2.2 自定义对象排序

3.3 binarySearch() 方法

3.4 copyOf() 方法

3.5 fill() 方法

3.6 toString() 方法

4.基本数据类型包装类

    4.1定义:

   4.2 包装类的两种主要用途

   4.3方法

5. String类

    5.1定义

    5.2 字符串类型创建对象的方式:

    5.3 判断功能

    5.4 获取功能

   5.5转换功能

1.将char数组转换为字符串对象的方法:

2.把字符串转换为char数组的方法:

3.转码解码

5.5 其他功能

一.将不同类型的数据转换为字符串类型的两种方法

二.大小写转换

三.字符串连接 

四.去除字符串空格

五.字符串拆分

六.字符串替换

6.StringBuffer StringBuilder类

6.1 定义

6.2 注意

6.3 功能及源码

7. 正则表达式

      7.1定义

     7.2使用规范及代码

8.Random类

    8.1定义

    8.2使用规范及代码

9.Date类

    9.1 定义

    9.2使用方法及源码

10.Calendar 类

      10.1定义:

      10.2使用方法及源码

11.SimpleDateFormat 类

      11.1定义

      11.2方法及源码

      11.3格式化表达:

12. BigInteger 类

        12.1 定义

        12.2使用方法及源码

13.BigDecimal 类

        13.1定义

        13.2使用方法及源码


1.API

    1.1定义:

        API(applicant programming interface)应用程序编程接口
        一般在开发中,api表示java语言中为我们提供的各种类和接口(基础功能)
 java官方为开发人员提供了一个文档 ,对语言中提供的接口和类进行说明,我们称为API文档

2.Object

     2.1 toString() 方法

            2.1.1定义: 

       在开发中,经常用到输出一个对象,但是对象在内存中储存,是不能直接输出到控制台的,一旦要输出某个对象,那么会默认自动调用类中toString()方法,把对象中的信息,以字符的形式输出

              举例: 

              如果类中没有定义toString()方法,那么就会在父类里面调用

              Object类中的toString()默认输出的是对象在内存中的地址(Object类是所有类的父类)
      

package Objectdemo.toStringdemo;public class Person {private String name;private int age;public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}//Object中的toString()方法输出的是对象的地址,与我们想要的结果不一样,那么我们就重写toString方法@Overridepublic String toString() {return "Person{" + "name='" + name + '\'' + ", age=" + age + '}';}
}

Object中的toString() 输出的是对象的地址,与我们想要的结果不一样,那么我们就重写toString()

package Objectdemo.toStringdemo;public class ToStringDemo {public static void main(String[] args) {Person person = new Person();person.setAge(20);person.setName("Tom");System.out.println(person);}
}

2.2 equals() 方法

      2.2.1 定义:

              Object类中 默认的equals(Object obj) 比较两个对象的地址是否相等 , 与 == 效果相等
              为了区分,开发人员把equals进行重写, 从而比较 内容 是否相同  

             如果两个相等,则返回值为true,否则返回值为false   (Boolean类型)

      2.2.2 举例:

package Objectdemo.Equalsdemo;
public class Person {String name;int age;public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}//重写equals方法,用来比较内容是否相等@Overridepublic boolean equals(Object obj) {//Person是自己定义的类,需要重写equals方法if (obj instanceof Person){Person p = (Person)obj;//判断,如果类型相同,就向下转型return this.age == p.age && this.name.equals(p.name);//(name)String类型中的equals已经被重写了,比较的是内容是否相同}return false;}
}

  自己定义的类,需要重写equals方法,系统中定义的类,一般情况下已经重写过equals()方法了

package Objectdemo.Equalsdemo;public class Demo1 {public static void main(String[] args) {Person p1 = new Person();p1.setName("jim");p1.setAge(20);Person p2 = new Person();p2.setAge(20);p2.setName("jim");//比较p1和p2是否相等//1.比较地址是否相同System.out.println(p1==p2);//==左右,当两边是引用数据类型时,比较的是 地址 是否相等//2.比较内容是否相同System.out.println(p1.equals(p2));//默认调用equals(),也是比较对象地址是否相等;重写后,比较的是内容是否相同}
}

3. Arrays 类

     3.1 equals() 方法

            3.1.1 定义:

                             比较两个数组对象中元素是否相等.

            举例:

package Arraysdemo.equalsdemo;import java.util.Arrays;public class Demo1 {public static void main(String[] args) {int[] a={1,2,3,4,5};int[] b={1,2,3,4,5,6};System.out.println(a==b);//比较地址System.out.println(Arrays.equals(a,b));//比较内容(Arrays类中的equals()已被重写)}
}

3.2 sort() 方法

       3.2.1排序

        举例:

package Arraysdemo.Sortdemo;import java.util.Arrays;public class SortDemo1 {public static void main(String[] args) {int a[]={3,2,1,5,4};Arrays.sort(a);////对数组内容进行排序Arrays.sort(a,0,3);//对数组指定的 区间 进行排序(数组,包含开始的位置,不包含结束的位置)System.out.println(Arrays.toString(a));}
}
      3.2.2 自定义对象排序

       需要为自定义的对象提供一个排序规则,即指定用哪个属性(学号,字母...)进行排序
       compareTo()会在Arrays类中的sort()排序时会自动调用,根据返回的结果判断两个值谁大谁小;

       举例:

package Arraysdemo.Sortdemo;public class Student implements Comparable<Student> {private int no;private String name;public Student(String name, int no) {this.name = name;this.no = no;}@Overridepublic String toString() {return "Student{" +"no=" + no +", name='" + name + '\'' +'}';}@Override  //实现接口 要重写抽象方法public int compareTo(Student o) {//用学号排序return this.no-o.no;//返回结果 小于0 等于0 大于0//用name排序//return this.name.compareTo(o.name);}
}
package Arraysdemo.Sortdemo;
import java.util.Arrays;//自定义对象排序
public class SortDemo2 {public static void main(String[] args) {//构造方法赋值Student student1 = new Student("b", 101);Student student2 = new Student("a", 102);Student student3 = new Student("c", 103);Student student4 = new Student("d", 104);Student student5 = new Student("e", 105);//开辟有5个空间的学生数组Student[] students = new Student[5];//将学生随机装入数组中students[0] = student3;students[1] = student2;students[2] = student5;students[3] = student1;students[4] = student4;//对学生数组进行排序Arrays.sort(students);System.out.println(Arrays.toString(students));}
}

3.3 binarySearch() 方法

       3.3.1 定义:

     二分查找算法(折半查找算法)

    (1)前提:数组要是有序的
    (2)方法:每次找到数组的中间值,用我们将要找的值与中间值进行比较。
            如果我们要找的值大于中间值,就继续向右边查找 .然后再与右边的中间值进行比较,以此类推,如果小于中间值就向左查找
    (3)举例:
           int[] a = {1,2,3,4,5,6,7,8,9......,10000};
           判断数组中是否包含 5535 这个元素
           常用做法是从第一个开始查找,效率低,时间长;但是如果使用
           二分查找(适合有序的大基数查找)直接从5000开始比较,加快了查找速率

package Arraysdemo.BinarySearchdemo;import java.util.Arrays;public class BinarySearchDemo1 {public static void main(String[] args) {int [] a= {9,5,8,7,2,6,4,3,1};Arrays.sort(a);//1.先排序成{1,2,3,4,5,6,7,8,9}//2.(要查找的数组,要寻找的元素) 如果返回负数,说明要寻找的值不存在System.out.println(Arrays.binarySearch(a, 9));//3.查找区间中的元素(要查找的数组,开始位置,结束位置,查找的元素)System.out.println(Arrays.binarySearch(a,0,5,3));}
}

3.4 copyOf() 方法

       3.4.1定义:
               数组复制,将原数组中的内容,复制到一个新创建的指定长度的数组

       举例:

package Arraysdemo.Copyofdemo;import java.util.Arrays;public class CopyOfDemo {public static void main(String[] args) {int[] a = {1,2,3,4,5};//int[] b = new int[8];//[1,2,3,4,5,0,0,0]int[] b = Arrays.copyOf(a,8);//(原数组,新数组的长度)System.out.println(Arrays.toString(b));}
}

3.5 fill() 方法

      3.5.1定义: 数组填充

      举例:

package Arraysdemo.Filldemo;
import java.util.Arrays;
public class FillDemo {public static void main(String[] args) {int[] a = {1,2,3,4,5};//(要填充的数组,要填充的元素)Arrays.fill(a,1);//将a数组中的元素全填充为1System.out.println(Arrays.toString(a));}
}

3.6 toString() 方法

      3.6.1定义:

              返回指定数组内容的字符串的表示形式

4.基本数据类型包装类

    4.1定义:

           由于java是面向对象的,但是8中基本类型的数据类型不是面向对象的,使用起来不方便,所以               java语言中,为8种基本数据类型,各提供一个包装类进行表示, 包装类中可以包含一个基本                 类型值以及一些常用的操作方法(例如: 寻找整数的最大值, 将整数转为二进制)

4.2 包装类的两种主要用途

● 包含每种基本数据类型的相关属性(最大/小值)以及相关的操作方法

● 作为 与基本数据类型 对应的 类型存在

4.3方法

(1)基本方法和常用静态方法

package basetypedemo;public class IntegerDemo1 {public static void main(String[] args) {//int类型的包装类:Integer//基本方法System.out.println(Integer.MAX_VALUE);//最大值System.out.println(Integer.MIN_VALUE);//最小值System.out.println(Integer.BYTES);//4 含有的字节数System.out.println(Integer.SIZE);//32 含有的比特位//常用静态方法System.out.println(Integer.max(10,5));//返回较大的值System.out.println(Integer.min(10,5));//返回较小的值System.out.println(Integer.toBinaryString(8));//2进制System.out.println(Integer.toHexString(28));//16进制System.out.println(Integer.toOctalString(9));//8进制System.out.println(Integer.compare(11, 10));//两个数比大小--->返回 -1 0 1String a ="10";String b = "20";//例如 : String a ="10c"; 无法转换为整数,会报错int ai = Integer.parseInt(a);int bi = Integer.parseInt(b);System.out.println(ai+bi);//把字符串类型的数值,转为基本类型数值,转换时不能出现非数字的字符//同理可以调用其他基本类型的包装类,就省略了}
}

(2)构造方法和实例方法

package basetypedemo;public class  IntegerDemo2 {public static void main(String[] args) {//构造方法Integer i1 = new Integer(20);Integer i2 = new Integer("20");//会调用parseInt(),将Stirng转为int类型的//实例方法System.out.println(i1.equals(i2));//equals(),比较Integer对象中的内容是否相等System.out.println(i1.compareTo(i2));//compareTo(),比较Integer对象中的数据大小String s = i1.toString();//toString(),将整数类型转为String类型int a = i1.intValue();//intValue(),把包装类型转为基本类型}
}

5. String类

  5.1定义

                    java.lang.String 被final修饰,不能被继承
                    String是java中的字符串(用"  "表示),String类中有一个char数组,用来存储字符串内容,
                    字符串对象一旦创建后,值就不能改变,改变值就是重新创建一个新的字符串对象

  举例:

package Stringdemo.Demo;public class Demo1 {public static void main(String[] args) {String s1  = new String("abc");s1 += "def";s1 += "ghi";s1 += "jkl";System.out.println(s1);}}

 
   5.2 字符串类型创建对象的方式:

          1.赋值方式
                String s = "abc"; 类似于装箱,隐式的创建了一个字符串对象
          2.new方式
                String s = new String("abc");

package Stringdemo.Demo;public class Demo2 {public static void main(String[] args) {String s1 = "abc";String s2 = "abc";String s3 = new String("abc");String s4 = new String("abc");System.out.println(s1 == s2);//true/*  s1和s2指向的是同一个地址,系统认为s1已经创建过一个"abc"对象,放在字符串常量池当中,当s2的值为"abc"时,常量池里如果有,就把s1的地址赋给s2*/System.out.println(s3 == s4);//falseSystem.out.println(s1.equals(s2));System.out.println(s3.equals(s4));}
}

 注意:字符串常量池

5.3 判断功能

1. equals()方法 : 判断内容是否一致

    equalsIgnoreCase() 方法: 判断内容是否一致,且忽略大小写

2.contains()方法 : 判断是否包含某个内容

3. isEmpty()方法 : 判断是否为空, 空返回true 否则返回false

4.startWith()方法 : 判断是否为指定的子串作为开头

5.endWith()方法 : 判断是否为指定的子串作为结尾

package Stringdemo.Demo;public class Demo3 {public static void main(String[] args) {String s1 = "abcd";String s2 = "abCd";System.out.println(s1.equals(s2));//看内容是否一致System.out.println(s1.equalsIgnoreCase(s2));//看内容是否一致,且忽略大小写System.out.println(s1.contains("bd"));//false 判断是否包含一个整体 “bd”System.out.println(s1.contains("b"));//true 判断是否包含“b”System.out.println(s1.isEmpty());//判断是否为空 空返回true 否则返回falseSystem.out.println(s1.startsWith("ab"));//判断是否为指定的子串作为开头System.out.println(s1.endsWith("d"));//判断是否为指定的子串作为结尾}
}

5.4 获取功能

1. length() 方法 : 获取字符串的长度

2. charAt() 方法 : 获取指定位置上的字符

3. indexOf() 方法: 获取指定字符出现的位置,从前往后

    lastindexOf()方法 : 获取指定字符出现的位置,从后往前

4. substring() 方法 : 截取字符,从...开始

    substring( , )方法 : 截取字符,从...开始,到...结束

package Stringdemo.Demo;public class Demo4 {public static void main(String[] args) {String s1 = "abcdefg";//['a','b','c','d','e','f','g']System.out.println(s1.length());//获取字符串的长度System.out.println(s1.charAt(2));//获取指定位置上的字符System.out.println(s1.indexOf("c"));//获取指定字符出现的位置,从前往后找System.out.println(s1.indexOf("c",3));System.out.println(s1.lastIndexOf("c"));//从后向前找System.out.println(s1.lastIndexOf("c",2));String s2 = s1.substring(2);//截取字符,从第2个位置开始System.out.println(s2);String s3 =s1.substring(3,4);//截取字符,从第3个位置开始,到第4个位置结束System.out.println(s3);}
}

5.5转换功能

1.将char数组转换为字符串对象的方法:

(1).构造方法

(2).valueOf()方法

2.把字符串转换为char数组的方法:

toCharArray()方法

3.转码解码

getBytes()方法

package Stringdemo.Demo;import java.util.Arrays;public class Demo6 {public static void main(String[] args) {//构造方法String s1 = new String();//创建一个字符串对象 this.value = "".value;String s2 = new String("abcd");//创建String类型的char[] chars ={'a','b','c','d'};//将char数组转为字符串对象的方法:String s3 = String.valueOf(chars);//String类的valueOf()方法String s4 = new String(chars);//构造方法String s5 = "abcd";//把字符串转为char数组的方法:char[] chars1 = s5.toCharArray();//toCharArray()方法Arrays.sort(chars);//对数组进行排序String s6 = new String(chars1);//把排好序的char数组转为字符串 (因为字符串没法排序,只有转为数组才可以排序)System.out.println(s6);//转换功能(转码解码)String s7 = "abcd";//数据在传输时,都是以数字进行传递的byte[] bytes= s7.getBytes();//将看的懂的字符转为看不懂的编码System.out.println(Arrays.toString(bytes));//97 98 99 100String s8 = new String(bytes);//再 将看不懂的字节数组转为看的懂的字符串System.out.println(s8);}
}

5.5 其他功能

 一.将不同类型的数据转换为字符串类型的两种方法

1.toString() 
  用的比较少,如果a的值是整数,就不报错。但是a的值是null,会报错
2.valueOf() ----装箱
  用的比较多 即使值为null,转换时也不会报错

二.大小写转换

1.toLowerCase()
  转小写
2.toUpperCase()
  转大写

三.字符串连接 

concat() : 必须传String类型

四.去除字符串空格

1.trim() 
  去掉字符串前后的空格 不能去掉中间空格
2.replace() 
  使用replace(),将中间空格替换

五.字符串拆分

split() 用指定的分隔符,将一个字符串拆分成数组,不会去除中间的空格

六.字符串替换

replace(原来的字符,替换后的字符)

package Stringdemo.Demo;import java.util.Arrays;public class Demo5 {public static void main(String[] args) {//一.将不同类型的数据转换为字符串类型的两种方法Integer a = null;/*1.toString()方法用的比较少,如果a的值是整数,就不报错。但是a的值是null,会报错。*///String s1 = a.toString();//会报错/*2.valueOf()方法----装箱用的比较多 即使值为null,转换时也不会报错*/String s = String.valueOf(a);System.out.println(s);//二.大小写转换String s3 = "abCD";System.out.println(s3.toLowerCase());// abcd 转小写System.out.println(s3.toUpperCase());// ABCD 转大写//三.字符串连接String s4 = s3.concat("efg");//concat()中必须传String类型System.out.println(s4);//abCDefg 连接字符串//四.去除字符串空格//(1)去除前后空格String s5 = s3.trim();//去掉字符串前后的空格 不能去掉中间空格System.out.println(s5.length());//(2)去除中间空格----使用replace(),将中间空格替换//五.字符串拆分 String s6= "ab;cd :efg;hjk";String[] strings = s6.split(";");//用指定的分隔符,将一个字符串拆分成数组,不会去除中间的空格System.out.println(Arrays.toString(strings));//六.字符串替换String s7= "abcecc";String s8 = s7.replace("ce", "CD");//替换字符 (原来的字符,替换后的字符)System.out.println(s8);}
}


6.StringBuffer StringBuilder类

6.1 定义

    由于String声明的字符串是不可以改变的,每次拼接(+=)都会创建一个对象,效率低
    所以java中提供了两个值可变的字符串对象: StringBufferStringBuilder

6.2 注意

      1.StringBuffer的创建不能通过赋值  即StringBuffer stringBuffer =" ";
                                       只能通过new  即StringBuffer stringBuffer = new StringBuffer();
      2.StringBuffer内部存在一个没有被final修饰的数组(默认长度16),可以向数组中存放字符
         装满后,会自动扩容 同时不会创建新的StringBuffer对象 效率高
      2. StringBuffer : 在多线程场景下是安全的,因为它的方法都加了 锁,一次只允许进一个
          StringBuilder : 它的方法上,没有加锁,所以适合单线程场景

6.3 功能及源码

               添加---删除---替换---逆序

package Stringdemo.StringBuffer;public class StringBufferDemo {public static void main(String[] args) {StringBuffer stringBuffer1 = new StringBuffer();//无参的构造方法,默认容量是16StringBuffer stringBuffer2 = new StringBuffer("abcd");StringBuffer stringbuffer = new StringBuffer(10);//指定新的容量//String s = new StringBuffer(stringBuffer);//可以将StirngBuffer类型转为String类,故此类中提供的方法较少//常用方法:stringbuffer.append("ss");//不能用 += 方法添加字符stringbuffer.append("bb");//向末尾添加元素stringbuffer.insert(3, "cnm");//向指定位置添加元素stringbuffer.deleteCharAt(1);//删除指定位置上的值stringbuffer.delete(0,5);//删除某个区间stringbuffer.replace(0,2,"cccccc");//把某个区间替换成其他stringbuffer.reverse();//逆序字符串  bmncbssSystem.out.println(stringbuffer);}
}
package Stringdemo.StringBuffer;public class  StringBuilderDemo {public static void main(String[] args) {StringBuilder stringBuilder = new StringBuilder();stringBuilder.append("abcd");}}

7. 正则表达式

    7.1定义

        正则表达式(RegEx)是一种文本格式匹配工具,是计算机语言的一种技术,主流编程语言都支持
        使用正则表达式中的元素,制定一个规则,用这个规则与字符串进行匹配 matches(),                  匹配成功返回true,否则返回false

     7.2使用规范及代码

package Stringdemo.RegEx;public class RedExDemo {public static void main(String[] args) {//使用正则表达式,就可以很轻松的进行字符串的格式匹配  举例:验证手机号是否正确//正常方法 :遍历字符串,验证是否存在非数字字符 && 第一位必须为1 && 第二位为3579 && 其他位是数字String s1 = "154sdhsh_54@xxx.com";System.out.println(s1.matches("[0-9]"));//只能匹配一个数字//注意: "-"表示范围 且要用[]表示System.out.println(s1.matches("[0-9]*"));// * 表示不限数字个数System.out.println(s1.matches("[0-9]{3}"));//只能是三个数字System.out.println(s1.matches("[0-9]{3,}"));//数字的个数可在三个以上System.out.println(s1.matches("[0-9]{3,6}"));//至少三个数字,最多6个System.out.println(s1.matches("\\d{3,6}"));//  \\d 相当于[0-9],和上一行表示相同//正则表达式方法:验证11位手机号是否规范System.out.println(s1.matches("[1][3,5,7,8,9][0-9]{9}"));String s = "bc";System.out.println(s.matches("[a-z]"));//只能是 一个 小写字母,不能出现两个字母System.out.println(s.matches("[a-zA-z]"));//表示为任意一个大小写字母System.out.println(s.matches("[A-z]"));//因为a的值是大于A的值,所以不能表达为[a-Z]System.out.println(s.matches("\\w*"));//  \\w 表示为[A-z0-9_]String s2 = "ahidc_ajd@qq.com.cn";//邮箱格式                          154sdhsh_54 @   xxx    .  comSystem.out.println(s2.matches("\\w{6,20}@\\w{2,6}\\.(com|com\\.cn)"));/*注意:1."."可以代表任意字母数字或者符号,所以把 . 替换为 \\. ---->让其只是单纯的 . 而不是任意的字符2.使用正则表达式的时候不要轻易添加空格,可能会格式不正确*/}}

8.Random类

    8.1定义

                  Random类用于产生随机数

    8.2使用规范及代码

package randomdemo;import java.util.Arrays;
import java.util.Random;public class RandomDemo {public static void main(String[] args) {Random random = new Random();System.out.println(random.nextInt());//在int类型的取值范围内随机返回一个整数System.out.println(random.nextBoolean());System.out.println(random.nextFloat());System.out.println(random.nextDouble());//在double类型的取值范围内随机返回一个数System.out.println(random.nextLong());//在0到指定区间内,随机返回一个数  取值范围:[0,指定数)System.out.println(random.nextInt(10));//在0到10之间随机返回一个数//在数组空间中生成随机数byte[] bytes= new byte[10];//创建一个有10个空间的数组random.nextBytes(bytes);System.out.println(Arrays.toString(bytes));//输出}
}

9.Date类

   9.1 定义

        java.sql.Date 连接数据库时使用
        java.util.Date 一个Date类的对象,表示当前系统运行那一刻的时间

    9.2使用方法及源码

package Datedemo;import java.util.Date;public class DateDemo {public static void main(String[] args) {Date date = new Date();System.out.println(date);System.out.println(date.getYear()+1900);//从1900年开始计算System.out.println(date.getMonth()+1);//在英文中1月记忆为0System.out.println(date.getDate());//日System.out.println(date.getDay());//把星期天记为第一周的开始System.out.println(date.getHours());//时System.out.println(date.getMinutes());//分System.out.println(date.getSeconds());//秒//getTime 获得的是从 1970.1.1 0.0.0.秒 到 date对象创建时 所有的毫秒值System.out.println(date.getTime());Date date1 = new Date();System.out.println(date1.getTime()-date.getTime());//获得两次时间的 毫秒差Date date2 = new Date(1739430660659l);//将毫秒差还原成某一时间System.out.println(date2);}
}

10.Calendar 类

      10.1定义:

              相比起Date类中方法,更加全面

              使用时调用 getInstance() 方法

      10.2使用方法及源码

       举例:

package Calendardemo;import java.util.Calendar;public class CalendarDemo {public static void main(String[] args) {//创建一个日历对象Calendar calendar= Calendar.getInstance();//获得Calender的一个子类对象GregorianCalendar//时间表示System.out.println(calendar.get(Calendar.YEAR));//年System.out.println(calendar.get(Calendar.MONTH)+1);//月System.out.println(calendar.get(Calendar.DAY_OF_MONTH));//日System.out.println(calendar.get(Calendar.HOUR));//时 12小时制System.out.println(calendar.get(Calendar.HOUR_OF_DAY));//时 24小时制System.out.println(calendar.get(Calendar.MINUTE));//分System.out.println(calendar.get(Calendar.SECOND));//秒//第... 中第...System.out.println(calendar.get(Calendar.WEEK_OF_MONTH));//月中的第几周System.out.println(calendar.get(Calendar.DAY_OF_WEEK));//周中的第多少天System.out.println(calendar.get(Calendar.DAY_OF_YEAR));//今年的第多少天//其他表达省略.....//相当于Date类中的getTime()方法 获得的是从 1970.1.1 0.0.0.秒 到 date对象创建时 所有的毫秒值System.out.println(calendar.getTimeInMillis());}
}

11.SimpleDateFormat 类

     11.1定义

         日期格式化 (java.text)
        1.将日期类型转为指定格式的字符串 format()
        2.将指定格式的字符串转为日期类型 parse()

      11.2方法及源码

举例:

package SimpleDateFormatdemo;import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;public class SimpleDateFormatDemo  {public static void main(String[] args) throws ParseException {Date date = new Date();//将日期类型 转为字符串类型                              年 月  日  时 分 秒 毫秒 星期SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss  S   E");String s1= simpleDateFormat.format(date);System.out.println(s1);//将字符串类型转为日期类型String dateStr = "2002-02-02";SimpleDateFormat  simpleDateFormat1= new SimpleDateFormat("yyyy-MM-dd");Date date1 = simpleDateFormat1.parse(dateStr);System.out.println(date1);}
}

      11.3格式化表达:

12. BigInteger 类

       12.1 定义

          BigInteger类型是一个数字范围比Integer , Long类型的数字范围大得多的类型,它支持任意精度的整数,即 在运算中 BigInteger 类型可以准确地表示任何大小的整数值而不会丢失任何息。

        12.2使用方法及源码

package BigIntegerdemo;import java.math.BigInteger;public class BigIntegerDemo {public static void main(String[] args) {System.out.println(Long.MAX_VALUE);BigInteger bigInteger1 = new BigInteger("9999999999999999999999");BigInteger bigInteger2 = new BigInteger("1111111111111111111111");//加法BigInteger bigInteger3 = bigInteger1.add(bigInteger2);System.out.println(bigInteger3);//乘法BigInteger bigInteger4 = bigInteger1.multiply(bigInteger2);System.out.println(bigInteger4);//其他方法省略......}
}

13.BigDecimal 类

       13.1定义

      问题: 在计算机中,float 和 double 都是浮点数 , 而计算机是二进制的,浮点数会失去一定的精确度 (根本原因是 十进制浮点值没有完全与之相同的二进制形式 , 十进制浮点值的二进制表示形式不精确,只能无限接近于那个值.)

      举例 : 在金融项目这种情况很危险,例如涉及金额的计算 , 都必须十分精确,如果你的支付宝账户余额显示 193.99999999999998,那是一种怎么样的体验?

      解决方法 : 使用BigDecimal类中的方法进行运算

        13.2使用方法及源码

package BigDecimaldemo;import java.math.BigDecimal;public class BigDecimalDemo {public static void main(String[] args) {//System.out.println(0.1+0.2);//0.30000000000000004//浮点数运算BigDecimal bigDecimal1 = new BigDecimal("0.1");BigDecimal bigDecimal2 = new BigDecimal("0.2");BigDecimal bigDecimal3 = bigDecimal1.add(bigDecimal2);System.out.println(bigDecimal3);BigDecimal bigDecimal4 = new BigDecimal("10");BigDecimal bigDecimal5 = new BigDecimal("3");BigDecimal bigDecimal6 = bigDecimal4.divide(bigDecimal5,3,3);//方法.(要操作的变量,保留小数的位数,进位的模式 )System.out.println(bigDecimal6);}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/93334.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/93334.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

去除视频字幕 2, 使用 PaddleOCR 选取图片中的字幕区域, 根据像素大小 + 形状轮廓

有人问我在搞什么&#xff1a;就是做这里的第2步。问题描述这里误导&#xff0c;误判&#xff0c;太严重了。如果我把这个区域当做是 mask ,那么真正的目标会被去除掉还有什么建议吗&#xff1f;比如我能否根据这个mask 的大致形状来判断它是不是字幕&#xff0c; 如果不是细长…

Ubuntu 连接Visual SVN

Windows服务器上的svn仓库为&#xff1a; https://ldw_online:8443/svn/OnlineRepository/LVC IP地址为192.168.8.8 4. 从 Ubuntu 测试连通性 在 Ubuntu 上可以用&#xff1a; bash 复制编辑 curl -vk https://192.168.8.8:8443/ 如果返回 HTTP 头或 SSL 握手成功&#xff…

JAVA:Spring Boot 集成 Protobuf 的技术指南

🚀 1、简述 在分布式服务通信中,数据序列化与反序列化的效率对系统性能影响极大。Protocol Buffers(Protobuf) 是由 Google 提出的一种高效的结构化数据序列化协议,具有: 🔥 高性能(远优于 JSON/XML) 📦 跨语言支持 📉 较小的体积 本篇将带你了解如何在 Spring…

SQLServer内存释放工具介绍:一款实用的数据库性能优化助手

SQLServer内存释放工具介绍&#xff1a;一款实用的数据库性能优化助手 去发现同类优质开源项目:https://gitcode.com/ 在数据库管理中&#xff0c;内存释放是优化服务器性能的重要环节。本文将为您详细介绍一款名为SQLServer内存释放工具的开源项目&#xff0c;帮助您轻松管理…

《蓝耘容器全栈技术指南:企业级云原生与异构计算实战大全》

&#x1f31f; 嗨&#xff0c;我是Lethehong&#xff01;&#x1f31f; &#x1f30d; 立志在坚不欲说&#xff0c;成功在久不在速&#x1f30d; &#x1f680; 欢迎关注&#xff1a;&#x1f44d;点赞⬆️留言收藏&#x1f680; &#x1f340;欢迎使用&#xff1a;小智初学计…

计算器3.0:实现用户自定义组件

前言&#xff1a; 马总给我提出计算器3.0新需求&#xff1a;可以在页面上输入一个组件&#xff0c;用户的组件库里面就多一个组件&#xff0c;用户就可以使用 一、解决方法&#xff1a; 1. 新增成员变量和初始化 // 新增的输入框 private InputBox newInputBox; // 新增的组…

PIG AI 全新升级:全新 MCP 能力加持,让企业级 AI 开发效率翻倍!

你是否曾为 AI 应用的开发门槛而头疼?调试代码耗费数小时、集成外部工具需要复杂配置、想要快速构建智能系统却不知从何下手…别担心!PIG AI 最新版本带来的 MCP(Model Context Protocol)能力,正为这些问题提供一站式解决方案。本文将带你深入浅出地了解这一重磅升级,手把…

Springboot+vue超市管理系统的设计与实现

文章目录前言详细视频演示具体实现截图后端框架SpringBoot前端框架Vue持久层框架MyBaits成功系统案例&#xff1a;代码参考数据库源码获取前言 博主介绍:CSDN特邀作者、985高校计算机专业毕业、现任某互联网大厂高级全栈开发工程师、Gitee/掘金/华为云/阿里云/GitHub等平台持续…

一文快速了解Docker和命令详解

本文让你快速了解Docker是什么的东西&#xff0c;在我们程序开发的时候到底有什么作用&#xff0c;为什么需要去学习它。本文章只是做一个简单的概述配套黑马课程让你快速了解、使用Docker。 一、什么是Docker&#xff1f; Docker是一个开源的容器化平台&#xff0c;允许开发者…

【GaussDB】如何从GaussDB发布包中提取出内核二进制文件

【GaussDB】如何从GaussDB发布包中提取出内核二进制文件 背景 GaussDB 从505和506版本起&#xff08;前面的版本不清楚&#xff09;&#xff0c;华为官方不再提供用脚本安装GaussDB的方式&#xff08;应该是基于运维交付标准化的角度考虑&#xff09;&#xff0c;仅支持使用T…

ETH 交易流程深度技术详解

概述在前面对 PolkaVM 和 Revive 的文章中&#xff0c;我们介绍了很多技术细节&#xff0c;开发工具。还对比 EVM&#xff0c;知道了 PolkaVM 的优势。很多同学还是对 Polkadot SDK 为什么可以运行 EVM 兼容的智能合约&#xff0c;以及交易处理的整个流程不太清楚。这篇文章将会…

【算法训练营Day17】二叉树part7

文章目录二叉树的最近公共祖先二叉搜索树的最近公共祖先二叉搜索树中的插入操作删除二叉搜索树中的节点二叉树的最近公共祖先 题目链接&#xff1a;236. 二叉树的最近公共祖先 解题逻辑&#xff1a; 最近公共祖先的定义为&#xff1a;对于有根树 T 的两个节点 p、q&#xff0c…

Vue插件与组件核心区别详解

在 Vue 中&#xff0c;插件&#xff08;Plugin&#xff09; 和 组件&#xff08;Component&#xff09; 是两种不同层次的概念&#xff0c;它们的主要区别如下&#xff1a;1. 组件 (Component) 定义&#xff1a; Vue 应用的基本构建单元&#xff0c;是可复用的 Vue 实例&#x…

基础NLP | 02 深度学习基本原理

文章目录 深度学习基本原理 数学基础 线代 numpy 常用操作 导数, 梯度 梯度下降法 梯度下降代码 GradientDescent.py 反向传播 完整的反向传播过程 权重更新方式 pytorch 网络结构 全连接层 (线性层) 例子 - 手动实现模拟一个线性层 DNNforward.py 激活函数 激活函数-Sigmoid…

MySQL面试题及详细答案 155道(001-020)

《前后端面试题》专栏集合了前后端各个知识模块的面试题&#xff0c;包括html&#xff0c;javascript&#xff0c;css&#xff0c;vue&#xff0c;react&#xff0c;java&#xff0c;Openlayers&#xff0c;leaflet&#xff0c;cesium&#xff0c;mapboxGL&#xff0c;threejs&…

Ansible安装与入门

目录 Ansible ansible任务执行模式 ansible执行流程 ansible命令执行过程&#xff08;背会&#xff09; ansible的安装方式 ansible的程序结构&#xff08;yum安装为例&#xff09; ansible的配置文件查找顺序&#xff08;背会&#xff09; 核心配置文件 ansible的配置…

【Spring】Spring Boot启动过程源码解析

目录 一、启动入口 二、SpringApplication的构造过程 2.1 设置应用类型 2.2 设置初始化器&#xff08;Initializer&#xff09; 2.2.1 获取BootstrapRegistryInitializer对象 2.2.2 获取ApplicationContextInitializer对象 2.3 设置监听器&#xff08;Listener&#xff…

CDN架构全景图

CDN架构全景图 CDN&#xff08;内容分发网络&#xff09;是一种通过在全球范围内部署边缘节点服务器&#xff0c;将内容缓存至离用户最近的位置&#xff0c;从而加速内容分发、降低延迟并减轻源站压力的分布式网络架构。其核心设计目标是优化互联网内容传输效率&#xff0c;提升…

【pytest高阶】源码的走读方法及插件hook

一、pytest源码走读方法 依赖库认知篇 &#x1f4e6;这是理解 pytest 源码的 “前菜”&#xff0c;先认识 3 个超重要的小伙伴&#xff1a;iniconfig &#x1f4c4;&#xff1a;像个 “文件小管家”&#xff0c;专门负责读取 ini 配置文件&#xff08;比如 pytest 的配置&#…

算法训练营day32 动态规划理论基础、509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯

今天开始动态规划的部分&#xff01; 其实说白了&#xff0c;动态规划我感觉就是找类似递归的规律&#xff0c; 动态规划理论基础 动态规划&#xff0c;英文&#xff1a;Dynamic Programming&#xff0c;简称DP&#xff0c;如果某一问题有很多重叠子问题&#xff0c;使用动态规…