常用API

Object
equals() 比较的是两个对象的内存地址
重写quals方法
public boolean equals(Object obj) {
if(this == obj) {
return false;
}
//对参数进行非空判断
if(obj == null) {
return false;
}
//对参数类型进行判断
if(obj instanceof Person) {
//对obj向下转型
Person p = (Person)obj;
return this.age == p.age;
}
//如果参数类型不一致,返回false
return false;
}
toString方法 返回对象的内存地址
重写toString方法

public String toString() {
return name+age;
}
String:字符串类
String(byte[] bytes) 把字节数组转成字符串
String(byte[] bytes, int offset, int length) 把字节数组的一部分转成字符串
String(char[] value, int offset, int count) 把字符数组的一部分转成字符串
int length() 返回字符串的长度
String substring(int beginIndex,int endIndex) 截取字符串的一部分
startsWith(String prefix) 测试此字符串是否以指定的前缀开始
endsWith(String prefix) 测试此字符串是否以指定的后缀开始
boolean contains(String s) 判断一个字符串是否包含在另一个字符串中
int indexOf(char ch) 查找一个字符在字符串中第一次出现的索引
byte[] getBytes() 将字符串转换成字节数组 和byte数组相关的功能,都会查询编码表
char[] toCharArray() 将字符串转换成字符数组
equalsIgnoreCase(String s) 判断两个字符串是否相等 忽略大小写
分别判断一个字符串中大写字母、小写字母、数字的个数
StringBuffer:字符串缓冲区
StringBuffer方法
append() 将任意数据类型的数据,添加到缓冲区中
delete() 删除缓冲区的字符 含头不含尾
insert() 在指定索引位置插入数据
replace() 将替丁范围内的字符替换成新的字符串
reverse() 将字符串缓冲区的字符反转
toString() 将缓冲区的所有字符转换成字符串
StringBuiler和StringBuffer类相同,只是StringBuffer具备线程安全,这就意味着StringBuffer的性能较差,我们首选使用StringBuiler,因为速度快
Date类
毫秒的0点:时间原点,1970年1月1日,0点0分0秒
//Date的空参构造器获取的是当前操作系统的时间
public static void function() {
Date date = new Date();
System.out.println(date);
}
//传递毫秒值
public static void function_1() {
Date date = new Date(999999999999999999L);
System.out.println(date);
}
//Date类方法gettTime() 返回值long类型
//返回时毫秒值
//将date表示的日期,转换成毫秒值
//日期和毫秒值转换
public static void function_2() {
Date date = new Date();
long time = date.getTime();
System.out.println(time);
}
//Date类方法setTime() 返回日期
//传递毫秒值
//将date表示的毫秒值,转换成日期
//毫秒值和日期转换
public static void function_3() {
Date date = new Date();
System.out.println(date);
date.setTime(0);
System.out.println(date);
}
}
DateFormat:时间格式化
对日期进行格式化
import java.text.DateFormat;
DateFormat是一个抽象类,具有普通方法和抽象方法
实际上是使用其子类SimpleDateFormat 继承父类普通方法,重写抽象方法

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateFormatDemo {
public static void main(String[] args) {
/*

  • 如何对日期进行格式化
  • 步骤:
  • 创建SimpleDateFormat对象
  • 在类构造方法中,写入字符串的格式(自定义)
  • SimpleDateFormat调用方法 foramt 对日期进行格式化
  • String format(Date date) 传递日期对象,返回字符串
  • 日期格式
  • yyyy 年份
  • MM 月份
  • dd 天数
  • HH 小时
  • mm 分钟
  • ss 秒数
  • SS 毫秒
    */
    function();
    }
    public static void function() {
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy 年 MM 月 dd 日 HH 时 mm 分 ss 秒 SS 毫秒");
    String date = sdf.format(new Date());
    System.out.println(date);
    }
    }

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

/*

  • DateFormat类方法parse
  • 将字符串为日期对象
  • Date parse(String s) 字符串变成日期对象
  • String => Date parse
  • Date => String format
    */

public class DateFormatDemo1 {
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
function();
}
/*

  • 将字符串转成Date对象
  • 步骤:
  • 创建SimpleDateFormat对象
  • 构造方法指定日期格式
  • 子类对象,调用方法parse 传递String,返回Date
    */
    public static void function() throws Exception {
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    Date date = sdf.parse("1995-5-16 23:10:50");
    System.out.println(date);
    }
    }
    Calendar:日期类

public class CalendarDemo1 {

 /*   
  * Calendar类的get方法
  *   获取日历字段的值
  *  int get(int)
  *  参数int,获取哪个字段值
  *  返回值,就表示日历字段的具体数值
  */

 public static void main(String[] args) {
       Calendar c = Calendar.getInstance();
       //获取年份
       int year = c.get(Calendar.YEAR);
       //获取月份
       int month = c.get(Calendar.MONTH) + 1;
       //获取天数
       int day = c.get(Calendar.DAY_OF_MONTH)+1;
       System.out.println(year + "-" + month + "-" + day);
       function_1();
       function_2();
       function_3();
 }
 /*
  * Calendar类的set方法
  * 设置日历
  * set(int field,int value)
  *  field 设置的是哪个日期字段
  *  value 设置的具体数值
  * set(int year,int month,int day)
  *  传递三个字段的值,年月日
  *  
  */
 public static void function_1() {
       Calendar c = Calendar.getInstance();
       //设置月份为10月
       c.set(Calendar.MONTH, 9);
       c.set(2088,8,8);
       //获取年份
       int year = c.get(Calendar.YEAR);
       //获取月份
       int month = c.get(Calendar.MONTH) + 1;
       //获取天数
       int day = c.get(Calendar.DAY_OF_MONTH)+1;
       System.out.println(year + "-" + month + "-" + day);
 }
 /*
  * Calendar类的add方法
  * 日历的偏移量,可以指定一个日类中的字段
  * add(int field,int value)
  *
  */
 public static void function_2() {
       Calendar c = Calendar.getInstance();
       //向后偏移15天
       c.add(Calendar.DAY_OF_MONTH, 15);
       //获取年份
       int year = c.get(Calendar.YEAR);
       //获取月份
       int month = c.get(Calendar.MONTH) + 1;
       //获取天数
       int day = c.get(Calendar.DAY_OF_MONTH)+1;
       System.out.println(year + "-" + month + "-" + day);
 }
  /*
   * Calendar类的getTime方法
   * 把日历对象,转换成Date日期对象
   *
   */
  public static void function_3() {       
       Calendar c = Calendar.getInstance();
       Date date = c.getTime();
       System.out.println(date);
  }

}

public class DateTest {
public static void main(String[] args) throws Exception {
/*

  • 计算活了多少天
  • 用今天的毫秒值减去生日的毫秒值
    /
    // function();
    function_1();
    }
    public static void function() throws Exception{
    System.out.println("请输入与出生日期:yyyy-MM-dd");
    //获取出生日期
    Scanner sc = new Scanner(System.in);
    String birthday = sc.next();
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    //将输入的字符串转成日期对象
    Date birthdayDate = sdf.parse(birthday);
    //获取今天的毫秒值
    long time = System.currentTimeMillis();
    //将出生日期转换成毫秒值
    long birthdaySecond = birthdayDate.getTime();
    //计算天数
    long day = (time-birthdaySecond)/(1000
    606024);
    //输出
    if (day < 0) {
    System.out.println("还没出生呢!");
    }
    else {
    System.out.println(day);
    }
    }
    public static void function_1() {
    Calendar c = Calendar.getInstance();
    int year = c.get(Calendar.YEAR);
    int i = 1;
    while(i <= year) {
    c.set(i,2,1);
    c.add(Calendar.DAY_OF_MONTH, -1);
    int day = c.get(Calendar.DAY_OF_MONTH);
    if (day == 29) {
    System.out.println(i + "年是闰年");
    }
    i++;
    }

    }
    }
    在实际程序使用中,程序界面上用户输入的数据都是以字符串类型进行存储的。而程序开发中,我们需要把字符串数据,根据需求转换成指定的
    基本数据类型,如年龄需要转换成int类型,考试成绩需要转换成double类型等
    八种基本类型对应的包装类
    char Character
    int Integer
    byte Byte
    short Short
    long Long
    float Float
    double Double
    boolean Boolean
    parseInt(String s) 将字符串转换成整型
    parseInt(String s,int radix) 将指定进制的字符串转换成整型
    toBinarString(int) 十进制转成二进制
    toOctalString(int) 十进制转成八进制
    toHexString(int) 十进制转成十六进制
    自动装箱和自动拆箱
    自动装箱:基本数据类型,直接转换成对象
    自动拆箱:对象中的数据类型直接转换成数据
    System类
    currentTimeMillis() 用于计算程序的执行时间
    exit() 退出JVM
    gc() 收取对象的垃圾
    getProperties() 获取当前操作系统的属性
    Arrays
    sort() 对指定数组的元素进行拍讯
    toString() 返回数组元素的字符串形式
    binarySearch() 查找指定元素出现的位置
    BigInteger
    add() 加法
    subtract() 减法
    multiply() 乘法
    divide() 除法
    double和float类型在运算中很容易丢失精度,造成数据的不准确性,Java提供我们BigDecimal类可以实现浮点数据的高精度运算
    使用方法同上

猜你喜欢

转载自blog.51cto.com/13559120/2121784