怎么可能,本来String就是采用的是"原始模式",所有对String的赋值都是一次性的,然后就不能再改变,作的任何更改实际上是从新创建了一个String对象,你怎么试验的?的确String在Java中相当特殊,你可以看<Java Pitfalls>和<Java与模式>,上面都有对String特殊性的介绍.比如:
String s1="a";
String s2="a";
你认为s1,s2是否是同一个对象,答案是Yes;但是其他类的就不是
那么
boolean f(String s1){
String s2="a";
if(s1==s2)return true;
return false;
}
那么调用f("a");返回什么呢?返回的是false;
这又和编译器对String对象的处理有关系.在RMI中的传引用与本地JVM不相同,本地是传地址,而远程是传的该对象的objID,这个ID是由RMI服务器在导出(explore)服务存根(Stub)时自动生成的,假如ID一样,那么就是同一个对象(远程),可以看看<Java分布试开发>(SUN核心丛书系列)这本书
String s1="a";
String s2="a";
你认为s1,s2是否是同一个对象,答案是Yes;但是其他类的就不是
那么
boolean f(String s1){
String s2="a";
if(s1==s2)return true;
return false;
}
那么调用f("a");返回什么呢?返回的是false;
这又和编译器对String对象的处理有关系.在RMI中的传引用与本地JVM不相同,本地是传地址,而远程是传的该对象的objID,这个ID是由RMI服务器在导出(explore)服务存根(Stub)时自动生成的,假如ID一样,那么就是同一个对象(远程),可以看看<Java分布试开发>(SUN核心丛书系列)这本书
解决方案 »
- jsp获取session时出错了 求大虾帮助!!
- eclipse里的一个web应用访问jsp文件时路径出错
- EE的源代码在哪里?
- div模拟window.showmodeldialog
- 在struts2中,如果只允许上传的文件为txt、doc类型,该如何设置~~~~~~?
- 求教:这是怎么回事啊-----警告:Iternal Error:File/WEB-INF/web.xml not found
- 怎样用java制作一个视频点播系统
- 用JDBC怎样向数据库中存入图片
- java.Connection如何实现事务嵌套?
- 使用ant编译项目,发布到tomcat,buildfile的问题?
- 初学者问:学了一段时间的J2SE,今天动手照着一个J2EE的例子编了个小程序,编译时说没有找到javax.ejb.*这个包,请问我是否还应在classpat
- ejb方面的理解有些不明白,希望帮忙!~
"在不同的虚拟机中传值,也就是复制.只传递对象的状态,不传递对象的代码."这也不太正确,这要看情况而定.
比如一个远程方法: public void getSome(ServerClass a)throws RemoteException;
这个方法要求客户传入ServerClass类型的参数,但是客户有如下类:
ClientClass extends ServerClass{}
那么ClientClass也是可以传到服务端的,但是现在服务端不知道ClientClass的代码,便不能反串行化,所以他要求客户将Clientclass传到服务端,但是在哪里找到该代码呢,所以就要求客户还要有一个地址指明,参数名称忘了,好久没用.反正原理就是这样.在我上面说的那本书上都有
String s1="a";
String s2="a";
你认为s1,s2是否是同一个对象,答案是Yes;但是其他类的就不是
String在jvm里面都要预编译的。
制定codebase就是要让客户知道stub类的地址啊
传递的是stub类的代码阿