之前将Java的大部分语法都回顾完了,后面添加一些常见的操作,基础语法就结束了。至于在这里再次提到常用类是由于有一部分体现在使用它的继承类或者接口之类的。这些需要有面向对象编程的基础

Object类

Object类是所有类的基类,只要定义了类,即使没有显式的声明继承自Object类,也会从该类继承。这个类没有什么是需要显式调用的,很多东西都需要重写类的方法来达到相关效果,比如常用的两个方法:

  • String toString() : 将类转化为字符串。一般来说直接打印新定义的类都会打印出对象的地址值,如果需要打印里面的相关值,需要重写toString方法
  • boolean equals(Object obj): 一般来说,== 比较的是对象的地址值,而针对字符串或者其他对象可能需要根据别的值来比较是否相等,这个时候需要重写这个方法。
  • protected Object clone(): 在C++中如果直接使用内存拷贝来拷贝对象的话,如果对象中有指针变量,可能会导致一系列的问题,这种拷贝方法叫做浅拷贝。这个方法用来执行深度拷贝操作。
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}

上述代码是Object类的 toString 方法,从代码上看,默认会调用对象的hashCode 方法获取hash值,并转化为字符串。

时间操作

Date 类

Date 类用来处理时间,它能精确到毫秒

  • Date(): 获取当前时刻的Unix时间戳
  • Date(long date): 根据一个时间戳初始化一个对象
  • long getTime(): 获取当前对象对应的时间戳

这个方法目前只是用来进行这些操作,后续其他时间的格式化,获取对应的年、月、日操作在后续的JDK版本都用另外的类来进行

SimpleDateFormat 类

上面提到,Date类只用来进行时间戳相关转化的操作,而具体与时间相关的操作都用这个类来进行。该类继承自 DataFormat 类, DataFormat是一个抽象类。

  • SimpleDateFormat() : 使用默认的模式来格式化Date类
  • SimpleDateFormat(String pattern): 按照指定格式来格式化Date类
  • SimpleDateFormat(String pattern, Locale locale): 构造一个 SimpleDateFormat使用给定的模式和给定的区域设置的默认日期格式符号

模式类似于格式化字符串,与常见语言的格式化时间的方式类似。

  • String format(Date date): 按照构造时提供的模式来将传入的date 对象格式化为字符串
  • Date parse(String source): 从给定字符串的开始解析文本以生成日期

Calendar 类

上述两个与时间相关的类已经解决了时间的获取以及格式化输出的操作。但是关于时间还需要进行年、月、日相关的操作。比如加一年、减一个月等等。跟具体年月相关的操作使用 Calendar类。这个类也是一个抽象类,但是可以使用它的相关静态方法来创建对象

  • static Calendar getInstance(): 使用默认时区和区域设置获取日历。
  • static Calendar getInstance(Locale aLocale): 使用默认时区和指定的区域设置获取日历。

常见的方法如下:

  • int get(int field): 返回指定字段的日历值
  • void set(int year, int month, int date, int hourOfDay, int minute, int second): 设置字段中的值 YEAR , MONTH , DAY_OF_MONTH , HOUR_OF_DAY , MINUTE和 SECOND
  • abstract void add(int field, int amount): 根据日历的规则,将指定的时间量添加或减去给定的日历字段
  • Date getTime(): 根据日历对象返回一个对应的Date类
  • void setTime(Date date): 将Date类转化为日历类

这些get和set方法有的需要一个值表示需要修改日历中的哪个值。比如 YEAR表示年、MONTH表示月、DAY_OF_MONTH表示月中的天数、HOUR_OF_DAY表示小时等等

从这3个类的相关操作来说,Date类作为沟通其他两个类的桥梁,常见的策略是: DateFormat -->Date -->Calender 或者 Calender-->Date-->DateFormat

下面是一个简单的例子

DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = df.parse("2018-10-1 12:12:12"); Calendar c = Calendar.getInstance();
c.set(Calendar.YEAR, 2019); date = c.getTime();
System.out.println("Time:" + df.format(date));

System 类

这个类用于获取系统相关的内容,里面都是一些静态方法。常用的方法有:

  • static long currentTimeMillis(): 返回当前系统时间,以毫秒为单位
  • static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length): 数组复制方法

StringBuilder 类

我们说String方法中的字符不能修改,如果要修改,必须重新分配一个String,并舍弃原来的String方法。当String操作过多,频繁的分配回收,影响程序效率。StringBuilder类与String相比,可以修改里面的字符值。相比String来说效率更高

  • StringBuilder(): 构造一个能容纳16个字符的字符容器

  • StringBuilder(int capacity) :构造一个容纳指定字符的容器

  • StringBuilder(String str): 构造一个初始化为指定字符串内容的字符串构建器。

  • append方法:它有一系列的重载方法。往字符容器中添加指定的内容

  • toString(): 转化为String 对象

包装类

Java中针对 普通类型都有一个对应的类,封装了一系列的操作,比如int 类的包装类是 Integer, double 类的是 Double等等。

一般来说,将对应的基本类型转化为包装类的过程称为装箱;将包装类转化为基本类型的过程称为拆箱,从JDK1.5之后支持自动装箱和自动拆箱,比如

Double d = 1.5;
int i = Integer(10);
int i1 = Integer("10");

Java 学习笔记(9)——java常用类的更多相关文章

  1. java学习笔记07--日期操作类

    java学习笔记07--日期操作类   一.Date类 在java.util包中定义了Date类,Date类本身使用非常简单,直接输出其实例化对象即可. public class T { public ...

  2. java学习笔记之日期日历类

    java学习笔记之日期日历 Date日期类概述: 表示特定的瞬间,精确到毫秒 Date类的构造方法: 1.空参数构造方法 Date date = new Date(); 获取到当前操作系统中的时间和日 ...

  3. Java学习笔记41(Properties类)

    Properties可以做到集合的数据持久存储 它是map接口的一个实现类,可以使用map类的方法, 不过存在区别:它没有泛型,规定键类型为字符串 这个集合在以后的开发中会经常用到,比如连接数据库等 ...

  4. Java 学习笔记(4)——java 常见类

    上次提前说了java中的面向对象,主要是为了使用这些常见类做打算,毕竟Java中一切都是对象,要使用一些系统提供的功能必须得通过类对象调用方法.其实Java相比于C来说强大的另一个原因是Java中提供 ...

  5. Java学习笔记23(Calendar类)

    Calendar意味日历,对Date类中的很多方法做了改进 Calendar类是一个抽象类,不可以见对象,需要子类完成实现 不过这个类有特殊之处,不需要创建子类对象,而是使用它的静态方法直接获取: 示 ...

  6. Java学习笔记22(Date类、DateFormat类)

    Date,时间和日期类,这里讲util包中的而不是sql包中的 Date:表示特定的时间瞬间,精确到毫秒(1000毫秒=1秒) 时间和日期的操作都基于毫秒值 时间原点:1970年1月1日,0时0分0秒 ...

  7. Java学习笔记36(File类)

    File类可以对操作系统中的文件进行操作: File类的静态成员变量: package demo; import java.io.File; public class FileDemo { publi ...

  8. java学习笔记27(File类)

    File类: 定义:文件和目录径的抽象表示形式, Java中将路径或者文件封装成File对象 1.File类的静态成员变量 package com.zs.Demo2; import java.io.F ...

  9. java学习笔记25(Collections类)

    Collections算法类: Collections是一个算法类,提供了一系列静态方法,实现对集合的排序.替换.交换.搜索.拷贝等操作: 用法:Collections.方法名(要操作的集合): 就像 ...

随机推荐

  1. [React Native]Promise机制

    React Native中经常会看到Promise机制. Promise机制代表着在JavaScript程序中下一个伟大的范式.可以把一些复杂的代码轻松撸成一个串,和Android中的rxjava非常 ...

  2. python开发资源链接

    1.docker docker Windows版下载:https://oomake.com/download/docker-windows docker 英文官网:https://www.docker ...

  3. 关于编码的发展演变:ASCII、GB2312、GBK、gb18030、Unicode、UTF-8

    [1]ASCII 每个字符占据1bytes(字节),第一次以规范标准发表是在1967年,最后一次修订是在1986年.用二进制表示的话最高位必须为0(扩展的ASCII不在考虑范围内),因此ASCII只能 ...

  4. iOS开发 分享到QQ空间提示"分享失败 应用不存在"

    本人遇到该问题的原因是配置SDK初始化时的APPID错误,可以参考下shareSDK的集成文档中的一段话: 可选:支持QQ所需的相关配置及代码 登录QQ互联(http://connect.qq.com ...

  5. Java练习 SDUT-1200_汉诺塔

    汉诺塔 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 汉诺塔(又称河内塔)问题是印度的一个古老的传说. 开天辟地的神勃 ...

  6. HZOJ Drink

    神仙题,打了个whs式暴力卡常卡A了(我没脸),正解还是要打的,然而作者的题解看不懂…… Drink: 看惯了罗马音的小朋友们都会知道r发l的音,题目名:D Link. 每次修改都会改变O( N ^  ...

  7. AIDL基本用法

    1. AIDL有什么用?用TA到目的是什么? 2. 怎么用AIDL? 1. AIDL有什么用? 1.1. 为了提高代码执行速度,将部分逻辑封入C/C++代码中  1.2. 为了调用这部分代码,使用JN ...

  8. H3C路由器SSH服务配置命令

  9. oracle中=>是什么意思呢?

    => 是 Oracle 中调用 存储过程的时候, 指定 参数名进行调用.一般是, 某些参数有默认值的时候,你需要跳过某些参数来进行调用.下面是具体的例子. 参数的默认值SQL> CREAT ...

  10. JavaScript 数组去重和对象相等判断

    前几天电话面试问到了数组去重和两个对象相等判断,当时回答的不是特别好,都过去好几天了,总结下. 1.数组去重 当时的问题是这样的有个简单的数组[1,1,2,3],去重后的结果是[1,2,3],怎么实现 ...