《jav入门第一季》之Integer类和自动拆装箱概述

/ * int 仅仅是一个基本类型。int有对应的类类型,那就是Integer.

* 为了对基本数据类型进行更多的操作,更方便的操作,Java就针对每一种基本数据类型提供了对应的类类型——包装类类型。各个基本类型分配封装与之对应的类类型来对基本类型数据更方便的操作。

* byte         Byte

* short         Short

* int Integer(这个看起来比较特殊)

* long Long

* float          Float

* double Double

* char Character(这个看起来比较特殊)

* boolean Boolean

*

* 用于基本数据类型与字符串之间的转换。

*/

JDK5的新特性,自动拆装箱。

/*
 * JDK5的新特性
 * 自动装箱:把基本类型转换为包装类类型
 * 自动拆箱:把包装类类型转换为基本类型
 *
 */
public class IntegerDemo {
	public static void main(String[] args) {
		// 定义了一个int类型的包装类类型变量i
		// Integer i = new Integer(100);
		Integer ii = 100;//相当于上句语句,自动将100变为引用的Integer类型
		ii += 200;//本身以为不同的类型相加会报错的,而这里并没有报错。
		//这里不会报错,因为自动把ii变为int类型进行计算。
		System.out.println("ii:" + ii);

		// 通过反编译后的代码,前面的三句话相当于下面的三句话
		// Integer ii = Integer.valueOf(100); //自动装箱
		// ii = Integer.valueOf(ii.intValue() + 200); //自动拆箱ii.intValue() ,再自动装箱Integer.valueOf(ii.intValue() + 200);
		// System.out.println((new StringBuilder("ii:")).append(ii).toString()); //结果是一个字符串类型


注意:
 * 		在使用JDK新特性这种方式时,Integer  x = null;代码就会出现NullPointerException。空指针异常
 * 		建议先判断是否为null,然后再使用。if (iii != null) {}

代码如下:

Integer iii = null;
		// NullPointerException
		if (iii != null) {//加入判断逻辑,就不会出现这个异常。
			iii += 1000;
			System.out.println(iii);
		}

Integer类的另一个特性:Integer的数据直接赋值,如果在-128到127之间,会直接从缓冲池里获取数据

通过反编译,就知道了,针对-128到127之间的数据,做了一个数据缓冲池,如果数据是该范围内的,每次并不创建新的空间(不会创建新的地址即新的对象)

时间: 2024-08-02 09:48:33

《jav入门第一季》之Integer类和自动拆装箱概述的相关文章

《jav入门第一季》之Character类小案例

/* * Character 类在对象中包装一个基本类型 char 的值 * 此外,该类提供了几种方法,以确定字符的类别小写字母,数字,等等,并将字符从大写转换成小写,反之亦然 * */ 下面通过一个小案例,来看一下Character类的功功能: 统计一个字符串中大写字母字符,小写字母字符,数字字符出现的次数. 之前写过完成这个功能的代码,在那里不是按照Character类来实现的.建议先看那篇博客,因为那里有点面向过程的意思.理解了那边,有助于体会Character的功能.见博客http://

Asp.Net MVC3 简单入门第一季(三)详解Controller之Filter

前言 前面两篇写的比较简单,刚开始写这个系列的时候我面向的对象是刚开始接触Asp.Net MVC的朋友,所以写的尽量简单.所以写的没多少技术含量.把这些技术总结出来,然后一简单的方式让更多的人很好的接受这是我一直努力的方向.后面会有稍微复杂点的项目!让我们一起期待吧! 此文我将跟大家介绍一下Asp.Net MVC3 Filter的一些用法.你会了解和学习到全局Fileter,Action Filter等常用用法. 第一节:Filter知识储备 项目大一点总会有相关的AOP面向切面的组件,而MVC

Asp.Net MVC3 简单入门第一季(一)环境准备

前言 大家好,从今天开始我将写一个关于AspNet MVC3方 面学习的总结,并跟初学者一起分享一些基本的基础知识,作者本身也很愿意跟大家一起交流技术,一起交流一起进步,欢迎高手不吝赐教,欢迎大家不同的意见和 建议,作者的学识和见识当然有自己的局限性,希望自己能成为不闷骚型的技术人员,而不是只自己享受技术,而不让更多的人来分享你的成果的人. 第一节:关于Asp.Net MVC3 Asp.Net MVC已经到第三版了,相信大家也都熟悉了,我也不再重复相关概念性的东西了.但是大家一定要了解,Asp.

[MVC.NET] Asp.Net MVC3 简单入门第一季

转自:http://www.cnblogs.com/fly_dragon/archive/2011/10/12/2208042.html 初识Asp.Net MVC2.0 初识Asp.Net MVC2.0[续] Asp.Net MVC2.0 Url 路由入门---实例篇 Asp.Net MVC2.0 Url 路由入门 Asp.Net MVC3 简单入门第一季(一)环境准备 Asp.Net MVC3 简单入门第一季(二)详解Asp.Net MVC3项目 Asp.Net MVC3 简单入门第一季(三

Java连载78-深入自动拆装箱、Date类和SimpleDateFormat格式化

一.深入自动拆装箱 1.直接举例: public class D78_AutomaticUnpackingAndPacking{ public static void main(String[] args){ Integer i1 = new Integer(10); Integer i2 = new Integer(10); //这里不会自动进行拆箱 System.out.println(i1==i2);//false //比较两个Integer类型的数据是否相等,不能用“==" //Inte

《java入门第一季》之Arrays类前传(排序案例以二分查找注意的问题)

根据排序算法,可以解决一些小案例.举例如下: /* * 把字符串中的字符进行排序. * 举例:"dacgebf" * 结果:"abcdefg" * * 分析: * A:定义一个字符串 * B:把字符串转换为字符数组 * C:把字符数组进行排序 * D:把排序后的字符数组转成字符串 * E:输出最后的字符串 */ public class ArrayTest { public static void main(String[] args) { // 定义一个字符串 S

Java入门第一季

慕课网:http://www.imooc.com/learn/85 Java入门知识第一季 1.Java开发环境和IDE的使用: 2.变量和常量 3.常用的运算符 4.流程控制语句 5.数组:使用Arrays操作数组.foreach循环遍历数组 6.方法的定义,重载调用 跟着慕课网的教程,去一步一步补充完成小练习中的代码,学习效率会比较高~

Java入门第一季——从此投身Java??

找工作告一段落. 最后的工作呢,和java紧密相关,也是阴差阳错,不过都是软件开发,都好了,不过以后侧重点肯定是在java这边,php有机会还是一直学下去的,那么美的说~ Java开发第一季  一.简介 1.1 Java SE--基础核心: 以此为基础,又分为Java EE(企业应用开发,JSP等),Java ME(嵌入式开发,安卓等): JVM(Java Virtual Machine): Java虚拟机,使Java代码可以跨平台运行: .java-->编译器-->.class-->解

《java入门第一季》之面向对象(谈谈接口)

软件中有接口,这里的接口与硬件中的接口还是有很大区别的. 这里介绍接口不考虑JDK8的新特性(JDK8开始接口里面可以有非抽象方法了,介绍JDK8新特性可能要到整个第一季写完吧!) 还是直接进入接口的学习: /* 接口的特点: A:接口用关键字interface表示 interface 接口名 {} B:类(实现)接口用implements(执行,实现)表示 class 类名 implements 接口名 {} C:接口不能实例化,就是说不能凭空的创建对象 那么,接口如何实例化呢? 按照多态的方