前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >常用类

常用类

作者头像
木瓜煲鸡脚
发布2019-07-22 16:09:01
3940
发布2019-07-22 16:09:01
举报
文章被收录于专栏:Jasper小笔记Jasper小笔记

了解常用类及它们的常用方法

main方法

首先从我们最熟悉的的main方法开始

也就是public static void main(String[] args){ }

我们都知道main方法是程序的入口

当运行时JVM会自动去调用main方法

JVM调用main方法是识别"main"这个名字所以名字不能改

mian方法中还有一个字符串数组的参数args

在运行前可以给main的这个参数传入值

传入参数每个元素以空格形式隔开

控制台方式:

eclipse方式:

代码语言:javascript
复制
class test{
  public static void main(String[] args) {
    for (String i : args) {
      System.out.println(i);
    }
    System.out.print(args.length);
  }
}

传入: a b c
结果: 
      a
      b
      c
      3

Scanner类

Scanner来自java.util

主要用来获取键盘输入的类

代码语言:javascript
复制
import java.util.Scanner;
// 试例常用方法
class test{
  Scanner scan = new Scanner(System.in);
  public static void main(String[] args){
    int a = scan.nextInt();
    double b = scan.nextDouble();
    String c = scan.nextLine();
  }
}

System类

System类属于java.lang包下的不用导包

我们经常使用的就有System.out.println()

out实际上是它的一个静态字段并且是一个引用类型(PrintStream),println()就PrintStream类的一个方法。

看看System的常用方法

方法1:arraycopy(Object src, int srcPos, Object dest, int destPos, int length)

把一个数组从指定位置开始复制指定个数到另一个数组的指定位置

代码语言:javascript
复制
import java.util.Arrays;// 导入Arrays用来打印数组

class Season{
  
  public static void main(String[] args) {
    int[] arr = { 4, 6, 3, 8, 2};
    String[] test = new String[10];
    System.arraycopy(arr, 1, test, 2, 3);// (源数组,复制起始的位置,目的数组,粘贴的起始位置,复制的个数)
    System.out.println(Arrays.toString(test));
  }
}

方法二:currentTimeMillis() 返回从1970年到当下的时间长度单位毫秒

代码语言:javascript
复制
class Season{
  
  public static void main(String[] args) {
    Long a = System.currentTimeMillis();
    System.out.println(a);
  }
}

结果是很长的一段数

方法三:exit(int status) 关闭当前运行的虚拟机

代码语言:javascript
复制
class Season{
  
  public static void main(String[] args) {
    System.exit(0);// 传入一个整形参数一般设0
    System.out.println("没有关闭");
  }
}

结果:虚拟机关闭执行不出下面的打印语句

方法四:gc() 直接运行垃圾回收器

代码语言:javascript
复制
class Season{
  @Override
  protected void finalize() throws Throwable {// 当本类有对象被回收就会调用此方法
    // TODO Auto-generated method stub
    super.finalize();
    System.out.println("有对象被回收");
  }
  public static void main(String[] args) {
    new Season();// 创建两个没有被指向的对象(垃圾)
    new Season();
    System.gc();// 清除内存中的垃圾
  }
}
结果:
    有对象被回收
    有对象被回收

Math类

Math类来自java.lang不用导包直接用

它里面都是有关数学的方法

有两个静态常量字段E和PI(自然对数的基数和圆周率)

试例常用的几个方法

方法一:max(,),min(,)比较两个数的大小返回

代码语言:javascript
复制
class Season{
  
  public static void main(String[] args) {
    int a=4;
    int b=5;
    int min = Math.min(a,b);
    int max = Math.max(a,b);
    System.out.println(min);
    System.out.println(max);
  }
}

结果: 
     4
     5

方法二:sqrt( 数) 开平方根

代码语言:javascript
复制
class Season{
  
  public static void main(String[] args) {
    int a = 4;
    int b = 9;
    System.out.println(Math.sqrt(a));
    System.out.println(Math.sqrt(b));
  }
}

结果:
     2
     3

方法三:random() 返回[0,1)之间的随机数

代码语言:javascript
复制
class Season{
  // 实际上Math里面用的random(),是调用了Random类中的方法具体参考文档
  public static void main(String[] args) {
    
    System.out.println(Math.random()*10);
    System.out.println((int)(Math.random()*10));
    
  }
}

结果:
      3.083286699601188
      7
      

BigDeciaml类

属于java.math包中,用于精度更高的计算,还有大整数BigInteger详情见文档

代码语言:javascript
复制
import java.math.BigDecimal;
/*  
    ROUND_UNNECESSARY不舍
    ROUND_DOWN直接舍,ROUND_UP直接舍后最后一位进一
    ROUND_CELLING正入负舍,ROUND_FLOOR负入正舍
    ROUND_HALF_UP四舍五入,ROUND_HALF_DOWN五舍六入,ROUND_HALF_EVEN四舍六入五看奇数
   */   
class Season{
  
  public static void main(String[] args) {
    
    BigDecimal a = new BigDecimal("0.3");
    BigDecimal b = new BigDecimal("0.4");
    
    System.out.println(a.subtract(b));// 减
    System.out.println(b.divide(a,4,BigDecimal.ROUND_DOWN));// 除
    System.out.println(a.add(b));// 加
    System.out.println(a.multiply(b));// 乘
  }
}

结果:
    -0.1
    1.3333
    0.7
    0.12
      

String类

不可变字符串String

可变字符串StringBuilder,StringBuffer

字符串类实际上是用字符类型数组value在存储

代码语言:javascript
复制
class Season{
  // 不可变字符串String试例
  public static void main(String[] args) {
    String str1 = "bacbad";// 字符串字面量在方法区寻找有就指向没有就创建一个
      String str2 = new String("bacbad");//在堆中新建对象,对象属性即字符串字面量在方法区寻找如果有对象去指向,没有就在方法区新建  
      System.out.println(str1.length());// 字符串长度
      System.out.println(str1.charAt(2)); // 指定元素
      System.out.println(str1.indexOf("ba"));// 返回指定字符串第一次出现的角标
      System.out.println(str1.lastIndexOf("ba"));// 返回指定字符串最后一次出现的角标
      System.out.println(str1.toLowerCase());// 字符串转小写
      System.out.println(str1.toUpperCase());// 字符串转大写
      System.out.println(str1.equals(str2));// String类中重写了此方法变成比较个value各元素来,而不是只是比较地址
      System.out.println(str1.equalsIgnoreCase("abaCbaD"));// 忽略大小写比较两字符串是否相等
      System.out.println(Arrays.toString(str1.split("a")));// 去除指定的字符把原字符串分成几部分成为一个字符串数组
      System.out.println(str1.startsWith("c"));// 反会指定字符串是否该字符串的开头
      System.out.println(str1.substring(3));// 从指定角标截取出字符串
      System.out.println(str1.substring(3,5));// 截取指定段返回字符串
      System.out.println(str1.trim());// 去除前后空格
      System.out.println(str1.replace("a","c"));// 把该字符串的指定字符换成另一个指定字符
    
  }
}

  结果:      
        6
        c
        0
        3
        bacbad
        BACBAD
        true
        false
        [b, cb, d]
        false
        bad
        ba
        bacbad
        bccbcd
代码语言:javascript
复制
class Season{
  public static void main(String[] args) {
    
    StringBuilder a = new StringBuilder("aarbg");
    a.append("ss");// 在后添加
    a.insert(3,"tt");// 指定插入
    a.deleteCharAt(1);// 指定删除
    System.out.println(a);
    System.out.println(a.reverse);// 字符串反转
    
  }
}


 结果:
      arttbgss
      ssgbttra

日期相关类

Date类

来自java.util包

得到日期时间可以精确到毫秒

代码语言:javascript
复制

import java.util.Date;

class Season{
  public static void main(String[] args) {
    
      Date date = new Date();
      
      System.out.println(date);
      System.out.println(date.toLocaleString());// 转化为本地时间格式,Date中已弃用
  }
  
}

结果:
      Mon Jul 08 12:56:53 CST 2019
      2019-7-8 12:56:53
      

DateFormat类

来自java.text包

代码语言:javascript
复制
import java.text.DateFormat;
import java.util.Date;

class Season{
  public static void main(String[] args) {
    
      Date date = new Date();
      
      DateFormat a = DateFormat.getDateInstance();// 得到格式器,只获得日期填参数选择风格不填默认SHORT
      DateFormat b = DateFormat.getTimeInstance();// SHORT风格,选取时间的格式器
      DateFormat c = DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.SHORT);// 选取时间+日期,日期LONG时间SHORT风格的格式器
      
      System.out.println(a.format(date));// 格式器来格式日期,返回字符串
      System.out.println(b.format(date));
      System.out.println(c.format(date));
      
    
  }
  
}

结果:
      2019-7-8
      13:49:51
      2019年7月8日 下午1:49

SimpleDateFormat类

DateFormat的子类也是来自java.text

代码语言:javascript
复制
import java.text.SimpleDateFormat;
import java.util.Date;

class Season{
  public static void main(String[] args) {
    
      Date date = new Date();
      SimpleDateFormat a  = new SimpleDateFormat();
      d.applyPattern("yyyy-MM-dd hh:mm");// y表示年,M表示月,d表示日用它们来自定义日期显示
      System.out.println(d.format(date));
      
    
  }
}
结果:
    2019-07-08 01:59

结尾

通过集中式的查找编写,增加了常用的类和方法的熟悉感

java|算法|随笔

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-07-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 IT那个小笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档