java - day010 - 基本类型包装,自动装箱和拆箱,日期,集合
基本类型的包装类
| byte | Byte |
| short | Short |
| int | Integer |
| long | Long |
| float | Float |
| double | Double |
| char | Character |
| boolean | Boolean |
Number 数字类型包装类的抽象父类
她的子类:
Byte,Short,Integer ,Long,Float,Double
BigDecimal,BigInteger
取出被封装的基本类型值
byteValue();
shortValue();
intValue();
longValue();
floatValue();
doubleValue();
Integer
创建对象;
new Integer(5);
Integer.value(5);
Integer 实例内部, 有一个Integer 实例的缓存数组,
缓存着256个 Integer 对象,
封装的数字范围-128-127
valueOf()方法,指定范围的值,
访问存在的缓存对象,指定范围外的值,
直接新建对象
方法:
字符串解析成 int
Integer.parseInt("225");
Integer.parseInt("111111",2);二进制
Integer.parseInt("377",8);8进制
进制转换:
Integer.toBinaryString(255);转换二进制;
Integer.toOctalString(255);转换8进制
Integer.toHexString(255);转换十六进制
Double
创建对象:
new Double(3.14);
Double.value(3.14);
两者没有区别
方法:
字符串解析
Double.parseDouble("3.14");
Byte.parseByte();
Short.parseShort();
Integer.parseInteger();
Long.parseLong();
Float.parseFloat();
Double.parseDouble();
Boolean.parseBoolean();
char 没有字符串解析方法,
判断浮点数特殊值
Infinity Double.IsInfinite(double d);
nan Double.isNan(double d);
自动装箱,
Integer a = 5;
自动编译为: Integer a = Integer.valueOf(5);
自动拆箱
int i = a;
自动编译为 int i = a.intValue();
a = a + 1;
a = Integer.valueOf(a.intValue()+1);
自动拆箱要当心 null
BigDecimal , BigInteger
BigDecimal 用来做精确的浮点数运算
BigInteger 来做超大的整数运算
BigDecimal
创建对象:
BigDecimal.valueOf(2);
new BigDecimal("2");
方法
add(BigDecimal); 加
subtract(BigDecimal); 减
multiply(BigDecimal); 乘
divide(BigDecimal); 除,不支持无理数(无限小数 )
bigDecimal.pow(n); 求 bigDecimal 的 n 次方
divide(BigDecimal,保留位数,舍入方式);
setScale(保留位数,舍入方式); ROUND_HALF_UP(四舍五入)
保留位数 0: 0位 , 1: 1位 , -1:10位 , -2: 100位
舍入运算,舍入结果被封装成一个新对象
位数过长可以用 toString();输出
BigInteget 超大长整型运算
Date java.util.Date
封装一个毫秒值, 标识一个具体的时间点,
标识 距离 1970年1月1号0点 的时间点
创建对象:
new Date();// 无参构造, 封装系统当前时间的毫秒值
new Date(9000000000L);// 封装指定的毫秒值
方法
getTime();
setTime();
compareTo(Date d); //当前日期 与 参数日期 比较大小
当前对象大,返回正数,否则负数,判断正负即可.0表示相同
SimpleDateFormat java.text.SimpleDateFormat
日期格式工具
把 Date 对象格式化成指定的时间格式
把时间格式字符串解析成 Date 对象
创建对象
new SimpleDateFormat(格式);
格式 yyyy-MM-dd HH:mm:ss
(大写M:月, 小写m:分,H:24小时制,h:12小时制)
例如 yy-M-d
方法
format(Date);// Date 对象 格式化成字符串
parse(String);// 日期格式字符串,解析成Date 对象
集合
数组的缺点;
长度固定
执行复杂的数据处理,繁琐
Collection 接口
| - List 接口
| - ArrayList
| - LinkedList
| - Set 接口
| - HashSet
| - TreeSet
Map 接口
| - HashMap
| - Treemap
Iterator 接口
Collections 工具类
LinkedList
双向链表 , 圈的关系,
相邻节点互相引用,首尾节点互相引用
只能访问第一位,两端效率高,越往中间效率越低
没有容量限制,但是不能超出 int 范围
方法
add(数据); // 在末尾添加数据
get(i); // 获取指定位置数据
remove(i); // 删除指定位置数据
remove(数组); // 找到第一个相等数据删除
size(); 数量
addFirst(数据);
addLast();
getFirdt();
getLast();
removeFirst();
removeLast();
iterator(); // 辅助创建迭代器对象, 对当前对象进行遍历
java - day010 - 基本类型包装,自动装箱和拆箱,日期,集合的更多相关文章
- 【转】java 自动装箱与拆箱
java 自动装箱与拆箱 这个是jdk1.5以后才引入的新的内容,作为秉承发表是最好的记忆,毅然决定还是用一篇博客来代替我的记忆: java语言规范中说道:在许多情况下包装与解包装是由编译器自行完成的 ...
- 深入剖析Java中的自动装箱和拆箱过程
深入剖析Java中的装箱和拆箱 自动装箱和拆箱问题是Java中一个老生常谈的问题了,今天我们就来一些看一下装箱和拆箱中的若干问题.本文先讲述装箱和拆箱最基本的东西,再来看一下面试笔试中经常遇到的与装箱 ...
- [转]JAVA自动装箱和拆箱
http://www.cnblogs.com/dolphin0520/p/3780005.html 1.Java数据类型 装箱和拆箱之前,我们先来了解一下Java的基本数据类型. 在Java中,数据类 ...
- Java进阶(三十七)java 自动装箱与拆箱
Java进阶(三十七)java 自动装箱与拆箱 前言 这个是jdk1.5以后才引入的新的内容.java语言规范中说道:在许多情况下包装与解包装是由编译器自行完成的(在这种情况下包装称为装箱,解包装称为 ...
- [转]java 自动装箱与拆箱
转自:http://www.cnblogs.com/shenliang123/archive/2012/04/16/2451996.html 这个是jdk1.5以后才引入的新的内容,作为秉承发表是最好 ...
- java中的自动装箱和拆箱
一.什么是自动装箱和拆箱: 我们知道java为8种基本类型分别提供了对应的包装类型,在Java SE5之前,如果要生成一个数值为10的Integer对象,必须这样进行: Integer i=new I ...
- Java——Java自动装箱和拆箱
一.什么是自动装箱和拆箱: 我们知道java为8种基本类型分别提供了对应的包装类型,在Java SE5之前,如果要生成一个数值为10的Integer对象,必须这样进行: Integer i=new I ...
- Java中自动装箱与拆箱
一.什么是封装类? Java中存在基础数据类型,但是在某些情况下,我们要对基础数据类型进行对象的操作,例如,集合中只能存在对象,而不能存在基础数据类型,于是便出现了包装器类.包装器类型就是对基本数据类 ...
- 《Java中的自动装箱和拆箱功能.》
//Java中的自动装箱和拆箱功能. class AutoboxingUnboxing { public static void main(String[] args) { //直接把一个基本类型变量 ...
随机推荐
- Oracle中查询当前时间、时间格式化方法
Oracle中如何获取系统当前时间 select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual; ORACLE里获取一个时间的年.季.月.周. ...
- 【Leetcode_easy】657. Robot Return to Origin
problem 657. Robot Return to Origin 题意: solution1: class Solution { public: bool judgeCircle(string ...
- react 表单组件 异步渲染,值不会生效,需要手动改变对应组件的显示值
楼主遇到这个问题已经是第二次,上次我们项目经理给帮忙解决了一次,这次又遇到了,刚开始不知道是这个问题,上次做的笔记也没找到了,估计又忘记了,这里抽三分钟记录一下, 当然这里这样做有个前提:就是你已经和 ...
- Docker 容器的资源限制 cgroup(九)
目录 一.cgroup简介 二.CPU资源配额控制 1.CPU份额控制 2.CPU周期控制 3.CPU core控制 4.CPU配额控制参数的混合使用 二.对内存的限额 三.对 Block IO 的限 ...
- linux下的进程间通信概述
管道(PIPE) FIFO(有名管道) XSI消息队列 XSI信号量 XSI共享内存 POSIX信号量 域套接字(Domain Socket) 信号(Signal) 互斥量(Mutex) 其中信号(s ...
- rsync参数说明
参数说明: log file = /var/log/rsyncd.log #日志文件位置,启动rsync后自动产生这个文件,无需提前创建 pidfile = /var/run/rsyncd.pid ...
- 安装CCS提示错误Windows8.1-KB2999226-x64安装提示 此更新不适用你的计算机
问题如图所示: 解决方案: 放在D:\目录下 windows键+X 选择 命令提示符(管理员) 一定要是管理员 打开cmd 分别执行下面两句.红色部分就是自己的更新程序了.其他安装同理 例如Wi ...
- DDS工作原理及其性能分析
DDS工作原理及其性能分析 声明:引用请注明出处http://blog.csdn.net/lg1259156776/ 系列博客说明:此系列博客属于作者在大三大四阶段所储备的关于电子电路设计等硬件方面的 ...
- 最新 海看java校招面经 (含整理过的面试题大全)
从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿.海看等10家互联网公司的校招Offer,因为某些自身原因最终选择了海看.6.7月主要是做系统复习.项目复盘.LeetCode ...
- python for循环 - python基础入门(11)
在python开发中,除了前篇文章介绍的while循环还有一个for循环也经常使用,两者使用都是大同小异,for循环的使用相对于while循环更加灵活,下面我们一起来了解下具体区别. 一.for 循环 ...