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) { //直接把一个基本类型变量 ...
随机推荐
- iOS- Core Foundation对象与OC对象相对转换
对ARC盲目依赖的同学: 1过度使用block后,无法解决循环引用问题 2遇到底层Core Foundation对象,需要自己手工管理它们的引用计数时,显得一筹莫展 first:对于底层Core Fo ...
- EasyNetQ使用(六)【多态发布和订阅,消息版本控制】
你能够订阅一个接口,然后发布基于这个接口的实现. 让我们看下一个示例.我有一个接口IAnimal和两个实现Cat和Dog: public interface IAnimal { string Name ...
- 创建.Net Core For WPF项目并且添加VS Code编译运行支持
1.下载最新的Visual Studio 2019或者Preview版本,新建项目,找到"WPF App(.Net Core)"模板. 2.输入项目名称"NetCore- ...
- 汉化Git Gui
先来一个图: 其实使用自带的图形化操作git还是很方便的,但是英文界面还是让相当一部分小伙伴不太舒服,比如我哈. 汉化包地址:链接: https://pan.baidu.com/s/1qQtBUsf1 ...
- 域名购买、SSL证书申请使用和本地服务映射外网
万网购买域名 1.在如下网址购买,价格不是很贵,几块钱一年的都有:https://wanwang.aliyun.com/domain/?spm=5176.100251.111252.24.4ddd4f ...
- Kali之Metasploit生成apk后门控制安卓
扫盲教程,大佬勿喷. 实验中请更改为你环境的IP. 生成apk后门 Kali Linux(Hack):192.168.169.76 Android(靶机):192.168.169.137 启动kali ...
- iframe里访问父级里的方法属性
window.parent.attributeName; // 访问属性attributeName是在父级窗口的属性名 window.parent.Func(); // 访问属性Func()是在父 ...
- 使用Cython时遇到的cl.exe的问题
最近使用cython时,遇到一个问题,报错如下: cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD "-Id:\program files\python3 ...
- 如何使用Curator监听zookeeper事件变化
掌握zookeeper事件监听机制,非常重要,可以说是跨入了进阶的门槛,只有掌握了如何监听某个节点或路径,我们才能在节点变化后,做一些我们想做的事,包括: 1,配置文件同步 2,主从切换 3,分布式队 ...
- spring-cloud项目搭建
springCloud项目搭建手册 springcloud应用场景及微服务框架发展趋势 Spring Cloud为开发人员提供了工具,以快速构建分布式系统中的某些常见模式(例如,配置管理,服务发现,断 ...