java新特性:自动装箱与拆箱带来的问题

本文介绍了Java中自动装箱与拆箱的基本概念及使用方法,并通过实例演示了自动装箱与拆箱的过程,包括不同数据类型的转换及比较运算。此外还探讨了在特定数值范围内装箱对象的内存分配特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//-------------------------------------------------------------------------

// Header

//

// Copyright (c) 1998-1998 GEMALTO group. All Rights Reserved.

//

// This software is the confidential and proprietary information of 

// GEMALTO.

//

//  Project name:  CSTK

//

//  Platform    :  Java virtual machine

//  Language    :  JAVA 1.6.0

//  Devl tool   :  Eclipse

//

//  Workfile

//  version: 1.0

//  Date   : 2009-7-17

//  Author : 

//  Modtime:

//

//  Original author:

//

//-------------------------------------------------------------------------

// GEMALTO MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF

// THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED

// TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A

// PARTICULAR PURPOSE, OR NON-INFRINGEMENT. GEMALTO SHALL NOT BE

// LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING,

// MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.

//

// THIS SOFTWARE IS NOT DESIGNED OR INTENDED FOR USE OR RESALE AS ON-LINE

// CONTROL EQUIPMENT IN HAZARDOUS ENVIRONMENTS REQUIRING FAIL-SAFE

// PERFORMANCE, SUCH AS IN THE OPERATION OF NUCLEAR FACILITIES, AIRCRAFT

// NAVIGATION OR COMMUNICATION SYSTEMS, AIR TRAFFIC CONTROL, DIRECT LIFE

// SUPPORT MACHINES, OR WEAPONS SYSTEMS, IN WHICH THE FAILURE OF THE

// SOFTWARE COULD LEAD DIRECTLY TO DEATH, PERSONAL INJURY, OR SEVERE

// PHYSICAL OR ENVIRONMENTAL DAMAGE ("HIGH RISK ACTIVITIES"). GEMALTO

// SPECIFICALLY DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY OF FITNESS FOR

// HIGH RISK ACTIVITIES.

//-------------------------------------------------------------------------

 

package org.zdxue.javase.lang;

 

/**

 * Java自动装箱与拆箱

 *

 * @version           1.0 - 2009-7-17

 * @author            

 */

public class Boxing_Unboxing

{

    public static void main(String[] args)

    {

        Integer a = 1024; //自动装箱(编辑器会隐式处理为:Integer a = new Integer(1024); )

        Integer b = 1024; //自动装箱(编辑器会隐式处理为:Integer b = new Integer(1024); )

        int c = 1024; //基本数据类型

        int d = a; //自动拆箱(编辑器会隐式处理为:int d = a.intValue(); )

        double e = a;//自动拆箱(编辑器会隐式处理为:int d = a.doubleValue(); )

        short f = a.shortValue(); //不可以写成:short f = a; 因为隐式转换会丢失精度,必须向上(高精度)转型

        boolean test = a < b || a == b || a > b; //对象运算

        System.out.println(test);

        System.out.println(a == c); //自动将a拆箱后,与c进行计算

        System.out.println(d);

        System.out.println(e);

        System.out.println(d == e);

        System.out.println(f);

 

        //---------------------------------------------

        /**

         * int值在-128~127之间,装箱时,在内存堆中只new一次,则h1,h2指向同一个对象,因此地址== true

         * 但是不在上述的范围时(-128~127),会在内存堆中各个new一次,也就是说,引用地址是不同的,因此== false

         */

        Integer h1 = 127;

        Integer h2 = 127;

        System.out.println("h1=h2 ->" + (h1 == h2)); //在范围内,true

 

        Integer h3 = 128;

        Integer h4 = 128;

        System.out.println("h3=h4 ->" + (h3 == h4)); //不在范围内,false

 

        //--------------------------------------

        Long l1 = 128L;

        Long l3 = 128L;

        long l2 = 100;

 

        Long l5 = 127L;

        Long l4 = 127L;

 

        System.out.println("l1==l2 -> " + (l1 == l2));

        System.out.println("l1==l3 -> " + (l1 == l3)); //不在范围内,false

        System.out.println("l4==l5 -> " + (l4 == l5)); //在范围内(-128~127),true

 

        //---------------- 注意 ------------------------------------

        Integer i = null;

        //int j = i.intValue();

        int j = i; //编译上没有问题,但是已经隐含NullPointerException, 编译器会处理为:ing j = i.intValue();

        System.out.println(j);

        //---------------------------------------------------------

 

        int d0 = 100;

        Double d1 = (double)d0; //注意与下面的区别

        double d2 = d0;

    }

}

 

转自:http://xuezhongde.iteye.com/blog/427745

内容概要:本文档详细介绍了基于Google Earth Engine (GEE) 构建的阿比让绿地分析仪表盘的设计实现。首先,定义了研究区域的几何图形并将其可视化。接着,通过云掩膜函数和裁剪操作预处理Sentinel-2遥感影像,筛选出高质量的数据用于后续分析。然后,计算中值图像并提取NDVI(归一化差异植被指数),进而识别绿地及其面积。此外,还实现了多个高级分析功能,如多年变化趋势分析、人口-绿地交叉分析、城市热岛效应分析、生物多样性评估、交通可达性分析、城市扩张分析以及自动生成优化建议等。最后,提供了数据导出、移动端适配和报告生成功能,确保系统的实用性和便捷性。 适合人群:具备一定地理信息系统(GIS)和遥感基础知识的专业人士,如城市规划师、环境科学家、生态学家等。 使用场景及目标:①评估城市绿地分布及其变化趋势;②分析绿地人口的关系,为城市规划提供依据;③研究城市热岛效应及生物多样性,支持环境保护决策;④评估交通可达性,优化城市交通网络;⑤监测城市扩张情况,辅助土地利用管理。 其他说明:该系统不仅提供了丰富的可视化工具,还集成了多种空间分析方法,能够帮助用户深入理解城市绿地的空间特征及其对环境和社会的影响。同时,系统支持移动端适配,方便随时随地进行分析。用户可以根据实际需求选择不同的分析模块,生成定制化的报告,为城市管理提供科学依据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值