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) { //直接把一个基本类型变量 ...
随机推荐
- 雨田家园 delphi 拆分字符串
最近在使用Delphi开发一种应用系统的集成开发环境.其中需要实现一个字符串拆分功能,方法基本原型应该是:procedure SplitString(src: string ; ch: Char; v ...
- php判断进程是否存在
//计划任务定时检测master进程是否存在,不存在则启动,以root用户运行 public function checkMaster() { $cmd = 'ps axu|grep "Uc ...
- jQuery调用WCF
jQuery要调用WCF,首先要创建service.svc服务文件,这里边需要注意: [ServiceContract(Namespace = "")] [AspNetCompat ...
- 第二十章 无状态Web应用集成——《跟我学Shiro》
目录贴:跟我学Shiro目录贴 在一些环境中,可能需要把Web应用做成无状态的,即服务器端无状态,就是说服务器端不会存储像会话这种东西,而是每次请求时带上相应的用户名进行登录.如一些REST风格的AP ...
- iOS技术面试06:应用程序
1.NSRunLoop的实现机制,及在多线程中如何使用 NSRunLoop是IOS消息机制的处理模式 >1.NSRunLoop的主要作用:控制NSRunLoop里面线程的执行和休眠,在有事情做的 ...
- 使用Apache,压力测试redisson的一般高并发
安装 Linux linux直接yum -y install httpd-tools,然后ab -V测试 Windows 1查看80端口有没有被占用,netstat -ano | findstr &q ...
- 使用AndEngine重制《是男人就上一百层》
1.为什么还要做<是男人就上一百层> 一是在用Android原生API开发完<是男人就上一百层>以后,一直想体验一下用引擎开发游戏是个什么感觉,顺便也让游戏听上去高大上一些(使 ...
- amazeUI modal 模态框 关闭属性
$('#my-prompt').modal({ relatedTarget: this, closeViaDimmer: false, // 点击外部空白处不关闭弹窗 closeOnConfirm:f ...
- [转帖]Chrome中默认非安全端口
Chrome,你这坑人的默认非安全端口 https://www.cnblogs.com/soyxiaobi/p/9507798.html 之前遇到过 这个总结的比之前那篇要好呢. 今天用chrome打 ...
- TypeScript 枚举
我们常常会有这样的场景,比如与后端开发约定订单的状态开始是0,未结账是1,运输中是2,运输完成是3,已收货是4.这样的纯数字会使得代码缺乏可读性.枚举就用于这样的场景.枚举可以让我们定义一些名字有意义 ...