在java 中定义三个int变量 分别是 a b c 而且值都等于3 那么a b c都指向同一个内

在java 中定义三个int变量 分别是 a b c 而且值都等于3 那么a b c都指向同一个内存地址吗?

不是,是三个逻辑意义上不同的地址。不同的变量,是互相独立的,与他们的值相不相同没有任何关系。就像,两个人,名字相同,但各是各。这应该是所有程序语言的基本规律。追问

那我问你java中==运算符比较的是什么? 比较的是内存地址 还是内存地址的值??

追答

==对于普通的非引用类型(基本类型)比较的是两个变量的值是否相同,比方说两张不同的纸,比较一下两张纸是不是一模一样(相对需求来说的相同与否)。比如说 int 变量 a的值是5,b的值也是5,那么比的是5==5,但a和b还是不同的变量,只是值(内存地址上的值)相同

追问

下面是一个网友给的答案!

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-11-27
int 是java的基本数据类型;这种类型的定义是通过诸如int a = 3;的形式来定义的。

如果int a =
3;这里的a是一个指向int类型的引用,指向3这个字面值。存在栈中,栈有一个很重要的特殊性,就是存在栈中的数据可以共享。
这里有

int a=3;
int b=3;
int c= 3;

编译器先处理int a =
3;首先它会在栈中创建一个变量为a的引用,然后查找有没有字面值为3的地址,如果没找到,就开辟一个存放3这个字面值的地址,然后将a指向3的地址。
接着处
理int b = 3;在创建完b这个引用变量后,由于在栈中已经有3这个字面值,便将b直接指向3的地址。这样,就出现了a与b同时均指向3的情况。
同理 int c = 3 也是这种情况。本回答被提问者采纳
第2个回答  2015-04-03
同一个地址。
Java中分为栈内存(存放局部变量,也就是你说的a、b、c)和堆内存(存放new出的对象、代码、static变量和常量池(你说的3就是常量)),也就是说常量3只在内存中存了一次。
第3个回答  2015-04-03
基本数据类型是直接存在栈里面的,对象是存在堆里面的,栈是具有共享特性的,所以3这个数字是公用的。追问

哦哦 那么abc都指向同一个地址 是对的吗。

第4个回答  2015-04-03
java基本类型 赋初值时指向堆中的常量内存 所以是同一地址

用java 从键盘输入3个整数,分别赋给整数变量a b c 然后将输入的整数按...
int b=s.nextInt();System.out.println("请输入c的值:");int c=s.nextInt();int x=0;if(a>b){ x=a;a=b;b=x;} if(a>c){ x=a;a=c;c=x;} if(b>c){ x=b;b=c;c=x;} System.out.println(a+","+b+","+c);...

三个整数变量a,b,c,求最大值和最小值的java编程
public class TestA {public static void main(String[] args){\/\/定义abc三个参数值int a=3;int b=32;int c=320;\/\/定义最大值int max=0;\/\/定义最小值int min=0;\/\/假如a>b 先设置a为最大值,b为最小值if(a>b){max=a;min=b;}else{\/\/否则先设置b为最大值,a为最小值max=b;m...

java中if嵌套问题 输入三个数a,b,c先确定a最小、把a与b,c各做一次比 ...
int min=minInt(a,b,c);System.out.println("a,b,b中的最小值min为:"+min);public int minInt(int x,int y,int z){ int minInt=x;\/\/假定X是最小的!if(y < minInt) \/\/ y与 minInt=y;if(z<minInt)minInt=z;return minInt;} 亲,我的回答你满意吗?如果满意就请右上角采纳,如...

编写程序,任意输入3个整数A、B、C,按由大到小的顺序把它们打印出来_百 ...
}void main(){ int a,b,c;scanf ("%d%d%d",&a,&b,&c);printf("%d\\n",max(a,b,c));}\/\/给你C的参考一下吧

JAVA 给定3个数a,b和c,输出最大的数
var c=prompt("输入第三个数")*1;if(a>b){ if(a>c){ alert(a);} } if(c>b){ if(c>a){ alert(c);} } if(b>a){ if(b>c){ alert(b);} } } \/\/--> <\/SCRIPT> <\/HEAD> <BODY> <H1 ALIGN=CENTER>打印最大的数字<\/H1> <P ALIGN=CENTER><INPUT TYPE=BUTTON NAME=...

Java定义三个整形变量a,b,c;其值由键盘输入,比较它们的值并打印输出最...
public static void main(String[] args) { Scanner scan = new Scanner(System.in); List<Integer> nums = new ArrayList<Integer>(); nums.add(scan.nextInt()); nums.add(scan.nextInt()); nums.add(scan.nextInt()); System.out.println(nums); Collections.sort(...

在java中怎么比较三个整数大小例如(a , b, c);并从小到大输出
用冒泡排序,对三个数字按照由小到大进行排序。以23、11、17为例,代码如下:import java.util.Scanner;public class woo { static int[] bubbleSort(int[] date) { boolean isSwap;for(int j = 1; j < date.length; j++) { isSwap = false;for(int i = 0; i < date.length - j;...

在java中怎么比较三个整数大小例如(a,b,c
public static void main(String[] args) { Scanner scanner = new Scanner(System.in);System.out.println("请依次输入3个数字");int a = scanner.nextInt();int b = scanner.nextInt();int c = scanner.nextInt();if( b > a){ int t = 0;t = a;a = b;b = t;} if( c >...

Java 由键盘输入三个整数分别存入变量num1、num2、num3,输出最大值
import java.util.Scanner;public class Compare { public static void main(String[] args) { \/\/ TODO Auto-generated method stub Scanner s = new Scanner(System.in); System.out.println("请输入第一个整数: "); int a = s.nextInt(); System.out.println("请输入第二个整数...

输3个整数,分别赋值给int变量a,b,c,再将输入的整数从小到大的放在变量...
import java.util.Scanner;public class TestForQ { public static void main(String[] args){ int a = 0;int b = 0;int c = 0;Scanner sc = new Scanner(System.in);a = sc.nextInt();b = sc.nextInt();c = sc.nextInt();if (a > b) { int temp = a;a = b;b = ...

相似回答