Object--Date--calendar--System--StringBuilder--基本数据类型包装类型
Object
java.lang.Object类是Java语言中的根类,即所有类的父类
- 默认toString()方法打印的是对象在堆中的地址值
- 默认equals()方法比较的也是地址(String中对该方法进行了重写)
Date
** java.util.Date类 表示特定的瞬间,精确到毫秒。**
以1970年1月1日为时间原点
构造方法
Date() | 分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒),简单说就是当前系统时间。 |
---|---|
Date(long date) | 分配Date对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即1970年1月1日00:00:00 GMT)以来的指定毫秒数。简单说就是根据lang值来创建一个时间 |
常用方法
Date类中的多数方法已经过时,常用的方法有
public long getTime() | 把日期对象转换成对应的时间毫秒值。返回值为lang的毫秒值 |
构造方法与常用方法简单案例
package java常用API.MyDate;
import java.util.Date;
public class Main {
public static void main(String[] args) {
demo01();
demo02();
}
/**
* Date的无参构造方法
* 创建对象为本系统当前时间
*/
public static void demo01(){
Date date = new Date();
System.out.println(date);
//getTime()方法将时间转换成相应的毫秒值
System.out.println(date.getTime());
}
/**
* Date的有参构造方法
* 根据参数值(距离原点的毫秒值)创建一个对象
*/
public static void demo02(){
Date date = new Date(1111111111);
System.out.println(date);
}
}
DateFormat类 java.text.DateFormat
是日期/时间格式化子类的抽象类
进行格式化(也就是日期 -> 文本)、解析(文本-> 日期)和标准化
**DateFormat类是一个抽象类无法直接使用,可以使用DateFormat的子类SimpleDateFormat **
成员方法
String format(Date date) | 按照指定的模式,吧Date日期,格式化为符合模式的字符串 |
---|---|
Date parse(String source) | 把符合模式的字符串,解析为Date日期 |
SimpleDateFormat
日期和时间模式
示例
真正的处理SimpleDateFormat类实例
package java常用API.MyDate.MyDateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* java.text.dateFormat:是日期/时间格式化子类的抽象类
* 作用:
* 格式化(也就是日期-》文本)、解析(文本-》日期)
* 成员方法:
* String format(Date date)按照指定的模式,把Date日期格式化为符合模式的字符串
* Date parse(String source)把符合模式的字符串解析为Date日期
* DateFormat类是一个抽象类,无法直接创建对象使用,可以使用DateFormat类的子类
*
* java.text.SimpleDateFormat extends DateFormat
*构造方法:
* SimpleDateFormat(String pattern)
* 用给定的模式和默认语言环境的日期格式符号构造 SimpleDateFormat。
* 参数:
* String patten传递指定的模式
* 模式:区分大小写
* y 年
* M 月
* d 日
* H 时
* m 分
* s 秒
* 写对应的模式,会把模式替换为对应的时间
*
*/
public class Main {
public static void main(String[] args) throws ParseException {
demo01();
demo02();
}
/**
* 使用DateFormat类中的方法format,把日期格式化为文本
* 使用步骤:
* 1:创建SimpleDateFormat对象,构造方法中传递指定的模式
* 2:调用SimpleDateFormat对象中的方法format,按照构造方法中指定的模式,把Date日期格式化为符合模式的字符串(文本)
*/
public static void demo01(){
//创建SimpleDateFormat对象
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
//调用String format(Date date)传入参数Date
Date date = new Date();
String MyDate = simpleDateFormat.format(date);
System.out.println(MyDate);
}
/**
* 使用DateFormat类中的方法parse,把文本解析为日期
* 使用步骤:
* 1:创建SimpleDateFormat对象,构造方法中传递指定的模式
* 2:调用SimpleDateFormat对象中的方法parse,把符合构造方法中模式的字符串,解析为Date日期
* 注意:
* public Date parse(String source) throws ParseException
* parse方法声明了一个异常叫parseException
* 如果字符串和构造方法的模式不一样,那么程序就会抛出此异常
* 调用一个抛出了异常的方法就必须处理这个异常,要么throws继续抛出这个异常,要么try-catch自己处理
*/
public static void demo02() throws ParseException {
//1:创建SimpleDateFormat对象
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
//2:调用SimpleDateFormat对象中的方法Date parse(String source)
Date date = simpleDateFormat.parse("2019年02月07日 22时11分44秒");
System.out.println(date);
}
}
calendar
简介
java.util.Calendar是日历类,在Date后出现,替换掉了许多Date的方法。该类将所有可能用到的时间信息封装为静态成员变量,方便获取。日历类就是方便获取各个时间属性的。
一个案例
package java常用API.MyCalendar;
import java.util.Calendar;
import static java.util.Calendar.YEAR;
/**
* java.util.Calendar 日历类
* 是一个抽象类,里面提供了很多操作日历字段的方法 诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等
* Calendar无法直接创建对象使用,里面有一个静态方法getInstance(),该方法返回了Calendar类的子类对象
* static Calendar getInstance()
* 使用默认时区和语言环境获得一个日历。
*/
/**
* Calendar类的常用成员方法:
* public int get(int field):返回给定日历字段的值。
* public void set(int field,int value):将给定的日历字段设置为给定值。
* public abstract void add(int field,int amount):根据日历的规则,为给定的日历字段添加或减去指定的时间量。
* public Date getTime():返回一个表示此Calendar时间值(从历元到现在的毫秒偏移量)的Date对象。
* 成员方法的参数:
* int field:日历类的字段,可以使用Calendar类的静态成员变量获取
* public static final int YEAR = 1; 年
* public static final int MONTH = 2; 月
* public static final int DATE = 5; 月中的某一天
* public static final int DAY_OF_MONTH = 5; 月中的某一天
* public static final int HOUR = 10; 时
* public static final int MINUTE = 12; 分
* public static final int SECOND = 13; 秒
*/
public class Main {
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
System.out.println(calendar);
demo01();
}
public static void demo01(){
Calendar calendar = Calendar.getInstance();
System.out.println(calendar.get(YEAR));
calendar.set(Calendar.MONTH,2);
System.out.println(calendar.get(Calendar.MONTH));
calendar.add(Calendar.MONTH,2);
System.out.println(calendar.get(Calendar.MONTH));
System.out.println(calendar.getTime());
}
}
System
简介
java.lang.System`类中提供了大量的静态方法,可以获取与系统相关的信息或系统级操作
public static long currentTimeMillis() | 返回以毫秒为单位的当前时间。 |
---|---|
public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) | 将数组中指定的数据拷贝到另一个数组中。 |
案例 currentTimeMillis方法
实际上,currentTimeMillis方法就是 获取当前系统时间与1970年01月01日00:00点之间的毫秒差值
public class SystemDemo {
public static void main(String[] args) {
//获取当前时间毫秒值
System.out.println(System.currentTimeMillis()); // 1516090531144
}
}
案例 arraycopy方法
将数组中指定的数据拷贝到另一个数组中。
数组的拷贝动作是系统级的,性能很高。System.arraycopy方法具有5个参数,含义分别为:
参数序号 | 参数名称 | 参数类型 | 参数含义 |
---|---|---|---|
1 | src | Object | 源数组 |
2 | srcPos | int | 源数组索引起始位置 |
3 | dest | Object | 目标数组 |
4 | destPos | int | 目标数组索引起始位置 |
5 | length | int | 复制元素个数 |
import java.util.Arrays;
public class Demo11SystemArrayCopy {
public static void main(String[] args) {
int[] src = new int[]{1,2,3,4,5};
int[] dest = new int[]{6,7,8,9,10};
System.arraycopy( src, 0, dest, 0, 3);
/*代码运行后:两个数组中的元素发生了变化
src数组元素[1,2,3,4,5]
dest数组元素[1,2,3,9,10]
*/
}
}
StringBuilder类
字符串拼接问题
String类的对象内容不可改变,所以每当进行字符串拼接时,总是会在内存中创建一个新的对象
StringBuilder是个字符串的缓冲区,即它是一个容器,容器中可以装很多字符串。并且能够对其中的字符串进行各种操作。
StringBuilder的简单实用
public StringBuilder() | 构造一个空的StringBuilder容器。 |
---|---|
public StringBuilder(String str) | 构造一个StringBuilder容器,并将字符串添加进去。 |
public StringBuilder append(…) | 添加任意类型数据的字符串形式,并返回当前对象自身。 |
public String toString() | 将当前StringBuilder对象转换为String对象。 |
append方法具有多种重载形式,可以接收任意类型的参数。任何数据作为参数都会将对应的字符串内容添加到StringBuilder中。
package java常用API.MyStringBuilder;
/**
* java.lang.StringBuilder类。字符串缓冲区,可以提高字符串的效率
* 构造方法:
* StringBuilder() 构造一个不带任何字符的字符串生成器,其初始容量为16个字符
* StringBuilder(String str)构造一个字符串生成器,并初始化为指定的字符串内容
*/
/**
*append方法具有多种重载形式,可以接收任意类型的参数。任何数据作为参数都会将对应的字符串内容添加到StringBuilder中。
*/
public class Main {
public static void main(String[] args) {
//空参数构造方法
StringBuilder s = new StringBuilder();
System.out.println(s);
//带参数构造方法
StringBuilder s2 = new StringBuilder("Hello");
System.out.println(s2);
s2.append(5);
s2.append("zhang");
System.out.println(s2);
System.out.println(s2.toString());
}
}
包装类
Java提供了两个类型系统,基本类型与引用类型,使用基本类型在于效率,然而很多情况,会创建对象使用,因为对象可以做更多的功能,如果想要我们的基本类型像对象一样操作,就可以使用基本类型对应的包装类
基本类型 | 对应的包装类(位于java.lang包中) |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
5.2 装箱与拆箱
基本类型与对应的包装类对象之间,来回转换的过程称为”装箱“与”拆箱“:
装箱:从基本类型转换为对应的包装类对象。
拆箱:从包装类对象转换为对应的基本类型。
Object--Date--calendar--System--StringBuilder--基本数据类型包装类型的更多相关文章
- Java连载76-基础数据类型包装类型及其方法简介
一.java中八种基本数据类型对应的包装类型 基本数据类型 包装类型 byte java.lang.Byte short ...
- js常用API 数据类型 基本类型,基本包装类型,引用类型 Object String Array Boolean Number Date Math
数据类型 变量.作用域及内存 基础类型(primitive value):Undefined.Null.Boolean.Number和String.这些类型在内存中分别占用固定大小的空间,他们的值保存 ...
- day05(Object,tostring(),equals(),System,Date,SimpleDateFormat,拆装箱,正则表达式)
Object类, 是所应类的父类: 拥有自己的方法:常用的 红颜色标记的为常用的方法 toString() 用法:打印对象的地址值 getClass() 获取当前类的字节码文件getName() ...
- Java基础Day07(Map Calender Date 包装类 System类 异常)
1.Map Map是集合容器,存放的元素有键与值两部分组成,通过键可以找到所对应的值,键和值必须是引用数据类型,键是唯一的,不能重复,没有顺序. HashMap是Map的实现类. Map的添加,删除, ...
- 黑马程序猿——15,String,StringBuffer,基本数据类型包装对象
------<ahref="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培 ...
- java基本类型和包装类型的区别以及object的公共方法
Java的类型分为两部分,一个是基本类型(primitive),如int.double等八种基本数据类型: 一.基本数据类型: byte:Java中最小的数据类型,在内存中占8位(bit),即1个字节 ...
- Java Date Calendar DateFormat Details
From https://www.ntu.edu.sg/home/ehchua/programming/java/DateTimeCalendar.html Date and Time - Creat ...
- ECMAScript1.4 对象 | 简单数据类型与复杂数据类型 | 内置对象 | 基本包装类型 | String
对象 函数和对象的区别: 函数:封装代码 对象:封装属性和方法 创建对象的方法: 1,对象字面量{} // 模拟创建一只dog var dog = { // 属性 name: 'puppy', age ...
- Integer缓存机制-基本数据类型和包装类型-自动拆装箱
Integer缓存机制 总结: 1.jdk1.5对Integer新增了缓存机制,范围在-128-127(这个范围的整数值使用频率最高)内的自动装箱返回的是缓存对象,不会new新的对象,所以只要在缓存范 ...
随机推荐
- 微信小程序云开发-云存储-上传文件(图片/视频)到云存储 精简代码
说明 图片/视频这类文件是从客户端会话选择文件. 一.wxml文件添加if切换显示 <!--上传文件到云存储--> <button bindtap="chooseImg&q ...
- 线性回归与梯度下降(ML作业)
Loss函数 题目一:完成computeCost.m function J = computeCost(X, y, theta) %COMPUTECOST Compute cost for linea ...
- win 10,Maven 配置
来源:https://www.cnblogs.com/lihan829/p/11503497.html 所需工具 : JDK 1.8 Maven 3.6.2 Windows 10 注Maven 3.2 ...
- 7.29考试总结(NOIP模拟27)[牛半仙的妹子图·Tree·序列]
前言 从思路上来讲是比较成功的,从分数上就比较令人失望了. 考场上是想到了前两个题的正解思路,其实最后一个题是半个原题,只可惜是我看不懂题... 这波呀,这波又是 语文素养限制OI水平.. 改题的时候 ...
- C++第三十七篇 -- 调试驱动程序
上一篇写的KMDF程序是通过串口进行配置的,那么我们在VS中Attach to process外,可以直接用Winbdg进行调试,winbdg.exe所在路径为C:\Program Files (x8 ...
- C++模板封装Win32 API 动态调用
起因 花两周通读了一遍<C++ Primer>,积攒的疑惑一扫而光. 前因 利用C++11可变模板,封装调用dll导出函数 本以为已经很好用了,最近抽时间巩固下知识体系,发现自己道行不够! ...
- Vue--启动后到加载第一个页面的过程
地址栏http://localhost:8088/#/填写密码登录后自动跳转到http://localhost:8088/#/home/msg/workerpush 一\ 得先跳转到login页面 { ...
- spring Data Rest 远程命令执行漏洞(CVE-2017-8046)
参考 文章https://blog.csdn.net/weixin_41438728/article/details/110425174 影响版本 Spring Framework 5.0 to 5. ...
- Python小白的数学建模课-15.图论基本概念
图论中所说的图,不是图形图像或地图,而是指由顶点和边所构成的图形结构. 图论不仅与拓扑学.计算机数据结构和算法密切相关,而且正在成为机器学习的关键技术. 本系列结合数学建模的应用需求,来介绍 Netw ...
- 在nodejs中利用 Proxy监听对象值的获取
1 window = new Proxy(global, { 2 get: function (target, key, receiver) { 3 console.log("window. ...