`
itroop
  • 浏览: 303684 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

转贴Java基本数据类型的运算

阅读更多

【主题】  Java基本数据类型的运算

【关键字】java 基本数据类型

【问题描述】请看如果一段代码,如果不在eclipse里运行,请写出输出结果

                  public static void main(String[] args) {
                            int j = 0;
                            for(int i = 0; i < 100 ; i ++){
                               j = j ++;
                            }
                            System.out.println(j);

                   }

          很多人都会毫不犹豫说是100吧!告诉你,答案是0

【问题分析】

          这和JAVA的基本数据类型的运算有关,JAVA的基本数据类型都是值引用的,这跟对象不一样.同样,在你对基本数据类型进行操作后,他会生成在内存中划分出另外一块内存区.首先刚开始J = 0 , 在J = J++的时候, 等号前面的那个J已经不是J声名时的那块内存区了,JVM为他重

新为他分配一块新的内存区.比如说,int j = 0 时,j的内存地址为00xx01,值为0。那么经过第一循环的以后前面那个J内存地址为00xx02,值为0,而后面那个J(内存地址00xx01)则会进行++操作,此时他的值为1,不过他已经不能影响到前面J的值了,此时J的内存地址就已经是等号前面的那个J的内存地址了(00xx02),再进行第二循环的时候,j的内存地址是:00xx02,值是0,至于00xx01那块内存区域,因为已经没有人再使用,所以将会在下一次垃圾回收的时候被GC回收,此时他(内存地址为00xx02的J)变成后面的那个j,前面那个J 则又会重新分得一块新的内存区域00xx03,值仍然是0,而00xx02则又会被丢弃然后被GC回收,依此类推,直至最后打印时J仍然为0,但他的内存地址已经不是最开初的00xx01了,换句话说,他已经不是当初的那个J了。

分享到:
评论
2 楼 ljf_home 2014-07-24  
有点意思
1 楼 echo1953 2013-04-14  
            public static void main(String[] args) {
                            int j = 0;
                            for(int i = 0; i < 100 ; i ++){
                              j ++;
                            }
                            System.out.println(j);

                   }

这样输出就是100了,对比讲更有助于理解

相关推荐

    flex和java进行CRUD操作(转贴)

    本篇文章将围绕"Flex与Java进行CRUD操作"这一主题展开,详细介绍如何使用Flex作为前端,通过与Java后端交互来实现创建(Create)、读取(Retrieve)、更新(Update)和删除(Delete)数据的功能。 1. **Flex基础知识** ...

    android和java面试大全集

    史上最全的android和java面试文档集。包括有: java程序员面试宝典.txt Java面试宝典2011版-1C,Java基础部分.doc 三大框架面试题.zip 技术面试题.zip Android笔试题库 C语言终极面试宝典.doc Java笔试题目汇总.pdf ...

    java面试大全(中软国际的大公司)

    1. **基础概念**:Java的基础知识包括但不限于语法、面向对象编程(OOP)、异常处理、数据类型、类与对象、封装、继承和多态。文档"Java学习过程中应该深入理解的一些重点.doc"可能会涵盖这些内容。 2. **集合框架*...

    Java SafeEngine API接口说明

    Java SafeEngine API 函数定义了丰富的功能,包括基本项获取、密钥库、证书、私钥和公钥等。这些函数可以帮助开发者快速开发安全的数字证书应用程序。 基本项获取 * getCertificate():获取证书 * getPrivateKey()...

    java编程事项(转载收集整理版)

    学习Java首先要了解变量声明、数据类型(如int、String等)、运算符、控制结构(如if语句、for循环、while循环)以及方法定义。 2. **类与对象**:Java是基于类的,这意味着一切皆为对象。理解类的定义、构造函数、...

    易语言动网转贴.rar

    4. **数据交互**:易语言可以处理各种数据类型,并且具备数据库操作能力,方便与数据库进行交互,这在论坛转贴功能中非常重要,因为帖子数据通常存储在数据库中。 关于"动网转贴"的具体实现,可能涉及到以下知识点...

    Axis学习笔记(网页转贴)

    **Axis学习笔记(网页转贴)** Axis是一个开源的Java库,主要用于创建和使用Web服务。它是Apache软件基金会的一部分,广泛应用于开发基于SOAP(简单对象访问协议)的Web服务。本学习笔记将深入探讨Axis在Web服务开发...

    动网转贴.e.rar

    【标题】"动网转贴.e.rar"是一个压缩文件,很可能包含了有关动网论坛或社区的相关资源、数据或用户帖子的备份。动网是中国早期知名的网络论坛软件之一,提供了丰富的社区功能,允许用户发帖、回帖、互动等。这个...

    易语言源码动网转贴.rar

    易语言是一种基于中文编程的计算机...总的来说,易语言源码动网转贴不仅涵盖了网络编程、数据处理、用户交互等基础知识,还涉及到安全、性能优化等多个领域,对于学习和理解易语言及网络应用开发有着重要的实践价值。

    动网转贴.zip易语言项目例子源码下载

    总的来说,“动网转贴”项目实例是一个全面展示易语言应用的范例,涵盖了网络通信、数据处理和界面设计等多个关键领域,对于所有想要提升易语言编程技能的人来说,都是不容错过的宝贵资源。通过深入研究和实践,你将...

    BFC UBB转贴器

    由于现在流行的转贴工具都是基于浏览器的,转换速度比较慢,还得打开浏览器才能使用(同时受到浏览器版本限制)。 &lt;br&gt; 而这个小程序则完全不依赖于浏览器,以BFC采集器的UBB转换模块为基础,转换速度超快,...

    Html处理软件、转贴工具(源代码)

    去除Html中的干扰码等(样例中以轻之国度的干扰码为例) 配置文件语法: 方法类型(整数) 最大匹配长度(整数) 字符串1(删除开头) 字符串2(删除结尾) 方法类型: 1:删除单行 2:删除行与行之间的

    动易系统的论坛转贴工具

    《动易系统的论坛转贴工具详解与应用》 在互联网信息交流日益频繁的今天,论坛作为用户互动的重要平台,其内容分享与传播的作用不容忽视。动易系统的论坛转贴工具,便是为了解决用户在论坛间便捷分享内容而设计的一...

    电子政务-导电泡棉转贴装置.zip

    2. **导电泡棉的应用**:详细解释导电泡棉的物理特性,如导电性、弹性、耐用性等,以及在电子政务设备中的具体应用,如服务器机柜、数据处理中心等。 3. **转贴装置的设计原理**:可能包括转贴装置的设计理念,如何...

    东度极品论坛转贴工具

    东度极品论坛转贴工具东度极品论坛转贴工具

    史上最全的转贴代码

    1. **变量和数据类型**:JavaScript有七种数据类型,包括基础类型(Undefined、Null、Boolean、Number、String、Symbol、BigInt)和引用类型(Object)。理解这些类型及其特性是JavaScript编程的基础。 2. **控制...

Global site tag (gtag.js) - Google Analytics