|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
大型的应用一般不会用这些框架(因为性能考虑);开发人员根据需要选择用一些框架,也可以不选用框架;不用框架并不代表要自己写框架;修改框架的可能性更小。java跟C++分歧,java的办法参数都是传值,没有传援用。良多人都觉得是传援用,并且这类毛病的概念很广泛,明天在这里详细剖析一下。办法参数有基础范例,如int等,别的一品种型是OBJECT,对象。具体说一下办法参数是对象的,跟C++分歧的是,JAVA办法参数传对象,传的是对这个对象援用的一份拷贝,即地点值,跟本来的援用都是指向统一个对象。以是说,JAVA办法参数传的都是值。
程序一传的对象值是改动的。
publicclassTest
{
publicTest()
{
int[]count={5};
change(count);
System.out.println(count[0]);
}
publicvoidchange(int[]counts)
{
counts[0]=6;
System.out.println(counts[0]);
}
publicstaticvoidmain(String[]args)
{
Testt=newTest();
}
}
程序一中,输入了局都是6,change(count);把对象的一份援用拷贝传给change(),这个拷贝跟本来的援用都是指向统一个对象。以是改动援用拷贝的值,对象的值也随着改动。
程序2,传的对象值不改动
classFoo{
inti=0;
}
publicclassA{
publicstaticvoidmain(Stringargs[]){
Foof=newFoo();
add(f);
System.out.println(f.i);
}
publicstaticvoidadd(Foof){
f=newFoo();
f.i++;
}
}
输入了局是0
程序2中,也是传一份援用的拷贝,但在add()办法中,f=newFoo();NEW出了一个新的对象,以是援用的拷贝指向了一个新的OBJECT。本来的值仍是没有改动。
程序3String不改动,数组改动
publicclassExample{
Stringstr=newString("good");
char[]ch={a,b,c};
publicstaticvoidmain(Stringargs[]){
Exampleex=newExample();
ex.change(ex.str,ex.ch);
System.out.print(ex.str+"and");
Sytem.out.print(ex.ch);
}
publicvoidchange(Stringstr,charch[]){
str="testok";
ch[0]=g;
}
}
程序3输入的是goodandgbc.
String对照出格,是由于java在传string的时分把string当做基础范例来处置。以是值是稳定的。
用winrar打包j2ee的程序和用IDE打包应用程序是一样的。按照你的想法,你是不是也希望服务器都整合由一家公司提供呢? |
|