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) { //直接把一个基本类型变量 ...
随机推荐
- mycat 实现读写分离
mycat 实现读写分离 配置mysql实现主从复制 安装jdk 安装mycat实现读写分离 tar zxf Mycat-server-1.6-RELEASE-20161028204710-sangn ...
- Redis高级功能 - 慢查询日志
转自 https://segmentfault.com/a/1190000009915519
- iOS自定义遮盖
@interface TGCover : UIView+ (id)cover;+ (id)coverWithTarget:(id)target action:(SEL)action; - (void) ...
- iOS-NSdata 与 NSString,Byte数组,UIImage 的相互转换
IOS---NSdata 与 NSString,Byte数组,UIImage 的相互转换 1. NSData 与 NSString NSData-> NSString NSString *aSt ...
- EasyNetQ使用(九)【非泛型的发布&订阅扩展方法,发生错误的情况 】
自从EasyNetQ第一个版本开始,它就可以发布/订阅特定类型的消息. bus.Subscribe<MyMessage>("subscriptionId", x =&g ...
- PHP实现无限极分类的两种方式,递归和引用
面试的时候被问到无限极分类的设计和实现,比较常见的做法是在建表的时候,增加一个PID字段用来区别自己所属的分类 $array = array( array('id' => 1, 'pid' =& ...
- Mac下用apache搭建一个局域网服务器
一:由于MacOX系统下自带Apache环境,所以我们在Mac系统下用Apache配置. Mac系统:10.14.4 二:启动Apache 启动 在终端输入:sudo apachectl start验 ...
- kali安装chrome
文章搬到自己的网站上,如下: http://101.132.137.140:202/archives/2019-11-25
- 控件setText与setValue赋值顺序先后区别
1.text与value设置不同的值一定要先赋值 value后赋值text, 否则全为value值 2.若只setValue,则getValue 与 getText获取的值全为value值 $('#t ...
- centos(6,7) 系统常用命令
目录: 系统服务命令 文件操作 系统信息 文件和目录 文件搜索 挂载一个文件系统 磁盘空间 用户和群组 文件的权限 压缩与解压缩 YUM丶RPM 包 查看文件内容 文本处理 文件系统分析 初始化一个文 ...