第13章 Java常用类
1.自动装箱和自动拆箱
自动装箱:
基本类型就自动的封装到与它相同类型的包装中:如:
创建一个对象时:Integer i = 100;
本质上是编译器编译时为我们添加了:
Integer i = new Integer(100);
自动拆箱:
包装类对象自动转换成基本类型数据,如:
int a = new Integer(100);
本质上,编译器为我们添加了:
int a = new Integer(100).intValue();
此类中的方法中的缓存问题
[-128, 127]之间的数,仍然被当做基本类型处理,由于基本类型的处理要比其他方式快一些,所有这个范围内的数据不做改变
/**
* Created by cenyu on 16-11-17.
* 测试自动装箱和拆箱
*/
public class AutoBoxing {
public static void main(String[] args) {
//自动装箱
Integer a = new Integer(100); //这是原本创建一个a 对象,并传值100
Integer a1 = 100; //这是自动装箱,效果等同上面。jdk5.0之后才有,
// 本质是编译器会帮我们改进代码成:Integer a1 = new Integer(100); //自动拆箱
int b = new Integer(1500).intValue(); //正常操作,定义了一个int对象a
int c = new Integer(1500); //自动拆箱,定义一个int对象c,
// 本质上是编译器帮我们改进代码为:int b = new Integer(1500).intValue(); //产生的缓存问题
//1.比较两个对象,没有缓存问题
Integer s1 = 1234;
Integer s2 = 1234;
System.out.println(s1==s2); //false, 因为利用了装箱的功能,所有实际是创建了两个类,
System.out.println(s1.equals(s2)); //true, 这两个类的值相等 //2.再次比较,出现缓存问题
Integer x1 = 123;
Integer x2 = 123;
System.out.println(x1==x2);//true,原因是[-128,127]之间的数,仍然被当做基本数据类型来处理
System.out.println(x1.equals(x2));//true }
}
2.时间类java.util.Date
1.Date类的对象表示一个特定瞬间,精确到毫秒
2.java中的时间也是数字,他是从:标准纪元;1970.1.1.0点开始到某个时刻的毫秒数,类型是long
2.1.date类中的几个常用方法
import java.util.Date;
/**
* 测试时间类的用法
* Created by cenyu on 16-11-17.
*/
public class TestDate {
public static void main(String[] args) {
Date d = new Date();//什么参数都不传,表示当前时间
Date d2 = new Date(1000); //1 Jan 1970 00:00:01 GMT //传入一个long类型,表示以基本纪元为起点,往后1000个时间点,即往后1秒钟
d2.setTime(2000);//重新设置参数
System.out.println(d);
System.out.println(d2.toGMTString());
}
}
2.2.DateFormat和SimpleDateFormat类
作用:完成字符串和时间对象的转化
format:时间转化为字符串
parse:字符串转化为时间
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date; /**
* 测试时间转化为字符串,和字符串转化为时间
* Created by cenyu on 16-11-17.
*/
public class TestDateFormat {
public static void main(String[] args) throws ParseException {
//把时间转化为字符串,format
//创建类的时候不能new一个抽象类,可以new他的一个子类 //创建一个时间格式化对象
DateFormat df = new SimpleDateFormat("yyy-MM-dd hh:mm:ss");
//创建一个时间对象
Date d = new Date(123213123L);
String str = df.format(d);//将时间对象按照格式化字符串,转化为字符串
System.out.println(str); //1970-01-02 06:13:33 //把字符串格式化一个时间对象,parse
String str2 = "1977-7-7";
DateFormat df2 = new SimpleDateFormat("yy-MM-dd");
try {
Date d2 = df2.parse(str2);
System.out.println(d2);//Thu Jul 07 00:00:00 CST 1977
} catch (ParseException e) {
e.printStackTrace();
} }
}
2.3.日历类Calendar
通过Calendar把日期和loong类型的数字链接起来,时相互转化
GregorianCalendar公历
这个类是Calendar类的一个具体子类,提供了绝大多数地区的标准日历系统
需要注意:
1.月份从0开始,1月是0,12月是11
星期:周日是1,周一是2,周六是7
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar; /**
* 测试日期类
* Created by cenyu on 16-11-17.
*/
public class TestCalendar {
public static void main(String[] args) {
Calendar c = new GregorianCalendar();
c.set(Calendar.YEAR,2003); //设置一个年份,没有设置的默认是当前的日期数据
// c.set(2001,1,10,23,24,59); //设置一个时间
c.add(Calendar.YEAR,3);//年份上再加3年
Date d = c.getTime(); //获取时间
System.out.println(d);
System.out.println(c.get(Calendar.YEAR)); //2003+3获取设置的年份
}
}
第13章 Java常用类的更多相关文章
- 第十四章 Java常用类
14.常用类 14.1 字符串相关的类 1课时 14.2 JDK 8之前时间日期API 1课时 14.3 JDK8中新时间日期API 1课时 14.4 JDK8中的Optional类 1课时 14.5 ...
- 13、java——常用类
枚举类型 描述一种事物的所有情况|所有可能|所有实例 (1)通过enum关键字定义枚举类型 (2)枚举的成员,字段都作为当前枚举类型的实例存在,默认被public static final修 ...
- Java面向对象笔记 • 【第6章 Java常用类】
全部章节 >>>> 本章目录 6.1 Object类 6.1.1 Object类概述 6.1.2 Object的常用方法 6.1.3 实践练习 6.2 String类和St ...
- Java 常用类总结(SE基础)
本篇博客对java常用类相关知识进行了归纳总结,比较详细,适用于学习和复习. 1. 字符串相关的类 1.1 String String是一个final类,代表不可变的字符序列.不可被继承. Strin ...
- Java基础 —— Java常用类
Java常用类: java.lang包: java.lang.Object类: hashcode()方法:返回一段整型的哈希码,代表地址. toString()方法:返回父类名+"@&quo ...
- Java常用类之要点总结
Java常用类之要点总结
- Java常用类:包装类,String,日期类,Math,File,枚举类
Java常用类:包装类,String,日期类,Math,File,枚举类
- Java常用类学习笔记总结
Java常用类 java.lang.String类的使用 1.概述 String:字符串,使用一对""引起来表示. 1.String声明为final的,不可被继承 2.String ...
- Java常用类的使用
Java常用类 1. Optional 在我们的开发中,NullPointerException可谓是随时随处可见,为了避免空指针异常,我们常常需要进行 一 些防御式的检查,所以在代码中常常可见if( ...
随机推荐
- Unity3D 5.x 交互功能 - 碰撞检测函数
1,给第一人称控制器添加脚本:playercollisions.js 脚本中只定义变量,先不添加方法: #pragma strict var door_open_time:float=3.0; var ...
- jquery css属性练习
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- C++_系列自学课程_第_6_课_bitset集_《C++ Primer 第四版》
在C语言中要对一个整数的某一个位进行操作需要用到很多的技巧.这种情况在C++里面通过标准库提供的一个抽象数据类型 bitset得到了改善. 一.标准库bitset类型 1.bitset的作用 bits ...
- C标准头文件<stdlib.h>
是个大杂烩,里面声明了从动态内存分配到常用算法等各种函数和宏 #数据类型 **size_t** **wchar_t** **div_t**是一个结构体类型,也是div()返回的类型 **ldiv_t* ...
- 从零开始学 Java - CentOS 下安装 Nginx
早上下起了暴雨 闹钟还未响起就听到雨滴哗啦啦击打窗户的声音,被吵醒了.起床上班,在楼下的十字路口,暴雨大到完全看不清对面,两个穿着雨衣的交警站在路口中间指挥着过往的车辆,大家都慌慌张张.急急忙忙的打着 ...
- http cancelled状态与ajax 超时
在最近一周,我们的前端在测试某些批量超过的某个步骤时,发现请求好像发出来,但是后台状态没有变化,说是最近才出现的问题,以前一直都是正常的,两天连续出现两次之后,来找笔者,首先检查了下中间件的日志,发现 ...
- iscroll
在原生APP的开发中,有一个常见的功能,就是下拉刷新的功能,这个想必大家都是知道的,但是原生APP的开发,有一个很大的问题就是,你每次更新一些功能,就要用户重新下载一次版本,尤其是在iOS系统中,新版 ...
- js快捷输入日期
点击这里查看效果http://keleyi.com/keleyi/phtml/jstexiao/10.htm 以下式代码: <!DOCTYPE html> <html> < ...
- Techparty-广州Javascript技术专场(学习分享)
上周末(2016/07/31)去了一个技术沙龙学习前端相关的东西,下面是各个主题我印象比较深的. React + Redux 最佳实践 主题:本次分享,主要从React/Redux相关概念及其工具链, ...
- JavaScript区分click事件和mousedown(mouseup、mousemove)方法
在前端开发工作中,会遇到这样问题:针对同一个dom元素,即希望为它绑定click事件,又想该元素可以允许拖拽的效果.而使用拖拽的效果,我们一般就会用到mousedown,mousemove和mouse ...