一、Math类:针对数学运算进行操作的类

  1、常用的方法

    A:绝对值   public static int abs(int a)
    B:向上取整  public static double ceil(double a)
    C:向下取整 public static double floor(double a)
    D:两个数据中的大值 public static int max(int a, int b)
    E:a的b次幂 public static double double pow(double a ,double b)
    F:随机数 public static double random()
    G:四舍五入 public static int round(float a)
    H:正平方根 public static doule sqrt(double)

/**
*
* Math类:、
* A:绝对值   public static int abs(int a)
    B:向上取整  public static double ceil(double a)
    C:向下取整 public static double floor(double a)
    D:两个数据中的大值 public static int max(int a, int b)
    E:a的b次幂 public static double double pow(double a ,double b)
    F:随机数 public static double random()
    G:四舍五入 public static int round(float a)
    H:正平方根 public static doule sqrt(double)
*/ public class Demo {
public static void main(String[] args) {
//取绝对值
System.out.println(Math.abs(-10));
//向上取整
System.out.println(Math.ceil(12.3));//13.0
System.out.println(Math.ceil(12.66));//13.0
//向下取整
System.out.println(Math.floor(12.3));//12.0
System.out.println(Math.floor(12.66));//12.0
//求2个数的最大值
System.out.println(Math.max(3, 4));
//求2个数的最小值
System.out.println(Math.min(3, 4));
//求a的b次幂
System.out.println(Math.pow(2, 3));//相当于2的3次方
//产生一个随机随
System.out.println(Math.random());//随机随范围0.0<=x<1.0
//四舍五入
System.out.println(Math.round(3.4));//
System.out.println(Math.round(3.5));//4
//正平方跟
System.out.println(Math.sqrt(4)); //相当于 Math.pow(4,0.5)
}
}
/**
*
* 需求:请设计一个方法,可以实现获取任意范围内的随机数。
*
* 分析:
* A:键盘录入两个数据。
* int strat;
* int end;
* B:想办法获取在start到end之间的随机数
* 我写一个功能实现这个效果,得到一个随机数。(int)
* C:输出这个随机数
*/ public class Demo {
public static void main(String[] args) {
//键盘输入2个数
Scanner sc = new Scanner(System.in);
System.out.println("请输入start:");
int start = sc.nextInt();
System.out.println("请输入end:");
int end = sc.nextInt();
//在start到end之间产生一个随机数
for(int x =0;x<100;x++){
int c = random(start,end);
//输出随机数
System.out.println(c);}
} //产生随机数的方法
private static int random(int start, int end) {
int num = (int) (Math.random()*(end-start+1))+start;
return num;
}
}

二、Random类:产生随机数的类

/*
* Random:产生随机数的类
*
* 构造方法:
* public Random():没有给种子,用的是默认种子,是当前时间的毫秒值
* public Random(long seed):给出指定的种子
*
* 给定种子后,每次得到的随机数是相同的。
*
* 成员方法:
* public int nextInt():返回的是int范围内的随机数
* public int nextInt(int n):返回的是[0,n)范围的内随机数
*/
public class RandomDemo {
public static void main(String[] args) {
// 创建对象
// Random r = new Random();
Random r = new Random(1111); for (int x = 0; x < 10; x++) {
// int num = r.nextInt();
int num = r.nextInt(100) + 1;
System.out.println(num);
}
}
}

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

  

public class Demo3_System {

    /**
* * A:System类的概述
* System 类包含一些有用的类字段和方法。它不能被实例化。
* B:成员方法
* public static void gc():运行垃圾回收器
* public static void exit(int status):终止当前正在运行的 Java 虚拟机。参数用作状态码;根据惯例,非 0 的状态码表示异常终止。
* public static long currentTimeMillis()获取当前时间的毫秒值从1970年1月1日 00:00:00 开始
* pubiic static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)复制数组
* C:案例演示
* System类的成员方法使用
*/
public static void main(String[] args) {
//demo1();
//demo2();
//demo3(); int[] src = {11,22,33,44,55};
int[] dest = new int[8];
for (int i = 0; i < dest.length; i++) {
System.out.println(dest[i]);
} System.out.println("--------------------------");
System.arraycopy(src, 0, dest, 0, src.length); //将数组内容拷贝 for (int i = 0; i < dest.length; i++) {
System.out.println(dest[i]);
}
} public static void demo3() {
long start = System.currentTimeMillis(); //1秒等于1000毫秒
for(int i = 0; i < 1000; i++) {
System.out.println("*");
}
long end = System.currentTimeMillis(); //获取当前时间的毫秒值 System.out.println(end - start);
} public static void demo2() {
System.exit(1); //非0状态是异常终止,退出jvm
System.out.println("11111111111");
} public static void demo1() {
for(int i = 0; i < 100; i++) {
new Demo();
System.gc(); //运行垃圾回收器,相当于呼喊保洁阿姨
}
} } class Demo { //在一个源文件中不允许定义两个用public修饰的类 @Override
public void finalize() {
System.out.println("垃圾被清扫了");
} }

四、BigInteger类:可以让超过Integer范围内的数据进行运算

/**
** A:BigInteger的概述
* 可以让超过Integer范围内的数据进行运算
* B:构造方法
* public BigInteger(String val)
* C:成员方法
* public BigInteger add(BigInteger val) 加法
* public BigInteger subtract(BigInteger val) 减法
* public BigInteger multiply(BigInteger val) 乘法
* public BigInteger divide(BigInteger val) 除法
* public BigInteger[] divideAndRemainder(BigInteger val) 取除法运算后的结果(商)和余数
*/
public class Demo {
public static void main(String[] args) {
BigInteger bi1 = new BigInteger("5");
BigInteger bi2 = new BigInteger("2"); System.out.println(bi1.add(bi2));//bi1+bi2
System.out.println(bi1.subtract(bi2));//bi1-bi2
System.out.println(bi1.multiply(bi2));//bi1*bi2
System.out.println(bi1.divide(bi2));//bi1/bi2
BigInteger[] arr = bi1.divideAndRemainder(bi2);//取商和余数
for(int x=0;x<arr.length;x++){
System.out.println(arr[x]);// 商:2 余数;1
} } }

五、BigDecimal类:不可变的、任意精度的有符号十进制数,可以解决数据丢失问题

public class Demo5_BigDecimal {

    /**
* * A:BigDecimal的概述
* 由于在运算的时候,float类型和double很容易丢失精度,演示案例。
* 所以,为了能精确的表示、计算浮点数,Java提供了BigDecimal * 不可变的、任意精度的有符号十进制数。
* B:构造方法
* public BigDecimal(String val)
* C:成员方法
* public BigDecimal add(BigDecimal augend)
* public BigDecimal subtract(BigDecimal subtrahend)
* public BigDecimal multiply(BigDecimal multiplicand)
* public BigDecimal divide(BigDecimal divisor)
       * public BigDecimal divide(BigDecimal divisor,int scale,int roundingMode):商,几位小数,如何舍取
 */
* D:案例演示
* BigDecimal类的构造方法和成员方法使用
十进制表示1/3
0.3333333333333333333333333333333333333333
*/
public static void main(String[] args) {
//System.out.println(2.0 - 1.1);
/*BigDecimal bd1 = new BigDecimal(2.0); //这种方式在开发中不推荐,因为不够精确
BigDecimal bd2 = new BigDecimal(1.1); System.out.println(bd1.subtract(bd2));*/ /*BigDecimal bd1 = new BigDecimal("2.0"); //通过构造中传入字符串的方式,开发时推荐
BigDecimal bd2 = new BigDecimal("1.1"); System.out.println(bd1.subtract(bd2));*/ BigDecimal bd1 = BigDecimal.valueOf(2.0); //这种方式在开发中也是推荐的
BigDecimal bd2 = BigDecimal.valueOf(1.1); System.out.println(bd1.subtract(bd2));
     System.out.println("divide:"
                    + bd1.divide(bd2, 3, BigDecimal.ROUND_HALF_UP));
}

六、Date类:表示特定的瞬间,精确到毫秒

    构造方法:
       Date():根据当前的默认毫秒值创建日期对象
       Date(long date):根据给定的毫秒值创建日期对象

    成员方法:

      public long getTime():获取时间,以毫秒为单位
      public void setTime(long time):设置时间
  
         从Date得到一个毫秒值
        getTime()
      把一个毫秒值转换为Date
         构造方法
        setTime(long time)

/**
* Date类:表示特定的瞬间,精确到毫秒
构造方法:
       Date():根据当前的默认毫秒值创建日期对象
       Date(long date):根据给定的毫秒值创建日期对象
    成员方法:
      public long getTime():获取时间,以毫秒为单位
      public void setTime(long time):设置时间
  
         从Date得到一个毫秒值
        getTime()
      把一个毫秒值转换为Date
         构造方法
        setTime(long time)
*/ public class Demo {
public static void main(String[] args) {
/*Date d = new Date();
System.out.println(d);//输出当前时间 年月日 小时 :分:秒 Date d = new Date(1000);//输入的毫秒数
System.out.println(d);//得到的结果是从1970年1月1日 00:00:00秒后加上给定的毫秒数后的时间
*/
/*Date d = new Date();
d.setTime(1000);
System.out.println(d);//和Date(long time)一样
*/
Date d = new Date();
System.out.println(d.getTime());//获取从1970年1月1日到当前时间的毫秒数,相当于System.currentTimeMills()
System.out.println(System.currentTimeMillis());
} }

七、DateForamt类:可以进行日期和字符串的格式化和解析,但是由于是抽象类,所以使用具体子类SimpleDateFormat。

  SimpleDateFormat的构造方法:
           SimpleDateFormat():默认模式
           SimpleDateFormat(String pattern):给定的模式

                        年 y
                        月 M 
                        日 d
                        时 H
                        分 m
                        秒 s

    DateForamt类的成员方法
           public final String format(Date date):将一个 Date 格式化为日期/时间字符串。
           public Date parse(String source): 将自定义的时间格式字符串转成 英文格式的时间 时间字符串必须与构造函数中的格式一致

public class Demo {

    public static void main(String[] args) throws ParseException {
Date d = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
System.out.println(sdf.format(d)); String str = "2017/12/33 22:90:20";
Date d2 = sdf.parse(str);
System.out.println(d2);        Date d3 = new Date();
    SimpleDateFormat sdf2 = new SimpleDateFormat();//默认格式
    System.out.println(sdf2.format(d3)); } 结果:2017/04/05 17:00:21
Tue Jan 02 23:30:20 CST 2018
17-4-5 下午5:00

八、Calendar类:是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。

   成员方法
      public static Calendar getInstance() 使用默认时区和语言环境获得一个日历。
      public int get(int field) 返回给定日历字段的值
 
   public void add(int field,int amount) 根据日历的规则,为给定的日历字段添加或减去指定的时间量
   public final void set(int year,int month,int date)设置日历字段 YEARMONTHDAY_OF_MONTH 的值

public class Demo {

    public static void main(String[] args) throws ParseException {
Calendar c = Calendar.getInstance();// 使用默认时区和语言环境获得一个日历
System.out.println(c);
//public int get(int filed)演示
int a = c.get(Calendar.DAY_OF_MONTH);
System.out.println(a);
System.out.println(c.get(Calendar.YEAR));//获取年
System.out.println(c.get(Calendar.MONTH));//获取月,是从零开始算起
System.out.println("现在的日期是:"+c.get(Calendar.YEAR)+"年"+(c.get(Calendar.MONTH)+1)+"月"+c.get(Calendar.DAY_OF_MONTH)+"日"); //public void add(int field,int amount) 根据日历的规则,为给定的日历字段添加或减去指定的时间量
c.add(Calendar.YEAR, -1);//返回一年前
System.out.println("一年前的今天是:"+c.get(Calendar.YEAR)+"年"+(c.get(Calendar.MONTH)+1)+"月"+c.get(Calendar.DAY_OF_MONTH)+"日"); //未来5年的2个月前10天后 即 2023年216号
c.add(Calendar.YEAR, 5);
c.add(Calendar.MONTH, -2);
c.add(Calendar.DAY_OF_MONTH, 10);
System.out.println("未来的日期是:"+c.get(Calendar.YEAR)+"年"+(c.get(Calendar.MONTH)+1)+"月"+c.get(Calendar.DAY_OF_MONTH)+"日"); //public final void set(int year,int month,int date)设置日历字段 YEAR、MONTH 和 DAY_OF_MONTH 的值
c.set(2008, 8, 8);
int year = c.get(Calendar.YEAR);
int mouth = c.get(Calendar.MONTH);
int date = c.get(Calendar.DATE); System.out.println("获得的日期是:"+year+"年"+mouth+"月"+date+"日"); } }

java学习笔记--常用类的更多相关文章

  1. Java学习笔记——File类之文件管理和读写操作、下载图片

    Java学习笔记——File类之文件管理和读写操作.下载图片 File类的总结: 1.文件和文件夹的创建 2.文件的读取 3.文件的写入 4.文件的复制(字符流.字节流.处理流) 5.以图片地址下载图 ...

  2. Java学习笔记之---类和对象

    Java学习笔记之---类和对象 (一)类 类是一个模板,它描述一类对象的行为和状态  例如:动物类是一个类,动物们都有属性:颜色,动物们都有行为:吃饭 public class Dog { Stri ...

  3. Java学习笔记-File类的基本方法

    要渐渐养成写博客的习惯-----> 前段时间看Mars的java中的I/O流没怎么懂,发现I/O流好难啊.今天重新看一遍其他教学,还有书籍,做些笔记,记录下每天的学习生活. File类的一些方法 ...

  4. Java学习笔记 04 类和对象

    一.类和对象的概念 类 >>具有相同属性和行为的一类实体 对象 >>实物存在的实体.通常会将对象划分为两个部分,即静态部分和动态部分.静态部分指的是不能动的部分,被称为属性,任 ...

  5. 0018 Java学习笔记-面向对象-类的基本要素

    类与对象 大街上一个个的人,就是一个个对象 类是对一群对象的抽象,比如人都有性别.年龄.姓名,都会吃饭.睡觉等.姓名性别可以抽象为变量,吃饭睡觉可以抽象为方法,像下面一样定义个类来形容人 public ...

  6. Java学习笔记——SequenceInputStream类合并文件的综合举例分析

    SequenceInputStream 介绍 SequenceInputStream 类表示其他输入流的逻辑串联,即文件的合并. 它从输入流的有序集合开始,并从第一个输入流开始读取,直到到达文件末尾, ...

  7. Java学习笔记-嵌套类

    嵌套类 嵌套类有两种类别:static and non-static,分别对应为静态嵌套类和内部类. class OuterClass { ... static class StaticNestedC ...

  8. Java学习笔记7---父类构造方法有无参数对子类的影响

    子类不继承父类的构造方法,但父类的构造方法对子类构造方法的创建有影响.具体来说就是: ①.当父类没有无参构造方法时,子类也不能有无参构造方法:且必须在子类构造方法中显式以super(参数)的形式调用父 ...

  9. Java学习笔记之——类与对象

    1.参数的传递方式 1)值传递 2)引用传递 2.类和对象: (1)类的定义: public class 类名{ 类型 属性1: 类型 属性2: ……… public 返回值类型 方法名1(形参){ ...

随机推荐

  1. 函数编程——匿名函数与lambda(一)

    python允许用lambda关键字创造匿名函数. 匿名函数是因为不需要以标准的方式来声明,比如说,使用def语句. 但是,作为函数,它们也能有参数. 一个完整的lambda“语句”代表了一个表达式, ...

  2. 异动K线2--600532做一个分析时再给大家一只个股和近日大盘的分析

    http://bbs.tianya.cn/post-stocks-612892-3.shtml ————看了一页就感觉没什么太大的意义 选时重于选股 这是一条股市生存的基本法则 看看天涯真正的高手 现 ...

  3. 一种基于自定义代码的asp.net网站访问IP过滤方法!

    对于一些企业内部核心系统,特别是外网访问的时候,为了信息安全,可能需要对外部访问的IP地址作限制,虽然IIS中也提供了根据IP地址或IP地址段进行限制或允许,但并没有提供根据IP地址所在的城市进行限制 ...

  4. LeetCode:对角线遍历【498】

    LeetCode:对角线遍历[498] 题目描述 给定一个含有 M x N 个元素的矩阵(M 行,N 列),请以对角线遍历的顺序返回这个矩阵中的所有元素,对角线遍历如下图所示. 示例: 输入: [ [ ...

  5. Harbor私有仓库搭建

    1.安装docker yum install -y dockersystemctl start dockersystemctl enable docker 2.安装docker-compose 1.下 ...

  6. 运维角度浅谈MySQL数据库优化

    一个成熟的数据库架构并不是一开始设计就具备高可用.高伸缩等特性的,它是随着用户量的增加,基础架构才逐渐完善.这篇博文主要谈MySQL数据库发展周期中所面临的问题及优化方案,暂且抛开前端应用不说,大致分 ...

  7. javascript;Jquery;获取JSON对象,无刷新评论实例。

      <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> < ...

  8. gem Errno::ECONNRESET: Connection reset by peer - SSL_connect

    问题描述 在使用gem安装软件包时,会时常遇到下面的问题: ERROR: While executing gem ... (Gem::RemoteFetcher::FetchError) Errno: ...

  9. [RK3288][Android6.0] TS-ADC驱动流程小结【转】

    本文转载自:https://blog.csdn.net/kris_fei/article/details/55045936 Platform: RK3288OS: Android 6.0Kernel: ...

  10. create_workqueue和create_singlethread_workqueue【转】

    本文转载自:http://bgutech.blog.163.com/blog/static/18261124320116181119889/ 1. 什么是workqueueLinux中的Workque ...