Java i++与++i困惑 [问题点数:20分,结帖人thinkpadshi]

一键查看最优答案

确认一键查看最优答案?
本功能为VIP专享,开通VIP获取答案速率将提升10倍哦!
Bbs1
本版专家分:0
结帖率 100%
Bbs8
本版专家分:35896
Bbs1
本版专家分:0
Bbs1
本版专家分:65
Bbs9
本版专家分:86748
版主
Blank
GitHub 绑定GitHub第三方账户获取
Blank
进士 2013年 总版技术专家分年内排行榜第六
Blank
银牌 2013年3月 总版技术专家分月排行榜第二
Blank
红花 2014年2月 Java大版内专家分月排行榜第一
2013年8月 Java大版内专家分月排行榜第一
2013年5月 Java大版内专家分月排行榜第一
2013年4月 Java大版内专家分月排行榜第一
2013年3月 Java大版内专家分月排行榜第一
2013年2月 Java大版内专家分月排行榜第一
Bbs7
本版专家分:11942
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Bbs2
本版专家分:131
Bbs1
本版专家分:3
Bbs1
本版专家分:38
Bbs1
本版专家分:66
Bbs4
本版专家分:1053
Bbs4
本版专家分:1275
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Bbs1
本版专家分:65
Bbs1
本版专家分:0
Bbs4
本版专家分:1053
Bbs4
本版专家分:1053
Bbs3
本版专家分:970
Bbs3
本版专家分:970
Java中i++与++i的区别,如何分清i++与++i

书上对 i ++ 和 ++ i 的解释如下: int i = 3,a = 0 ; i ++ : 先赋值再运算;例如:a = i ++; 先赋值 a = i ,再运算 i = i + 1 ;所以输出结果为 a ==3; ++ i : 先运算再赋值;例如:a = i ++; 先运算 i = i + 1 ,再 赋值 a = i ;所以输出结果为 a ==4; 懂了吗?我想大部分人会跟我一样...

i++和++i的区别

写在前面 记得一次写题时将++i写成了i++,怎么也调试不对QAQ,事后也不明白,现在水发一篇总结( ̄y▽, ̄)╭ 一、赋值顺序 i++在运行时是这样执行的:先赋值,再自加 用代码表示为 a = i++; ------------> a = i; i = i + 1; ++i在运行时是这样执行的:先自加,再赋值 用代码表示为: a = ++i ...

java中i++与++i的区别

直接给大家看代码就明白了。package cong.test; /** * ++i与i++的区别 * @author cong * */ public class jiajia { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method s

java++i和 i++的区别

i=1 a=i++; 运算是先赋值i给a ,a=i; 然后再让a+1; a=++i; 运算是先让i+1 等于2 然后让a=2;

i++和++i有区别吗?

在循环中,for (int i = 0; i < 5; i++) i++和++i有区别吗?

Java 中 i=i++; 结果

<em>Java</em> 中运行以下代码 : int i = 0; i++; System.out.println(&quot;i的值是 : &quot; + i); 根据我们通常所知道的后自增先使用后增加的道理 , i++ 在使用后i自身会增加一个数值 , 初始值为 0 时 , 自增后就是 1 , 那么输出的结果应该是1 , 但实际上这题的结果却是 0 : i的值是 : 1 这是因为 JVM 在处理 i = i++; 时 , ...

关于i++在JAVA底层怎么运行的 始终想不通 求详解

int x = 10; x = x++; System.out.println(x); 这是测试代码 始终认为输出应该是11 找到资料 可是想不通 http://www.bitscn.com/plus

从面试题i = i++; 了解java内存模型

先问大家一个问题: int i = 0; i = i ++; System.out.print(i);// 结果为 0 int i = 0; int j = i ++; System.out.print(j);// 结果为 0 System.out.print(i);// 结果为 1首先该代码在C/C++平台运行 结果是1 因为C/C++所有操作都

从字节码角度分析java中的i++与++i

int j=0; for(int i=0;i&amp;lt;100;i++) j=j++; System.out.println(j); 如果你运行一下上面的程序,就会发现它打印的结果居然是0,但是如果把j=j++换成j++的话就会打印100.这是为什么呢? 如果你稍微有一点经验就会知道i++与++i的区别: i++是在所有其他操作完成之后,自身加1。 ++i是在自身加1之后,再去完...

Java中i+=i-=i*=i的运行结果是什么?

i*(2-i) 要搞清楚运算的方法和顺序 i += x ; ( x为 i-=i*=i ) 即i = i + x i -= y ; ( y 为 i*=i) 即 x = i -y i*=i 即 i = ii 即 y = ii 所以有 i = i + i - ii 即 i = i(2-i);

java 中i = i++ 之后 i 的值为什么是 i?

public class Inc { public static void main(String[] args) { Inc inc = new Inc(); int i = 0; inc.fermin(i); i= i++; System.out.println(i); } v...

java基础面试题之:i++与++i的区别

源代码 int i = 0; i = i++; System.out.println(i); int j=5; j=++j; System.out.println(j); 反编译: i++内存表现: Code: 0: iconst_0 1: istore_1 2: i...

i++和++i的真正区别详解

在解释这两个运算之前,先引入局部变量表和操作数栈。 i++的通俗的解释即是先赋值再自增,其实这里赋值的值是从操作数栈取的值,也就是说先将i的值压入栈中, 而自增是局部变量表的值自增。 而++i则相反,是先自增后赋值,就是局部变量表的自增,然后把局部变量表的值压入栈中。 现在我们用一道经典题来从底层原理解释这两个运算操作 public static void mian(string[] ar...

java i=i+2与i+=2的区别

import java.util.*; public class lianxi { public static void main(String[] args) { int N=3; int[][] a = new int[N][N]; int i=0; //行 int j=N/2; //列 a[i][j]=1; for(int n=2;n=N)//两边越界,//行和列都越界 { i=i+2; j--; } else if(i=N) //列越界 { j=0; } else if(a[i][j]!=0) //有冲突 { i=i+2; j--; } a[i][j]=n; } //输出 for(i=0;i=N){ i+=2; j--; } else if(i=N){ j=0; } else if(a[i][j]!=0){ i+=2; i--; } a[i][j]=n; } for(i=0;i); } System.out.println(); } } } 结果是: 7 1 5 3 4 6 0 8 9

java基础复习三:i++与++i以及表达式

虽然知道++i一个是先计算在赋值,i++是先赋值再计算,但是有时候还是会搞不清楚,复习一下。不涉及表达式时测试代码:public static void main (String[] args) { int i = 1; int k = 1; System.out.println(++i); System.out.println(k++)

for循环里i++和++i的区别

i++是在使用当前值之后再+1,所以需要一个临时的变量来转存。而++i则是在直接+1,省去了对内存的操作的环节,相对而言能够提高性能. Ref: https://www.cnblogs.com/Paul-Yellow/p/10900475.html https://www.jianshu.com/p/dd35ffcf6c08 ...

java里i++和i=i+1是一样的吗

面试的时候被问到i++和i=i+1是一样的吗,当时答是一样的,考官不置可否。请知道的帮忙解释一下 谢谢.

Java基础面试题i = i++ 执行原理

直接来代码吧:   public static void main(String[] args) { int i = 10; i = i++; // 输出结果为: i = 10 System.out.println(&quot;i = &quot; + i); /* i = i++;这条语句相当于以下三条语句: 1) int temp = i; 先把i变...

jvm是如何执行i = i++ + ++i的,你知道吗?

结果是多少? public static void main(String[] args) {int i = 0;i = i++ + ++i;System.out.println(i);}//结果输出 2为什么是2?一个.java文件首先要被编译成.class文件jvm才能够运行,而jvm是根据java代码生成的字节码来确认他要如何运行程序的。说的再通俗一点就是,jvm看不懂java代码,他能看...

java中的i++与++i问题 详细,看完你就明白了

i++ 与 ++i i++:先参与运算,再自加1; ++i:先自加1,再参与运算; 看似简单的两句话,其实实际情况有点复杂,让我们看看下面例子: int i = 1; i = i++; //运行结果:i = 1; 对于上述例子相信网上搜一搜可以看到很多答案,但对于刚入门的小白来说可能有点看不懂,接下来我就用比较容易理解的话解释:关于 i = i++,首先 i 的值 1 会先压一个叫本地方法栈的地...

java中i=i++问题

class Hello{ public static void main(String[] args){ int i = 0; i = i++; } } 这段代码中最终i得值为0,并没有发生变化,通过javap获取其关键部分JVM汇编代码如下: 0: iconst_0 把0压入操作数栈 1: istore_1 弹出操作数栈栈顶元素...

java中i++ 与 i=i++的区别

记得大学刚开始学C语言时,老师就说:自增有两种形式,分别是i++与++i,i++表示的是先赋值后加1,++i是先加1后赋值。

java ++i、i++、i++ + ++i、i++ + i++原理

先上代码: public static void main(String args[]) { int A = 1; int B = 10; int C = 100; int D = 1000; System.out.println(A++); System.out.println(++B); ...

java 的 i++ 和 ++i 的区别

为什么80%的码农都做不了架构师?&gt;&gt;&gt; ...

(Java学习笔记)i++不是原子性操作

public class CasStudy01 { private static int count = 0; public static void main(String[] args) { Runnable runnable = new Runnable() { @Override public void run...

【100%解决】JAVA新人面试杀手i++和++i的区别、原理分析

JAVA新人面试杀手i++和++i的区别。

Java i++原理及i=i++的问题说明

学习过一门计算机语言的人一定知道j=i++的运算结果,整个表达式的值为i,而i的值变为i+1;那么i=i++又是一个什么情况呢?下面分别用java和 c 两种语言来做个测试:   JAVA:   public class test   {   public static void main(String args[])   {   inti,j;   i=0;   for(j=0;

java里面for循环中i++与++i的区别

平时在使用for循环时,都是这样写的:for(int i=0; i<10; ++i),用的 ++i。for循环中 i++ 和 ++i 有什么区别呢?

Java a=a+b 和a+=b 一样吗

初次看到,肯定会疑问,难道另有玄机?! 下面开始谜底揭晓: 如果两个变量数据类型一样时,        没有区别 a=a+b, a+=b 如果两个数据类型不一样呢? 我们发现 ,&quot;类型不匹配,int 不能转换成byte&quot;, 当然,我们也可强转,将已经转换成int类型的a+4强制转换为byte类型,这样也是可以的。但是这种转换可能会导致溢出或者精度的下降,如果容忍可能出现的误差,可以...

对于i++和++i的深入理解

在学完jvm的一些知识后,发现有些令人云山雾罩的问题,逐渐变得条理清晰。首先,在这里保证,看完以下解释,让你彻底明白i++和++i的原理,而不是停留在先赋值后运算的浅层次的理解。因为涉及底层,有些东西可能晦涩难懂,但难能可贵。但柳岸花明又一村,相信你可以。加油。 一、相关知识 以下介绍的知识是理解的必备装备,在打“boss”前最后还是捡一些武器。 虚拟机栈:java虚拟机运行时数据区的一部分,...

Java中i++与++i区别

i++与++i都是<em>Java</em>中的算数运算符,表示自增(操作数的值增加1) i++:先进行表达式运算(例如:赋值),再自增 ++i:先自增,再进行表达式运算(例如:赋值) 先写个测试方法吧 答案是m为0,n为5,控制台输出如图: 小白本人的理解如下图文字描述:   ...

Java中i++,++i 和i= i+ 1的区别

<em>Java</em>中i++,++i都表示 i = i+1 i++是先是使用 i的原值,然后再原值的基础上加1. ++i是先在原值的基础上加1,然后在使用i的值。 直接看一个示例: public class Test1 { public static void main(String [] args){ int i = 0,j; j = i++; //i++ 先使用i的值,

浅谈java之++i和i++区别

浅谈java之++i和i++区别                   今天简单谈谈关于java的一个误区,相信很多刚开始学习java的朋友都会遇到这个问题,虽然问题很简单,但是经常容易搞混,说说java的i++和++i的区别。 先看一下代码: public class test { public static void main(String[] args) { int i = 0;

java i++ 和 ++i 深度解析

i++ 和 ++i 都能实现+1, 顺序不同public class TestPlus { public static void main(String[] args) { int i = 0; System.out.println(i++); int j = 0; System.out.println(++j); S

java i+=j 与 i = i+j 区别

发现一个现象 定义两个变量 int i = 0; Long j = 1l; 接下来 i = i+j ; 会报错 但是  i += j ; 不会报错。

【搞定Java基础】之 i++ 和 ++i 详解

目  录: 一、i++ 和 ++i 的基本概念 二、i++ 和 ++i 的实现原理 三、i++ 和 ++i 在使用时的一些坑 3.1、i = i++ 导致的结果“异常” 3.2、多线程并发引发的混乱 一、i++ 和 ++i 的基本概念 在几乎所有的命令式编程语言中,必然都会有 i++ 和 ++i 这种语法。有些语言中 i++ 和 ++i 既可以作为左值又可以作为右值,笔者专门测试了一...

i++与++i

int i = 3 ; a = i++; /** * a = 3 */ int i = 3; a = ++i; /** * a = 4 */ i++ 先赋值再运算,即先 a = i,后 i = i+1; ++i 先运算再赋值,即先 i = i+1,后 a = i。 ...

++i和i++仅仅是先加1和后加1的区别吗?

关于前置++与后置++的差别,这似乎再熟悉不过了。前置++ 是先将变量的值加1,然后使用加1后的值参与运算。而后置++ 是先使用该值参与运算,然后再将该值加1。没错,关于...

Java里关于i++和++i到底有什么区别,我不是太明白,求解?

<em>Java</em>里关于i++和++i到底有什么区别????不明白,有例子举的最好了!!!

java 加和加等于的区别是什么

大家都知道字符串频繁的相加是很消耗内存的,今天我没事干做了个试验,发现使用+号并不会影响内存,而使用+=会很消耗内存。 然后查了下jdk1.6的api,说明如下: <em>Java</em> 语言提供对字符串串联符号(

java i++和++i的区别

//i++和++i是有区别的, //i++和++i都代表着i=i+1; //i++是在一个先使用原值,然后加1,即先使用i的值,后让i+1. //++i则是先加1后使用,即先让i+1后再使用i的新值. class ijiajia { public static void main(String[] args) { System.out.println("Hello World!");

Java中i++与++i的区别(效率分析)

自增运算符是困扰 C 语言与 <em>Java</em> 语言初学者的一大难点,在我最初学习 C 语言时,一直无法理解 i++ 与 ++i 的区别。几年的语言学习,特别是对 <em>Java</em> 语言的学习,对一些基本知识点有了更深入的理解,现在我来谈谈自己对 i++ 与 ++i 的区别与联系。

java中的i++ 和 ++i 以及 for循环

今天在看java的i++  和++i 的区别,感觉自己还是会绕。正好整理下。 i++:先赋值,后计算; ++i;先计算,后赋值。 看下面代码:public class Text { public static void main(String[] args) { int i = 1; int j = 1; int k = 1; i++; System.out.print

i++与++i的区别是???

请大哥,大姐,帮帮忙!谢谢!

i++和++i的真正区别

记得刚开始学编程的适合是从c语言开始的,还是看的谭浩强的那本书,上面对介绍i++和++i的区别如下: i++是先赋值,然后再自增;++i是先自增,后赋值。 用代码表示就是: 若 a = i++; 则等价于 a=i;i=i+1; 而 a = ++; 则等价于 i=i+1;a=i; 那么事实真是这样么,只是曾经我深信不疑,但是直到我看到下面这段代码:@Test public void test(

java中i++和++i的区别

int i=0; int j=i++;运算过后,j=0;表明i++是指先把i赋值给j然后再自身加1;int i=0; int z=++i;运算过后,z=1;表明++i是指先自身加1后赋值给z;总之记住++号在后面的意思是先赋值然后自身加1;++在前面的是先自身加1后赋值;...

java i++和++i区别。

代码示例public static void main(String[] args) {        int i = 0,j = 0;        int n =0 , m = 0;        j = i++;        n = ++m;        System.out.println(&quot;i++的值为:&quot;+ j);        System.out.println(&quot;++i的值为...

int i=0, i=i++ 和i++ 区别

int i=1; i=i++; System.out .print(i); 输出1 a=i++在我的理解是这样的,它先给i赋一个临时变量比如a,即a=i=1, 然后运算 i=i++, 在最后运算的时候 i 的值使用的是被赋值的临时变量a的值,并非变量本身 即 先运算在赋值 int a=i; i=i+1; i=a, return i; 可以看出i=a=1 ...

为什非要在for循环外面++i,for循环里面直接i=i+a不行吗?半天没想明白

import java.util.Scanner; /** * * @author Administrator */ public class Main { /** * @param args the command line arguments */ public static int f(String s1,String s2){ int a = s1.length(); int b = s2.length(); int i = 0,sum = 0; while( i +Main.f(s1, s2)); } }

java i=++i 问题

int i=0; i=i++; 结果i是多少? 这是一个经常被提及的问题,答案一直五花八门。 具体测试一下以说明问题: 代码1: publicclassTest{ publicstaticvoidmain(String[]args){ inti=0; i=i++; ...

java中的 i++ 与 C中的 i++ 的区别

C语言中: ++ 是一元运算符:+ 与 = 都是二元运算符 对于一元操作符来说,其返回值为:i++为i的值,++i是i加一后的值 i++ 操作意味着 在二元操作符对应的指令生成之后再生成一个自增指令(即:在 “+” 和 “=” 运算都结束后,才自增)。 ++i 操作意味着 在二元操作符对应的指令生成之前生成一个自增指令(即:在 “+” 和 “=” 运算执行前,就已经自增了)。

Java i=i++;i = ?

int i=0;       i=i++;       结果i是多少?       这是一个经常被提及的问题,答案一直五花八门。       具体测试一下以说明问题:       代码1: public class Test{     public static void main(String[] args){          int i=0;

Java进阶--Java中 i++完全解析

在讲 i++与++i之前先看两个在笔试面试中经常遇到的题目: 题目1//代码1 int x=2; int b=(x++)*3; System.out.println(b);/* 输出结果为:6 */题目2//代码1 int i=0; for(int j=0;j<100;j++)

java中i++和++i

这几天抽着一些时间,把<em>Java</em>的class文件结构研究了一下,再后来就想起了这个令人厌烦的问题,想从字节码指令的角度看看,java到底是怎么处理这个的 先看一段java代码 package bishi; public class PlusPlusTest { public static void main(String[] args) { int i = 1; i = i++

Java 中的 i = i++ 问题

<em>Java</em> 中的 i = i++ 问题   int i = 0; i = i++; System.out.println(i); // 0 问最后的输出结果是什么。我这两天才开始看 <em>Java</em>,第一眼就认为肯定是输出 1 ,但如果结果真的这么直观就不会出成笔试题了。实际运行一下,结果居然是输出 0。 如果把 i = i++ 换成 i = ++i 或者干脆换成 i++。输出结果就是 1 ...

Java I/O工作机制

深入理解<em>Java</em> 字节I/O,字符I/O,字节流于字符流的区别,阻塞I/O的缺点,非阻塞I/O(NIO)工作机制

JAVA编程——简单本地缓存的实现

一、本地缓存存在的意义: 1、在系统中,有些数据,数据量小,但是访问十分频繁(例如国家标准行政区域数据),针对这种场景,需要将数据搞到应用的本地缓存中,以提升系统的访问效率,减少 无谓的数据库访问(数据库访问占用数据库连接,同时网络消耗比较大),但是有一点需要注意,就是缓存的占用空间以及缓存的失效策略。 在<em>Java</em> web 项目中对频繁读取且相对稳定的数据一般都是用了缓存,这样可以极大地减少

Java——I/O相关练习代码

File文件的相关练习 文件操作的三种方式 文件的相关方法练习 文件创建删除操作 文件练习 FileReader读取文件 读取文件逐行读取 InputStreamReader字符输出流 换行输出 BufferedWriter FileOutputStream BufferedOutputStream DataOutputStream PrintStream File文件的相关练习文件操作的三种方式:

Java—I/O

<em>Java</em>—IO 1. IO: java的IO是实现输入和输出的基础,可以方便地实现数据的输入和输出操作。在java中把不同的输入/输出源(键盘,文件,网络连接等)抽象的表述为 “流”(Stream)。通过流的形式允许java程序使用相同的方式来访问不同的输入/输出源。 2.IO分类: 1&amp;gt; 按流向分:输入流,输出流 输入流:只能从中读取数据,不能写入数据 输出流,只能向...

一、Java I/O是什么?

        我们既然要学习<em>Java</em> I/O那我们首先要知道<em>Java</em> I/O是什么?以及<em>Java</em> I/O在java开发中应用。今天我们主要就这两个大问题进行讲解,然后在接下来的课程中,不断深入的了解及学习<em>Java</em> I/O。        1.<em>Java</em> I/O是什么?        <em>Java</em>中I/O是以流为基础进行数据的输入输出的,所有数据被串行化(所谓串行化就是数据要按顺序进行输入输出)写入...

java i/o

File类 public File(String pathname) File类中主要的方法和常量 f.list() 返回该目录下的所有文件名 f.fIleList()返回该目录下所有文件的路径 显示该目录下所有的文件包括子目录 方法 import java.io.File; import java.io.IOException; public class demo1 { public s...

Java I/O

emmmm,这篇文章的题目可能有点大了,以后会不断完善更新。 基础I/O <em>Java</em>中和I/O相关的类都在java.io包里面(当然,还有java.nio),I/O的形式都是以流的形式进行的,大致的方法是读和写,对应的类(也是方向)是入和出,从入方向的流中读取数据时,其中所剩的数据越来越少,直至读完,所以一个流中只能进行一遍完整的读取过程。 最常用的就是字节流和字符串流。 字符串流 所有字符串流相关...

java 中a=a++ 的问题

java中 int a=3; a=a++输出a的值为3 而在C中执行同样的语句输出为4 java中 int a=3; a+=a++ 输出为6 C中输出为7 a+=++a java中输出7 C输出8 求

Java 趣事之 a=a++ 和 a=++a

如果问 a++ 和 ++a 的区别,估计很多都能回答上来。a++ 是先取 a 的值使用,再 a 自增加 1 。而 ++a 刚好相反,是先自增再赋值。这里有点编程基础都可以理解,不做过多解释,但是在 <em>Java</em> 里面有些事情不像表面那么简单的。 int a = 1; a = a++; System.out.println(a); 凭借自己所学,在不测试的情况之下,你能给出答案吗? 第一次看见...

java中 +=和+的区别

java中+=的意义包含两部分,一是&quot;+&quot;,就是通常所说的直接相加,二是改变结果的类型,将计算结果的类型转换为&quot;+=符号左边的类型。 比如: shrot s=1; s+=1这个语句其实就是s=(short)(s+1)...

java-操作符(++)

public class Main { public static void main(String[] args) { int a = 10; int b = a++; System.out.println(&quot;b = &quot; + b); a = 10; b = ++a; Sy...

Java基础系列之:一篇搞懂前++和后++的区别(上)

一 先看下面的一段代码 int a = 0,b = 1; a = b++; System.out.println(&amp;quot;a=&amp;quot; + a + &amp;quot; b=&amp;quot; + b); 结果 : a = 1 , b = 2; so easy是吧,那么下面的代码呢 int b = 1; b = b++; System.out.println(&amp;quot; b=&amp;quot; + b); 安照以前的想法,后++先赋值再运算。b赋..

jquery仿google自动提示下载

jquery+net仿google自动提示 相关下载链接:[url=//download.csdn.net/download/laiximing/2358763?utm_source=bbsseo]//download.csdn.net/download/laiximing/2358763?utm_source=bbsseo[/url]

跳舞的小人字体gabriel.ttf下载

跳舞的小人字体是一种很红看的英文字体,它的内容和名称一样 相关下载链接:[url=//download.csdn.net/download/kiwei365/4419524?utm_source=bbsseo]//download.csdn.net/download/kiwei365/4419524?utm_source=bbsseo[/url]

ActionScript 3.0 开发人员指南下载

ActionScript 3.0 开发人员指南 中文版 PDF 相关下载链接:[url=//download.csdn.net/download/yuenyanfj/5331370?utm_source=bbsseo]//download.csdn.net/download/yuenyanfj/5331370?utm_source=bbsseo[/url]

我们是很有底线的