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

    目录 官方文档 官方文档 https://learnku.com/docs/gin-gonic/2018/gin-readme/3819 https://www.kancloud.cn/shuangd ...

  2. Gorm 关联关系介绍与基本使用

    目录 一 Belongs To(一对一) 1.1 Belongs To 1.2 重写外键 1.3 重写引用(一般不用) 1.4 Belongs to 的 CRUD 1.5 预加载 1.6 外键约束 二 ...

  3. c#时间格式转换汉字大写

    把时间转换为汉字大写 public class DateTimeConvert { public static string ConvertToChineseCapital(DateTime date ...

  4. 6.7 Windows驱动开发:内核枚举LoadImage映像回调

    在笔者之前的文章<内核特征码搜索函数封装>中我们封装实现了特征码定位功能,本章将继续使用该功能,本次我们需要枚举内核LoadImage映像回调,在Win64环境下我们可以设置一个LoadI ...

  5. Python 开发代码片段笔记

    作者编写的一些代码片段,本版本为残废删减版,没有加入多线程,也没有实现任何有价值的功能,只是一个临时记事本,记录下本人编写代码的一些思路,有价值的完整版就不发出来了,自己组织吧,代码没啥技术含量,毕竟 ...

  6. 解决每次 git pull/push 时都需要输入账号和密码的问题

    问题 在提交代码或者拉取代码的时候,如果每次git都要输入用户名密码 解决方法 1. 终端输入 git config --global credential.helper store 2. 在git ...

  7. Linux--如何查看磁盘的IO(top、iostat)

    问题背景: 在性能测试时,虽然测试出了结果,但是我们并不知道瓶颈是源端,还是目标端.例如我做上传和下载性能验证,从Linux服务器上向OSS集群上传和下载文件,虽然测试出了速率,但是并不知道上传是否存 ...

  8. ABC 333

    ABCDE 赛时 AC. F 列方程:\(f_{i,j}\) 表示有 \(i\) 个人,第 \(j\) 个人最终活下来的概率. \(f_{i,1}=\dfrac{1}{2}f_{i,i}\),因为只有 ...

  9. SQLServer复制表及数据的两种方法

    1.新表不存在(即复制数据的同时创建与旧表相同结构的新表):     select [col1,col2,col3...] into new_table from old_table where 1= ...

  10. Git Conventional Commits (Git代码提交说明规范)

    Conventional Commits (代码提交说明规范) Conventional Commits 是关于Git Commit 提交代码时, 填写的说明文字的一个规范. 这个规范提供了一套易于理 ...