1.int x x算是对象么?为什么?
2.为什么方法中的变量的赋值,static方法不能声明static变量;为什么?
3.String也是一个类为什么在传递String参数给方法的时候不改变实参的值;
4.用static { type 名=值} 和static tpye 名 = 值 有什么不同为什么;每题10分,如果没有全答出的,每题给最先给出满意答案的大虾;
如果有全部答出的,分数给第一个全部答出满意答案的大虾;
2.为什么方法中的变量的赋值,static方法不能声明static变量;为什么?
3.String也是一个类为什么在传递String参数给方法的时候不改变实参的值;
4.用static { type 名=值} 和static tpye 名 = 值 有什么不同为什么;每题10分,如果没有全答出的,每题给最先给出满意答案的大虾;
如果有全部答出的,分数给第一个全部答出满意答案的大虾;
2. 这个,可以的把
3. 不可变 模式 immatable
4. 没什么不一样,我觉得 一个 是static块赋值,一个是全局变量赋值,
静态方法的定义就是定义它在内存中存放的位置是全局变量区,所以它里面的变量等都在常量区了,无需在定义了。
String是一个不可修改它的值的类,跟其他的类不同,如果你想改变的话可用stringbuffer定义。
static{代码块} 跟static 类型名=值 基本上没什么区别,就是前面那种方法比较方便定义多个!
2.不可以,方法中定义的变量是局部变量,只能用final修饰。static修饰的是类变量,应该是全局的
3.传递String参数给方法,方法中改变的值是方法中局部变量指向的值发生了变化,外面String对象指向的值并没有发生变化。
4.不一样static { type 名=值}声明的局部变量,只在static块中有效,static tpye 名 = 值声明的是类变量
而static tpye 名 = 值 定义的变量的作用范围是整个类。
作用范围不一样。
2. 这个,可以的把
3. 不可变 模式 immatable
4. 没什么不一样,我觉得 一个 是static块赋值,一个是全局变量赋值
3在传递参数的时候 生成一一个参数的拷贝,不是原来参数的值
4用static { type 名=值}在类加载的时候就赋值了 比static tpye 名 = 值早,
3.String代表的是一个字符串,原生机制就是不允许改变它的值,你把它作为参数,传进去改变值就会显式或者隐式的调用new String();形参也就改变了原来的索引,形参不再指向原来的实参(也就是形参和实参不再指向同一块内存空间)
2,不清楚
3:因为string是一个字符串常量,一经申明就不能再改变,并且你说的传递,其实是一个复制的过程,再内存在中占用的是两个不同的地方···
4:不清楚
x不是对象,只能说是一个变量,若是对象,则应该具有java.lang.Object中所有方法,而x显然没有.2.为什么方法中的变量的赋值,static方法不能声明static变量;为什么?
无论是static方法还是不是static方法,都不能声明static变量.因为在<java虚拟机规范>中规定"如果一个域被声明为static,则无论最终创建了多少个事例,都确切地存在该域的一个实例".而方法中的参数,所传入的值是可变的.3.String也是一个类为什么在传递String参数给方法的时候不改变实参的值;
String比较特殊,即可放在堆中,也可放在栈中.而string作为一个参数时,是放在栈中的,是不能变的.
4.用static { type 名=值} 和static tpye 名 = 值 有什么不同为什么;
static { type 名=值} 中的"名"是局部变量,可以存在多份,同时不能通过类直接访问
static tpye 名 = 值中的"名"是全部变量,只存在一份,同时可以通过类直接访问