一、 包装类的使用

java提供了8种基本数据类型对应的包装类,使得基本数据类型的变量具有类的特征

需要掌握的:基本数据类型、包装类、String三者之间的相互转换

基本数据类型 《---------------》包装类:自动装箱,自动拆箱

基本数据类型、包装类--->String类型:调用String重载的valueOf(Xxx xxx)

String类型 --->基本数据类型、包装类:调用包装类的parseXxx(String s)

import org.junit.Test;

public class WrapperTest {

//String类型 --->基本数据类型、包装类:调用包装类的parseXxx(String s)

@Test

public void test5(){

String str1 = "123";

//错误的情况:

//int num1 = (int)str1;

//Integer in1 = (Integer)str1;

//可能会报NumberFormatException

int num2 = Integer.parseInt(str1);

System.out.println(num2 + 1);

String str2 = "true1";

boolean b1 = Boolean.parseBoolean(str2);

System.out.println(b1);

}

//基本数据类型、包装类--->String类型:调用String重载的valueOf(Xxx xxx)

@Test

public void test4(){

int num1 = 10;

//方式1:连接运算

String str1 = num1 + "";

//方式2:调用String的valueOf(Xxx xxx)

float f1 = 12.3f;

String str2 = String.valueOf(f1);//"12.3"

Double d1 = new Double(12.4);

String str3 = String.valueOf(d1);

System.out.println(str2);

System.out.println(str3);//"12.4"

}

/*

* JDK 5.0 新特性:自动装箱 与自动拆箱

*/

@Test

public void test3(){

//int num1 = 10;

基本数据类型-->包装类的对象

//method(num1);

//自动装箱:基本数据类型 --->包装类

int num2 = 10;

Integer in1 = num2;//自动装箱

boolean b1 = true;

Boolean b2 = b1;//自动装箱

//自动拆箱:包装类--->基本数据类型

System.out.println(in1.toString());

int num3 = in1;//自动拆箱

}

public void method(Object obj){

System.out.println(obj);

}

//包装类--->基本数据类型:调用包装类Xxx的xxxValue()

@Test

public void test2(){

Integer in1 = new Integer(12);

int i1 = in1.intValue();

System.out.println(i1 + 1);

Float f1 = new Float(12.3);

float f2 = f1.floatValue();

System.out.println(f2 + 1);

}

//基本数据类型 --->包装类:调用包装类的构造器

@Test

public void test1(){

int num1 = 10;

//System.out.println(num1.toString());

Integer in1 = new Integer(num1);

System.out.println(in1.toString());

Integer in2 = new Integer("123");

System.out.println(in2.toString());

//报异常

//Integer in3 = new Integer("123abc");

//System.out.println(in3.toString());

Float f1 = new Float(12.3f);

Float f2 = new Float("12.3");

System.out.println(f1);

System.out.println(f2);

Boolean b1 = new Boolean(true);

Boolean b2 = new Boolean("TrUe");

System.out.println(b2);

Boolean b3 = new Boolean("true123");

System.out.println(b3);//false

Order order = new Order();

System.out.println(order.isMale);//false

System.out.println(order.isFemale);//null

}

}

class Order{

boolean isMale;

Boolean isFemale;

}

二、问题

public void test() {

Object o1 = true ? new Integer(1) : new Double(2.0);

//默认调用toString方法

System.out.println(o1);//1.0

System.out.println(o1.toString());// 1.0

}

/*三目运算符比较基本数据类型,所以在编译阶段自动拆箱为 int 和 double 类型,由于三目运算符要求 表达式2 和 表达式3 类型一致,所以在编译阶段自动类型提升(即 int 自动类型转换为 double 类型),再自动装箱为Object,输出时使用多态调用重写的toString();即Double包装类的toString();

其实这里面包含一个三元一次运算符和一个赋值运算,因为三目运算符的优先级高于赋值运算符,所以先运行三目运算符

*/

@Test

public void test3() {

Integer i = new Integer(1);

Integer j = new Integer(1);

System.out.println(i == j);//false

//Integer内部定义了IntegerCache结构,IntegerCache中定义了Integer[],

//保存了从-128~127范围的整数。如果我们使用自动装箱的方式,给Integer赋值的范围在

//-128~127范围内时,可以直接使用数组中的元素,不用再去new了。目的:提高效率

Integer m = 1;

Integer n = 1;

System.out.println(m == n);//true

Integer x = 128;//相当于new了一个Integer对象

Integer y = 128;//相当于new了一个Integer对象

System.out.println(x == y);//false

java常用类的特征_Java常用类-包装类相关推荐

  1. java字符串常量池长度_Java String类相关知识梳理(含字符串常量池(String Pool)知识)...

    目录 1. String类是什么 1.1 定义 1.2 类结构 1.3 所在的包 2. String类的底层数据结构 3. 关于 intern() 方法(重点) 3.1 作用 3.2 字符串常量池(S ...

  2. java定义类属性方法_java定义类、属性、方法

    Java是面向对象的程序设计语言,Java语言提供了定义类.定义属性.方法等最基本的功能.类可被认为是一种自定义的数据类型,可以使用类来定义变量,所有使用类定义的变量都是引用变量,它们将会引用到类的对 ...

  3. java设计复数类报告总结_java复数类

    1 编写一个完整的 Java 程序,包括 Complex 和 TestComplex 两个类. 使用复数类 Complex 验证两个复数 1+2i 和 3+4i 相加产生一个新的复数 4+6i . . ...

  4. java 获取父类的方法_java 获取类和父类的属性和方法

    问题 在日常开发中,经常需要获取当前类和父类的所有属性,没办法只能查API了. getDeclaredFields VS getFields 查阅API得知,class.getDeclaredFiel ...

  5. 不能将brassplus类型的值分配到brass类的实体_Java 基础 - 类与对象

    类.对象和引用的关系 类和对象的关系 类是对象的模版,对象是类的一个实例,一个类可以有很多对象 一个Java程序中类名相同的类只能有一个,也就是类型不会重名 一个对象只能根据一个类来创建 引用和类以及 ...

  6. java集合的存储特征_Java集合常用类特点整理

    集合的结构如下图所示: 集合的两个顶级接口分别为:Collection和Map Collection下有两个比较常用的接口分别是List(列表)和Set(集),其中List可以存储重复元素,元素是有序 ...

  7. java常用的集合对象_java常用实体类、集合类

    java常用实体类.集合类 [转自51cto博客jichangwei的BLOG] 1:String类,字符串是常量,他们的值在创建之后不能更改,可以共享. equals()用来比较两个字符串的值,== ...

  8. java文件读写的基本类_java常用工具类(三)—— 文件读取的操作类

    定义常用的文件类型 public class FileType { /** * 文件头类型 */ public static final String XML_FILE = "text/xm ...

  9. java输入scanner 报错_Java常用类:Scanner类

    一.简介 java.util.Scanner是Java5的新特征,我们可以通过Scanner类来获取用户的输入. 二.创建对象 示例: Scanner scanner = new Scanner(Sy ...

最新文章

  1. 序列化/反序列化,我忍你很久了,淦!
  2. flask 渲染 vue 打包后的dist文件(直接用后端渲染)
  3. 米家扩展程序初始化超时_28条规范和建议,教你如何设计出一套完美的PLC程序...
  4. 《深入理解Java虚拟机》笔记6——高效并发
  5. TP、Yii、Laravel的区别
  6. OVERLAPPED结构与GetOverlappedResult函数
  7. 一个不错的MYSQL数据库备份类,PHP版,一个文件,精简版
  8. 一次搞定各种数据库SQL执行计划
  9. 计算机二级学校查询,计算机等级考试查询系统
  10. 1inch将升级至1.1版本并开启新的流动性挖矿计划
  11. 西瓜书+实战+吴恩达机器学习(十三)监督学习之随机森林 Random Forest
  12. UVA10191 Longest Nap【排序】
  13. C++程序设计(二:机器模拟)
  14. Django新手图文教程
  15. 浅谈 Mousewheel 事件
  16. 1183: 平面点排序(一)(结构体专题)C语言
  17. Firefox(火狐)好用的插件
  18. SV实验3 子系统验证和测试点划分
  19. windows同时代服务器系统,从Win95到Win10:那些年让你痴迷的系统特性大盘点
  20. 数据中心蓄冷罐的开式与闭式的选择-孙长青

热门文章

  1. WIN7(VISTA)系统无法上网问题排查方法
  2. Linux服务器运行环境搭建(四)——Tomcat安装
  3. SQL格式化流水号位数
  4. Ubuntu中类似QQ截图的截图工具并实现鼠标右键菜单截图
  5. ALSA播放时杂音问题
  6. Android系统音量范围0-100,步进值5(十三)
  7. Mac OS修改Mac地址
  8. Android “Theme.AppCompat.Light”解决方法
  9. 学习OpenGL-ES: 2 - EGL解析
  10. access统计各职务人数_东莞各阶段学生人数统计|终于知道为什么在东莞总是学位紧缺了...