Java 包装类的使用 + 小练习
- 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 包装类的使用 + 小练习的更多相关文章
- Java 包装类笔记
@(JDK)[包装类] Java 包装类笔记 当需要使用到集合的时候,如果是基础数据类型,需要转换为包装类,再使用,在JDK1.5之前,每次使用的时候,都需要手动转换为包装类(称为装箱),然后在使用的 ...
- java 开发面试题小整理(一)
本篇文档将持续更新,有基础滴,也有深层次的,谢谢! 1.看下面的程序是否有问题,如果有问题,请指出并说明理由. * byte b1 = 3; * byte b2 = 4; * byte b3 = b1 ...
- Java 打印金字塔 or 打印带数字的金字塔 (Java 学习中的小记录)
Java 打印金字塔 or 打印带数字的金字塔 (Java 学习中的小记录) 作者:王可利(Star·星星) 效果图: 代码如下: class Star8 { public static void m ...
- Java 需要记得、了解的关键词 (Java 学习中的小记录)
Java 需要记得.了解的关键词 (Java 学习中的小记录) 作者:王可利(Star·星星) 总结:本次随笔,仅且拿来平时翻阅记忆用
- Java包装类及其拆箱装箱
Java包装类,Wrapper~由于在java中,数据类型总共可分为两大种,基本数据类型(值类型)和类类型(引用数据类型).基本类型的数据不是对象,所以对于要将数据类型作为对象来使用的情况,java提 ...
- Java包装类的常量池
Integer a=Integer.valueOf(100); Integer b=Integer.valueOf(100); System.out.println(a==b); Double d1 ...
- java网络爬虫爬虫小栗子
简要介绍: 使用java开发的爬虫小栗子,存储到由zookeeper协调的hbase中 主要过程是模拟Post请求和get请求,html解析,hbase存储 源码:https://github.com ...
- IT咨询顾问:一次吐血的项目救火 java或判断优化小技巧 asp.net core Session的测试使用心得 【.NET架构】BIM软件架构02:Web管控平台后台架构 NetCore入门篇:(十一)NetCore项目读取配置文件appsettings.json 使用LINQ生成Where的SQL语句 js_jquery_创建cookie有效期问题_时区问题
IT咨询顾问:一次吐血的项目救火 年后的一个合作公司上线了一个子业务系统,对接公司内部的单点系统.我收到该公司的技术咨询:项目启动后没有规律的突然无法登录了,重新启动后,登录一断时间后又无法重新登 ...
- JAVA包装类的缓存范围
JAVA包装类的缓存范围 前两天面试遇到两个关于JAVA源码的问题,记录下来提醒自己. 1.写出下面的输出结果 System.out.println(Integer.valueOf("100 ...
- java实现简单窗体小游戏----球球大作战
java实现简单窗体小游戏----球球大作战需求分析1.分析小球的属性: 坐标.大小.颜色.方向.速度 2.抽象类:Ball 设计类:BallMain—创建窗体 BallJPanel—画小 ...
随机推荐
- Gin-官方文档
目录 官方文档 官方文档 https://learnku.com/docs/gin-gonic/2018/gin-readme/3819 https://www.kancloud.cn/shuangd ...
- Gorm 关联关系介绍与基本使用
目录 一 Belongs To(一对一) 1.1 Belongs To 1.2 重写外键 1.3 重写引用(一般不用) 1.4 Belongs to 的 CRUD 1.5 预加载 1.6 外键约束 二 ...
- c#时间格式转换汉字大写
把时间转换为汉字大写 public class DateTimeConvert { public static string ConvertToChineseCapital(DateTime date ...
- 6.7 Windows驱动开发:内核枚举LoadImage映像回调
在笔者之前的文章<内核特征码搜索函数封装>中我们封装实现了特征码定位功能,本章将继续使用该功能,本次我们需要枚举内核LoadImage映像回调,在Win64环境下我们可以设置一个LoadI ...
- Python 开发代码片段笔记
作者编写的一些代码片段,本版本为残废删减版,没有加入多线程,也没有实现任何有价值的功能,只是一个临时记事本,记录下本人编写代码的一些思路,有价值的完整版就不发出来了,自己组织吧,代码没啥技术含量,毕竟 ...
- 解决每次 git pull/push 时都需要输入账号和密码的问题
问题 在提交代码或者拉取代码的时候,如果每次git都要输入用户名密码 解决方法 1. 终端输入 git config --global credential.helper store 2. 在git ...
- Linux--如何查看磁盘的IO(top、iostat)
问题背景: 在性能测试时,虽然测试出了结果,但是我们并不知道瓶颈是源端,还是目标端.例如我做上传和下载性能验证,从Linux服务器上向OSS集群上传和下载文件,虽然测试出了速率,但是并不知道上传是否存 ...
- ABC 333
ABCDE 赛时 AC. F 列方程:\(f_{i,j}\) 表示有 \(i\) 个人,第 \(j\) 个人最终活下来的概率. \(f_{i,1}=\dfrac{1}{2}f_{i,i}\),因为只有 ...
- SQLServer复制表及数据的两种方法
1.新表不存在(即复制数据的同时创建与旧表相同结构的新表): select [col1,col2,col3...] into new_table from old_table where 1= ...
- Git Conventional Commits (Git代码提交说明规范)
Conventional Commits (代码提交说明规范) Conventional Commits 是关于Git Commit 提交代码时, 填写的说明文字的一个规范. 这个规范提供了一套易于理 ...