1 package com.bytezreo.ut;
2
3 import org.junit.Test;
4
5 /**
6 *
7 * @Description 包装类的使用
8 * @author Bytezero·zhenglei! Email:420498246@qq.com
9 * @version
10 * @date 下午3:59:43
11 * @ 1.Java提供了8种数据类型对应的包装类,使得基本数据类型的变量具有类的特征。
12 *
13 * 2.基本数据类型,包装类,String三者之间的转换
14 *
15 */
16 public class WrapperTest
17 {
18 //String类型 ---->基本数据类型,包装类:调用包装类的parseXxx(String s)
19 @Test
20 public void test5()
21 {
22 String str1 = "123";
23
24 //错误情况
25 // int num1 = (int)str1;
26
27 // Integer in1 = (Integer)str1;
28
29 //可能会报 NumberFormatException
30 int num2 = Integer.parseInt(str1);
31 System.out.println(num2 + 3);
32
33 String str2 = "true";
34 boolean b1 = Boolean.parseBoolean(str2);
35 System.out.println(b1);
36
37
38 }
39
40
41
42
43 //基本数据类型,包装类------>String类型:调用String重载的valueOf(Xxx xxx)
44 @Test
45 public void test4()
46 {
47 int num1 = 10;
48 //方式一:连接运算
49 String str1 = num1+"";
50
51 //方式二:调用String重载的valueOf(Xxx xxx)
52
53 float f1 = 12.3f;
54 String str2 = String.valueOf(f1);//"12.3"
55 System.out.println(str2.toString());
56
57
58 Double d1 = new Double(12.4);
59 String str3 = String.valueOf(d1);
60 System.out.println(str3); //"12.4"
61
62
63
64
65 }
66
67
68
69
70
71 /*
72 * JDK 5.0新特性:自动装箱与自动拆箱
73 *
74 */
75
76 @Test
77 public void test3()
78 {
79 // int num1 = 10;
80 //
81 // //基本数据类型----->包装类的对象
82 // method(num1);
83
84 //自动装箱: 基本数据类型----->包装类的对象
85 int num2 = 10;
86 Integer in1 = num2; //自动装箱
87
88 boolean b1 = true;
89 Boolean b2 = b1; //自动装箱
90
91
92
93 //自动拆箱:包装类 -----> 基本数据类型
94 System.out.println(in1.toString());
95
96 int num3 = in1; //自动拆箱
97 System.out.println(num3);
98
99
100
101 }
102 public void method(Object obj)
103 {
104 System.out.println(obj);
105 }
106
107
108
109
110
111
112 //包装类转 ------> 化为基本数据类型:调用包装类的xxxValie()
113 @Test
114 public void test2()
115 {
116 Integer in1 = new Integer(12);
117
118 int i1 = in1.intValue();
119 System.out.println(i1 + 2);
120
121
122
123 Float f1 = new Float(12.3);
124 float f2 = f1.floatValue();
125 System.out.println(f2+5);
126
127 }
128
129
130
131
132
133 //基本数据类型----->包装类:调用包装类的构造器
134 @Test
135 public void test1()
136 {
137 int num1 = 10;
138
139 Integer in1 = new Integer(num1);
140
141
142 System.out.println(in1.toString());
143
144 Integer in2 = new Integer("123");
145 System.out.println(in2.toString());
146
147
148 //异常
149 // Integer in3 = new Integer("123abc");
150 // System.out.println(in3.toString());
151
152
153 Float f1 = new Float(12.3f);
154
155 Float f2 = new Float("12.3");
156
157 System.out.println(f1.toString());
158 System.out.println(f2);
159
160
161 Boolean b1 = new Boolean(true);
162 Boolean b2 = new Boolean("true");
163 Boolean b3 = new Boolean("true123");
164
165 System.out.println(b1);
166 System.out.println(b2);
167 System.out.println(b3); //false
168
169
170 Order order = new Order();
171 System.out.println(order.isMale); //false
172 System.out.println(order.isFemale); //null
173
174
175 }
176
177 /*
178 * 小练习
179 *
180 */
181 @Test
182 public void test6()
183 {
184 Object o1 = true ? new Integer(1):new Double(2.0);
185 System.out.println(o1); //1.0 类型同一 自动类型提升
186 }
187
188 @Test
189 public void test7()
190 {
191 Object o2;
192 if(true)
193 o2 = new Integer(1);
194 else
195 o2 = new Double(2.0);
196 System.out.println(o2); //1
197 }
198
199 @Test
200 public void method1()
201 {
202 Integer i = new Integer(1);
203 Integer j = new Integer(1);
204
205 System.out.println(i == j); //false 地址不相等
206
207 // Integer内部定义了IntegerCache结构, IntegerCache中定义了Integer[],
208 //保存了-128~127范围的整数。如果我们使用自动装箱的方式,给Integer赋值的范围
209 //在-128~127范围内时,可以直接使用数组中的元素,不用在new了。
210 // 目的提高效率
211 Integer m = 1;
212 Integer n = 1;
213
214 System.out.println(m == n); // true
215
216
217 Integer x = 128; //不在int 的取值范围内 同时new了两个 128 所以不相同
218
219 Integer y = 128;
220 System.out.println(x == y); //false
221 }
222
223
224
225 }
226
227
228 class Order{
229 boolean isMale; //这是基本数据类型
230
231 Boolean isFemale; //这是类
232
233 }

Java 包装类的使用 + 小练习的更多相关文章

  1. Java 包装类笔记

    @(JDK)[包装类] Java 包装类笔记 当需要使用到集合的时候,如果是基础数据类型,需要转换为包装类,再使用,在JDK1.5之前,每次使用的时候,都需要手动转换为包装类(称为装箱),然后在使用的 ...

  2. java 开发面试题小整理(一)

    本篇文档将持续更新,有基础滴,也有深层次的,谢谢! 1.看下面的程序是否有问题,如果有问题,请指出并说明理由. * byte b1 = 3; * byte b2 = 4; * byte b3 = b1 ...

  3. Java 打印金字塔 or 打印带数字的金字塔 (Java 学习中的小记录)

    Java 打印金字塔 or 打印带数字的金字塔 (Java 学习中的小记录) 作者:王可利(Star·星星) 效果图: 代码如下: class Star8 { public static void m ...

  4. Java 需要记得、了解的关键词 (Java 学习中的小记录)

    Java 需要记得.了解的关键词 (Java 学习中的小记录)     作者:王可利(Star·星星) 总结:本次随笔,仅且拿来平时翻阅记忆用

  5. Java包装类及其拆箱装箱

    Java包装类,Wrapper~由于在java中,数据类型总共可分为两大种,基本数据类型(值类型)和类类型(引用数据类型).基本类型的数据不是对象,所以对于要将数据类型作为对象来使用的情况,java提 ...

  6. Java包装类的常量池

     Integer a=Integer.valueOf(100); Integer b=Integer.valueOf(100); System.out.println(a==b); Double d1 ...

  7. java网络爬虫爬虫小栗子

    简要介绍: 使用java开发的爬虫小栗子,存储到由zookeeper协调的hbase中 主要过程是模拟Post请求和get请求,html解析,hbase存储 源码:https://github.com ...

  8. IT咨询顾问:一次吐血的项目救火 java或判断优化小技巧 asp.net core Session的测试使用心得 【.NET架构】BIM软件架构02:Web管控平台后台架构 NetCore入门篇:(十一)NetCore项目读取配置文件appsettings.json 使用LINQ生成Where的SQL语句 js_jquery_创建cookie有效期问题_时区问题

    IT咨询顾问:一次吐血的项目救火   年后的一个合作公司上线了一个子业务系统,对接公司内部的单点系统.我收到该公司的技术咨询:项目启动后没有规律的突然无法登录了,重新启动后,登录一断时间后又无法重新登 ...

  9. JAVA包装类的缓存范围

    JAVA包装类的缓存范围 前两天面试遇到两个关于JAVA源码的问题,记录下来提醒自己. 1.写出下面的输出结果 System.out.println(Integer.valueOf("100 ...

  10. java实现简单窗体小游戏----球球大作战

    java实现简单窗体小游戏----球球大作战需求分析1.分析小球的属性: ​ 坐标.大小.颜色.方向.速度 2.抽象类:Ball ​ 设计类:BallMain—创建窗体 ​ BallJPanel—画小 ...

随机推荐

  1. 【VMware vSAN】使用命令行从vSAN集群中移除ESXi主机并加入到新的vSAN集群。

    说明 本文只是陈述了一种方法,不必评判谁对谁错谁好谁坏,选择适合自己的即可. 环境 站点名称 vCenter版本 vSAN集群 集群主机 主机版本 磁盘组 vcsa67.lab.com vCenter ...

  2. 一个思路:实现 golang 中的 `__file__` `__line__` 宏

    作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 测试 zaplog 发现,开启 caller 的调用,会使 ...

  3. golang: 学会几个语法上的新写法

    看了VictoriaMetrics,学会了几个新写法,记录下来: 1. 数组拷贝 以前: arr := make([]byte, 0, len(oldArr) arr = append(arr, ol ...

  4. win10 局域网共享文件创建方法

    win10 局域网共享文件创建方法 1.先在桌面文件夹,我命名为"xxxx",然后将文件放在该文件里. 2.右击共享文件夹,找到属性选项,点击"属性".再点击& ...

  5. 6.9 Windows驱动开发:内核枚举进线程ObCall回调

    在笔者上一篇文章<内核枚举Registry注册表回调>中我们通过特征码定位实现了对注册表回调的枚举,本篇文章LyShark将教大家如何枚举系统中的ProcessObCall进程回调以及Th ...

  6. 14.5 Socket 应用组播通信

    组播通信是一种基于UDP协议的网络通信方式,它允许发送方将消息同时传递给多个接收方.在组播通信中,发送方和接收方都会加入一个共同的组播组,这个组播组对应一个特定的IP地址,所有加入该组播组的主机都能够 ...

  7. 解决.netWebAPI输出时间格式带T问题

    GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings.Converters.Add( new Ne ...

  8. 集成Unity3D到iOS应用程序中

    如果想让原生平台(例如 Java/Android.Objective C/iOS 或 Windows Win32/UWP)包含 Unity 功能,可以通过Unity 生成UnityFramework静 ...

  9. 教你用CSS实现表单部件

    案例介绍 欢迎来到我的小院,我是霍大侠,恭喜你今天又要进步一点点了!我们来用CSS编程实战案例,使用 列表标签完成一个下拉菜单样式的表单部件. 案例演示 运行代码后在浏览器弹出由 标签组成的下拉菜单样 ...

  10. 不同网段之间实现GDB远程调试功能

    前言 在开发过程中,使用gdb远程调试时,会碰到 Linux 服务器的网段和板载设备的网段不是一样的,不能正常使用 gbd 远程调试功能. 板载设备和电脑连接路由器,属于同一个网段,如192.168. ...