Java 学习笔记(9)——java常用类
之前将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和 SECONDabstract 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");
转载于:https://www.cnblogs.com/lanuage/p/11036810.html
Java 学习笔记(9)——java常用类相关推荐
- Java学习笔记1:Java中有关print、println、printf的用法和区别
Java学习笔记1:Java中有关print.println.printf的用法和区别 最近在学习java,写一些笔记记录下. 1.print()函数是一般的标准输出,但是不换行. 2.println ...
- Java学习笔记(java基础)
Java学习笔记(第一周) Java 介绍 Java 发展方向 JVM , JDK , JRE 名词解释 Java语言的特点 Java安装 安装包的下载 配置环境变量 验证是否安装成功 Java的第一 ...
- 【java】java学习笔记之java常用类
如下图所示为笔者总结的java常用类学习笔记,其中,附带有代码示例(未展开),方便理解记忆.需要源文件的请到我的资源中下载,下载地址:https://download.csdn.net/downloa ...
- java学习之路7——常用类
一.Object类 超类.基类.左右类的直接或者间接父类,位于继承树的最顶层. 任何类,如果没有写extends显示继承某个类,默认都直接继承Object类.否则为间接继承. Object类中所定义的 ...
- Java 学习笔记(4)——java 常见类
上次提前说了java中的面向对象,主要是为了使用这些常见类做打算,毕竟Java中一切都是对象,要使用一些系统提供的功能必须得通过类对象调用方法.其实Java相比于C来说强大的另一个原因是Java中提供 ...
- java学习笔记(一) ----java下常用的包功能
***java下常用的包*** java.lang----包含一些java语言的核心类,如String,Math,Integer,System,Thread,提供常用的功能. java.awt---- ...
- Java学习笔记——正则表达式(Pattern类、Matcher类和PatternSyntaxException)
目录 一.Pattern类 (一)Pattern 介绍 (二)Pattern 方法 二.Matcher类 (一)Matcher 类介绍 (二)Matcher 类方法 三.PatternSyntaxEx ...
- java时间规划书_【计算机本科补全计划】Java学习笔记(九) Java日期时间
正文之前 终于好像仿佛看完了菜鸟教程的Java课程,感觉自己收获颇丰!很好,Java看完之后正愁如何开始进阶呢!结果发现菜鸟还准备了Java实例这种好东西!简直就是教程界的良心啊 !!!没事,先写写笔 ...
- Java学习笔记十:Java的数组以及操作数组
Java的数组以及操作数组 一:什么是数组: 数组可以理解为是一个巨大的"盒子",里面可以按顺序存放多个类型相同的数据,比如可以定义 int 型的数组 scores 存储 4 名学 ...
最新文章
- 【转载】写博意味着什么?
- 计算机应用基础操作题教学考试,电大教学全国计算机应用基础考试网考内容全部操作题.doc...
- 使用layui框架时,在input文本框中显示当前页面时间的方法
- 洛谷——P1019 单词接龙
- Anaconda详细安装及安装Scrapy框架
- 资源下载| 深度学习Pytoch1.0如何玩?这一门含900页ppt和代码实例的深度学习课程带你飞
- Maven项目设置仓库下载位置
- SpringMVC连接MongoDB操作数据库
- python dataframe 选取字段 特别慢_从parqu读取dask dataframe列重命名速度较慢(er)
- 软件项目管理期末复习题
- pcie转sata3硬盘不启动_XPS 笔记本: 排除对 BIOS 默认设置的更改导致无法开机自检/无引导/硬盘或未检测到 SDD 问题...
- java协同过滤推荐算法
- 字符串:输入与缓冲区问题
- Android 三类框架的理解以及MVVM框架的使用
- jquery 封装幻灯插件_21个jQuery幻灯片插件
- html怎么设置seo,简单说明一下html相关的seo设置!
- jsp页面hidden的诡异
- excel冻结窗口_Excel工作学习超高频实用技巧
- 中国电信天翼物联品牌升级,注智产业数字化
- armbian 斐讯n1_记录一下斐讯N1盒子刷Armbian的各种坑
热门文章
- VC++6.0 按F1无法打开 MSDN 的解决办法
- 学完之后,有什么证书发吗?要另外收费吗?收费多少? 学员每天的上课时间是怎样安排的?...
- [转载]Linux Shell 的快捷键
- 【网络信息安全】网络安全基础
- 公众号小tips(持续更新)
- 渗透测试攻击(二)——wireshark过滤数据包语法详解
- 走进我的交易室01_引子
- java做网页客户端_如何成为 Java web开发者
- LeetCode Week 5:第 41 ~ 50 题
- 算法导论 思考题12-1