请问java里面为什么有时候声明对象的时候不用new??
ThreadcurrentThread=Thread.currentThread();currentThread.getName();声明了thread类没有用newth...
Thread currentThread = Thread.currentThread();
currentThread.getName();
声明了thread类 没有用new thread();那内存不就没有在堆里面分配内存传递过去了吗? 展开
currentThread.getName();
声明了thread类 没有用new thread();那内存不就没有在堆里面分配内存传递过去了吗? 展开
6个回答
展开全部
这个问题和java编程里用到的一些常用模式有关,有的时候你用new会出错,这主要是为了编程方便很安全两方面考虑。一般不用new的有两种最常用的模式,一是工厂模式,另一个是单例模式,工厂模式是通过工长类来得到一个实例,一般是AA aa=Fatory.getAA();这里就没用new。还有一种情况就是单例模式,这里主要是出于安全考虑了,在单例模式中,类的实例只允许有一个,并且有它自己自动提供这个实力。外部不能创建它的实例,因为它的构造函数是private的,所有使用new的时候会出错。当然它还要有一个静态的返回实例的方法。
展开全部
1,Thread currentThread = Thread.currentThread();
currentThread.getName();
与
2,new Thread();
作用是不同的;
1,是用来获得当前正在执行的线程对象的引用。这样用的是当前正在执行的线程对象,所以不用开辟新的内存。
2,是用来获得重新产生一个新的线程对象。
一个是获得已有的对象,一个是重新创建一个对象。
currentThread.getName();
与
2,new Thread();
作用是不同的;
1,是用来获得当前正在执行的线程对象的引用。这样用的是当前正在执行的线程对象,所以不用开辟新的内存。
2,是用来获得重新产生一个新的线程对象。
一个是获得已有的对象,一个是重新创建一个对象。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个问题我遇到过的。以前我开发项目的时候也用new的。可交任务的时候,公司就让我们把new的地方全改成
Thread currentThread = Thread.currentThread();
currentThread.getName();
你的这种形式了。这样做的唯一好处就是不用new开辟个新的内存,这样就不占内存了。程序的运行效率提高了。其实你用new和不用实现的功能是一样的。
Thread currentThread = Thread.currentThread();
currentThread.getName();
你的这种形式了。这样做的唯一好处就是不用new开辟个新的内存,这样就不占内存了。程序的运行效率提高了。其实你用new和不用实现的功能是一样的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
虽然是用的方法currentThread();
但是最后还是在currentThread(); 方法中new的对象
但是最后还是在currentThread(); 方法中new的对象
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
静态方法创建,原理没什么区别
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询