地址http://bbs.csdn.net/topics/390356411?page=1#post-393564067
public static void ch1(int n){
n=100;
}
public static void ch2(int n){
n=200;
}
public static void ch3(int n){
n=300;
}
public static void main(String args[]) {
int n=10;
//new Hay().ch1(n);//1.如果把static删掉,输出100
ch1(n);//2.这样子输出10,为什么
ch2(n);
ch3(n);
System.out.println(n);
}
结果:main方法注释中的2种问题,我搞不懂啊
1.楼主要知道,ch1方法里的n,是属于ch1方法的局部变量,作用范围只是在ch1中而已,它怎么变化,都不会影响到main方法里的n。两个n是两回事。
2.//new Hay().ch1(n);//1.如果把static删掉,输出100Hay是类名?这句,输出是10
ch1(n);//2.这样子输出10,为什么
解释,n是简单类型,在这几个方法中都是值传递,传递中只是把n所指向的地址复制了一份给方法中的变量n,修改的是复制的地址,而不是main方法中n指向的地址
3.http://blog.csdn.net/nmyangym/article/details/8531053
转http://www.blogjava.net/Java-liyadong/archive/2011/10/09/360323.html
Java变量和作用域
1.变更的概念
变量就是系统为程序分配的一块内存单元,用来存储各种类型的数据。根据所存储的数据类型的不同,有各种不同类型的变量。变量名代表这块内存中的数据 。
2.java的变量类型
java编程基础-变量及变量的作用域
3.变量字节大小及有效取值范围
byte占用一个字节,数字大小为-27—27-1
short占用两个字节,数字大小为-215—215-1
int占用四个字节,数字大小为-231—231-1
long占用八个字节,数字大小为-263—263-1
float占用四个字节,数字大小为1.4E-45~3.4E+38 , -1.4E-45~-3.4E+38 。用二进制的指数形式表示一个浮点数的格式,如:101*22 , 101*2-3
double占用八个字节,数字大小为4.9E-324~1.7E+308, -4.9E-324~-1.7E+308 。
char占两个字节,数字大小为0—216-1,是unicode编码。字符的本来面目,我们为什么可以直接将一个数字赋给字符变量。
Boolean占一个字节,其取值只有两个,true和false。
4.基本数据类型之间的转换
自动类型转换(也叫隐式类型转换)
实现这种转换要满足两个条件,第一是两种类型彼此兼容,第二是目标类型的取值范围大于源类型。如,当byte型向int型转换时,由于int型取值范围大于byte型,就会发生自动转换。所有的数字类型,包括整型和浮点型彼此都可以进行这样的转换。如:
byte b=3;
int x=b;
强制类型转换(也叫显式类型转换)
当两种类型彼此不兼容,或目标类型取值范围小于源类型时,自动转换无法进行,这时就需要进行强制类型转换。强制类型转换的通用格式如下:
目标类型 变量=(目标类型)值,如:
byte a;
int b;
a=(byte)b;
表达式的数据类型自动提升
所有的byte型、short型和char的值将被提升到int型。
如果一个操作数是long型,计算结果就是long型;
如果一个操作数是float型,计算结果就是float型;
如果一个操作数是double型,计算结果就是double型。
5.变量的作用域
变量要先定义,后使用,但也不是在变量定义后的语句一直都能使用前面定义的变量。我们可以用大括号将多个语句包起来形成一个复合语句,变量只能在定义它的复合语句中使用。
public class TestScope
{
public static void main(String[] args)
{
int x = 12;
{
int q = 96; // x和q都可用
int x = 3;//错误的定义,Java中不允许有这种嵌套定义
System.out.println("x is "+x);
System.out.println("q is "+q);
}
q = x;
System.out.println("x is "+x);
}
}
6.局部变量的初始化
在一个函数或函数里而把代码块中定义的变量称为局部变量,局部变量在函数或代码块被执行时创建,在函数或代码块结束时被销毁。局部变量在进行取值操作前必须被初始化或进行过赋值操作,否则会出现编译错误!
分享到:
相关推荐
11.java参数传递.zip11.java参数传递.zip11.java参数传递.zip11.java参数传递.zip11.java参数传递.zip11.java参数传递.zip11.java参数传递.zip11.java参数传递.zip11.java参数传递.zip11.java参数传递.zip11.java...
13.java参数传递之引用传递.zip13.java参数传递之引用传递.zip13.java参数传递之引用传递.zip13.java参数传递之引用传递.zip13.java参数传递之引用传递.zip13.java参数传递之引用传递.zip13.java参数传递之引用传递....
58.java参数传递机制.zip58.java参数传递机制.zip58.java参数传递机制.zip58.java参数传递机制.zip58.java参数传递机制.zip58.java参数传递机制.zip58.java参数传递机制.zip58.java参数传递机制.zip58.java参数传递...
这里详细的说明了,java参数传递的过程,引用传递,值传递
关于Java参数传递的PPT,详细介绍参数传递的类型。彻底理解Java只有唯一传递方式——值传递。
java参数传递 java 参数
Java参数传递的经典教学PPT,引用类型,基础类型传递的区别,String和StringBuffer类型传递的区别。
传值还是传引用 详细讲解JAVA参数传递机制 一目了然
java的参数传递对比,体现了值传递和引用传递的区别,是我在java入门是写的学习demo
62.java引用类型的参数传递.zip62.java引用类型的参数传递.zip62.java引用类型的参数传递.zip62.java引用类型的参数传递.zip62.java引用类型的参数传递.zip62.java引用类型的参数传递.zip62.java引用类型的参数传递....
59.java基本类型的参数传递.zip59.java基本类型的参数传递.zip59.java基本类型的参数传递.zip59.java基本类型的参数传递.zip59.java基本类型的参数传递.zip59.java基本类型的参数传递.zip59.java基本类型的参数传递....
java参数的传递与返回值 江苏省无锡市
介绍java 方法的参数传递,本文是引用传递。
java传递参数的方法 很的东西 大家下载学习一下
Java的引用和函数参数传递Java的引用和函数参数传递Java的引用和函数参数传递Java的引用和函数参数传递
主要介绍了Java数组传递及可变参数操作,结合实例形式详细分析了java数组参数传递与可变参数相关使用技巧,需要的朋友可以参考下
Jni中C和Java的参数传递.doc
java 中函数的参数传递详细介绍 java 中函数的参数传递详细介绍
JNI中C和Java参数传递详细例子,各种数据类型,基本类型,数据,结构体,DEMO,非常适合初学者,一看就明,详细例子
java参数传递时到底是值传递还是引用传递分享.pdf