如何将一个java对象放入内存中一直使用呢? 并且不同的线程创建的该对象不同

 我来答
zja129haha
2012-05-09
知道答主
回答量:10
采纳率:0%
帮助的人:3.8万
展开全部
1.
java中除了int、float这种原始类型其他的都是类类型,都要new出来。
new一个对象就一直是在内存中了,new了后不要管释放,有垃圾回收。

比如A是一个类,
A a = new A();
那么a其实是一个引用,指向new出来的A对象。
如果再
b=a;
那么b和a都指向new出来的A对象。
如果上面的A a = new A();和b=a;是在一个函数中,那么函数调用完了,a和b就释放了,然后new出来的A对象没有被谁引用了,垃圾回收机制就会回收。

如果你想一直存在一个对象,简单。你创建一个类
public class Haha
{
public static A a = new A();
}
以后用Haha.a 就可以一直访问了。

2. 不同线程创建的对象,既然提到创建,也就是new,一定是2个对象。
追问
static,new的时候是同一个对象啊
追答
追问

static,new的时候是同一个对象啊

这个是这个类第一次被引用的时候才会new一次
百度网友03677c4
推荐于2017-10-23 · TA获得超过306个赞
知道小有建树答主
回答量:254
采纳率:0%
帮助的人:149万
展开全部
1楼基本正解,只是不同的线程创建的该对象不同? 既然都是该对象了,怎么会不同了。。。

public class A{
public static AA=new AA();
}
A.AA在内存中,可以一直使用。但是所有的线程用的都是同一个对象。
也就是说楼主所说的并且不存在。
更多追问追答
追问
那有什么办法,使不同线程创建不同的对象?
比如,A用户登录,创建User对象保存用户名字A,然后B用户登录,创建User对象保存名字B?
追答
public class User{
private String UserName="";
private String Password="";
public User(String UserName0,String Password0){
UserName=UserName0;
Password=Password0;
}
//省略get、set方法
}
A登陆时,User A=new User("A","******");

楼主是说的web开发吧?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qiufeng6407
2012-05-09 · TA获得超过149个赞
知道小有建树答主
回答量:175
采纳率:0%
帮助的人:132万
展开全部
用一个static的容器保存你创建的对象,便一直存在
追问
那另一个线程也创建该对象的话,能不覆盖吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-05-09
展开全部
对象序列化,即把对象以字节式存入文件中。用的时候再读出。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百里不是白里
2017-10-23 · TA获得超过507个赞
知道小有建树答主
回答量:608
采纳率:0%
帮助的人:156万
展开全部
写一个实体类,第一次调用就把对象放入实体类中,直到关闭程序才销毁对象。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式