首页 > 编程语言 > 详细

java常用类

时间:2021-08-02 23:20:35      阅读:41      评论:0      收藏:0      [点我收藏+]

常用类

1.包装类

基本数据类型 对应的包装类 继承关系
byte Byte --》Number--》Object
short Short --》Number--》Object
int Integer --》Number--》Object
long Long --》Number--》Object
float Float --》Number--》Object
double Double --》Number--》Object
char Character Object
boolean Boolean Object

Integer

  • 被final修饰,不能被继承

  • 属性:MAX_VALUE表示int类型能够表示的最大值

    ? MIN_VALUE表示int类型能够表示的最小值

  • 没有无参构造器,可以传入int或String类型的数据

Integer i=new Integer(10);
Integer j=new Integer("15");
Integer l=new Integer("asd");//编译通过,运行异常!!!转换不了

? 数字格式化异常:java.lang.NumberFormatException

  • 自动装箱和自动拆箱(JDK1.5之后)

    Integer i=128;//自动装箱
    Integer k=128;//自动装箱
    int j=i;//自动拆箱
    System.out.println(i+1);//自动拆箱后运算
    i==k//false ==不会触发自动拆箱,比较的是两个对象的地址
    Integer m=127;//自动装箱
    Integer n=127;//自动装箱
    m==n;//true!!!!!!!!!	m和n指向同一个对象
    

    Java中为提高效率,将【-128,127】之间的所有包装对象提前建好,放入方法区的整数型常量池中,只要使用这个区间的数据,不需要再new,直接在常量池中取(Integer类加载时会初始化整数型常量池)

  • comparaTo方法

    相等返回0,i<j返回-1,i>j返回1

    Integer i=new Integer(10);
    Integer j=new Integer("15");
    i.comparaTo(j);//相等返回0,i<j返回-1,i>j返回1
    
  • equals方法

    i.equals(j);//相等返回true,否则返回
    
  • intValue();

    将Integer转换成int类型

    Integer i=new Integer(10);
    int j=i.intValue();
    
  • parseInt(String s); 静态方法

    将字符串数字转换成int类型

    int i=Integer.parseInt("123");
    
  • toBinaryString(int i); 静态方法

    将10进制转换成二进制字符串

    String s=Integer.toBinaryString(7);//s="111"
    
  • valueOf(int i)/(String s); 静态方法

    将int类型、String类型转换成Integer

![image-20210802133858045](C:\Users\Monster y\AppData\Roaming\Typora\typora-user-images\image-20210802133858045.png)

2.日期相关

### 		**java.util.Date**
  • date对象

    Date nowTime =new Date();//获取系统当前时间,精确到毫秒
    
  • after(Date d); before(Date d); compareTo(Date d);

    比较时间先后

    nowTime1.after(nowTime2);//1时刻在2时刻后面返回true
    nowTime1.before(nowTime2);//时刻在2时刻前面返回true
    nowTime1.comparaTo(nowTime2);//1时刻在2时刻后面返回1,相等返回0,否则返回-1
    

java.util.Calendar

  • Calendar对象

    Calendar c=Calendar.getInstance();
    System.out.println(c.getTime());//打印时间信息
    
  • 获取毫秒数

    自1970年以来到当前系统时间的总毫秒数

    System.out.println(c.getTimeInMillis());//打印毫秒数
    
  • 获取时间信息

    int year=c.get(Calendar.YEAR);
    int month=c.get(Calendar.MONTH);//月份返回0~11,比正常月份少一!!
    int day=c.get(Calendar.DAY_OF_MONTH);
    int hour=c.get(Calendar.HOUR_OF_DAY);
    int minute=c.get(Calendar.MINUTE);
    int second=c.get(Calendar.SECOND);
    
  • 修改时间

    Calendar c2=Calendar.getInstance();
    c2.set(Calendar.DAY_OF_MONTH,21);//将c2的日期改为21号
    
  • add方法修改时间

    Calendar c3=Calendar.getInstance();
    c3.add(Calendar.HOUR,-2);//小时减2
    
  • 获取当前时间月份的最大天数

    int max=c.getActuaMaximum(Calendar.HOUR_OF_DAY);//28,29,30,31
    

SimpleDateFormat

yyyy 年份如2020
MM 月份如9
dd
HH
mm
ss
SSS 毫秒
System.out.println("========================"); 
SimpleDateFormat s=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss SSS");//创建SimpleDateForma对象
Date d=new Date();//创建Date对象
String str=s.format(d);//格式化Date(日期---->字符串)System.out.println(str);//解析(字符串--->日期)
Date d2=s.parse(str);//解析时字符串必须与SimpleDateForma对象的格式一致
System.out.println("========================");

技术分享图片

3.System类

  • 数组复制

    arraycopy(目标数组,拷贝起始下标(包括),结果数组,复制起始下标(包括),长度);

    int[] arr={20,16,16,200,31,91,52};
    int[] dest= new int[7];
    System.arraycopy(arr,4,dest,4,3);//dest:0 0 0 0 31 91 52
    
  • 获取系统时间毫秒数

    System.out.println(System.currentTimeMillis());
    
  • 垃圾回收

    垃圾回收器不会回收常量池中的内存

     System.gc();//让垃圾回收器回收垃圾
    
  • 推出程序

    System.exit(0);
    

4.String类

1.字符串是常量,创建后不可改变

2.字符串字面值存储在字符串池中(方法区内存),可以重复使用

String s="hello";//字符串池中创建一个“对象”,s指向他
String s1="hello";//s和s1指向的地址相同
String s2=new String("你好");//在堆内存和字符串常量池中各有一个对象
//s2指向堆内存中的对象,堆内存中的对象指向常量池中的对象
String s3=new String("你好");//s2和s3指向的地址不同,分别指向堆内存中的两个对象
//堆内存的两个对象指向常量池中的同一个对象
  • length();

    返回字符串的长度

  • charAt(int index);

    返回某个位置的字符,index范围:0~(length-1)

    若超过范围会出现字符串下标越界异常:java.lang.StringIndexOutOfBoundsException

  • contains(String str);

    判断是否包含某个子字符串,返回boolean类型

  • toCharArray();

    返回字符串对应的数组

  • indexOf(String s); lastIndexOf(String s)

    返回子字符串首次/最后出现的位置 index范围:0~(length-1)

  • trim();

    去掉字符串前后的空格,返回新的zfc

  • toUpperCase(); toLowerCase();

    把小写转换成大写/大写转换成小写,返回新的字符串

  • endWith(String s); startWith(String s);

    判断是否以字符串s结尾/开头,返回boolean类型

  • replace( oldstr , newstr );

    用新的字符串替换旧的字符串,并返回新的字符串

  • split(String s);

    对字符串进行拆分,返回字符串数组

    String s="i  ,am Chinese !";
    String[] s1=s.split(" ");//以空格为标准拆分
    String[] s2=s.split("[ ,]");//[]表示多种拆分标准,这里选择空格和“,”
    String[] s1=s.split("[ ,]+");//这里+使连续多个空格或“.”只表示一个拆分标准
    
  • equals(String s);

    String s="hello";
    Strings1="Hello";
    System.out.println(s.equals(s1));//false
    System.out.println(s.equalsIngnoreCase(s1));//true,这里比较时忽略大小写
    
  • comparaTor(String s);

    对两个字符串逐个字符比较,当有一个不相同时结束比较,返回ASCII差值,若一个字符串结束后仍未比出结果,返回字符串长度差值,完全相等返回0

  • 应用

    //在text前面加一个easyString s="this is a text";
    String str=s.replace("text","easy text");
    System.out.println(str);//将每个单词首字母大写
    String news="";       
    String[] arr=s.split(" ");//拆成字符串数组      
    for (int i = 0; i < arr.length; i++) {          
       char first=arr[i].charAt(0);//取出首字母
       char Upperfirst=Character.toUpperCase(first);//找到对应大写
       String newss = Upperfirst+arr[i].substring(1);//替换   
       news=news+newss+" ";//拼接成一个新字符串 
       }
       System.out.println(news);
    

可变长字符串

如果要进行大量的字符串拼接操作,为避免浪费常量池里的空间,提高效率,建议使用:

java.lang.StringBuffer和java.lang.StringBuilder

区别:StringBuffer中的方法都有synchronized关键字修饰,表示其在多线程环境下运行是安全的

  • append(String s); 追加

    StringBuffer sb=new StringBuffer();
    sb.append("java第一");
    System.out.println(sb.toString());
    
  • insert(int offset,String s); 添加

    offset不是index

    StringBuffer sb=new StringBuffer();
    sb.append("java第一");
    System.out.println(sb.toString());
    sb.insert(4,"永远");
    System.out.println(sb.toString());//“java永远第一”
    
  • replace( int firstIndex ,int lastIndex , String s ); 替换

    前闭后开,替换范围包括firstIndex,不包括lastIndex

  • delete(int firstIndex,int lastIndex); 删除

    前闭后开,替换范围包括firstIndex,不包括lastIndex

    sb.delete(0,sb.length());//清空
    

5.BigDecimal类

double的精度问题

double d1=1.0;
double d2=0.9;
System.out.println(d1-d2);//0.09999999999999998

BigDecimal

BigDecimal bd1=new BigDecimal("1.0");
BigDecimal bd2=new BigDecimal("0.9");
BigDecimal r1=bd1.subtract(bd2);//相减
System.out.println(r1);//0.1

传入的参数用字符串的形式!!!

  • subtract(); 减法

  • add(); 加发

  • multiply(); 乘法

  • divide(BigDecimal bd, int scal , RoundingMode mode ); 除法

    执行除法运算时要抛出错误

    scal: 指定精确到小数点后几位

    mode:指定小数部分取舍模式,通常采用四舍五入,

    ? 取值:BigDecimal.ROUND_HALF_UP

6.Object类

超类、基类,所有类的直接或间接父类,位于继承树最顶层

Object类型可以储存任何对象,作为参数可接受任何对象,作为返回值可返回任何对象

  • getClass();

    返回引用中存储的实际对象类型,通常用于判断两个引用实际存储对象是否一致

    Object o1=new Student();
    Person o2=new Person();
    Class c1=01.getClass();
    Class c2=02.getClass();
    c1==c2;//false
    
  • hashCode();

    返回该对象的哈希码值

    哈希值是根据对象的地址或字符串或数字使用hash算法计算处的int类型数值

  • toString();

    返回该对象的字符串表示

    建议根据程序需求覆盖该方法

    快捷键:alt+insert--->toString

  • equals(Object obj);

    默认判断两个对象的地址是否相等

    建议根据程序需求覆盖该方法

    覆盖步骤

    • 判断obj是否为空
    • 判断是否是同一个引用
    • 判断引用指向的实际对象类型是否一致
    • 将obj强制类型转换
    • 依次比较各个属性是否相同

    快捷键:alt+insert--->equals

  • finalize();

    当对象被判定为垃圾对象时,JVM自动调用此方法,用以标记此对象,进入回收队列

    • 垃圾对象:没有有效引用指向此对象时,视为垃圾对象
    • 垃圾回收:由GC销毁垃圾对象,释放储存空间
    • 自动回收机制:JVM内存耗尽,一次性回收所有垃圾对象
    • 手动回收机制:使用System.gc();通知JVM执行垃圾回收

java常用类

原文:https://www.cnblogs.com/yangzx-hust/p/15091845.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!