在Java中,一个变量重新new,重新分配空间进行复用,和重新定义一个变量使用哪个好?

在Java中,一个变量重新new,重新分配空间进行复用,和重新定义一个变量使用哪个好?
例如:


// 方式一
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
sdf.parse(time);
sdf = new SimpleDateFormat("yyyy-MM-dd");
sdf.parse(time2);
// 方式二
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
sdf.parse(time);
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd");
sdf2.parse(time2);



哪一种方式比较好,求解答?

0

3个回答

方式一好些,因为每次new都会开辟一块内存,方式一共new了两次,sdf 原来是指向new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
在sdf = new SimpleDateFormat("yyyy-MM-dd");之后 ,sdf 就不在指向 new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");了,而是指向 new SimpleDateFormat("yyyy-MM-dd");所开辟的内存,那么new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");开辟的内存空间会被回收,因为没有引用指向它了

2

求采纳啊老铁。。。。需要点金币下载资料!!!!
补充:
// 方式二
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
sdf.parse(time);
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd");
sdf2.parse(time2);
sdf 一直指向 new SimpleDateFormat("yyyy-MM-dd HH:mm:ss") 所开辟的内存空间,比如 0xx1
sdf2 一直指向 new SimpleDateFormat("yyyy-MM-dd"); 所开辟的内存空间, 比如 0xx2
0xx1 和 0xx2 都不会被回收 ,如果这两个对象你是在方法里创建的,方法运行结束之后 这两块内存才会被回收,
求采纳求采纳求采纳求采纳求采纳求采纳求采纳求采纳求采纳求采纳求采纳

1

看上去两者并没有什么区别,其实有一个内存分配的问题,方式1,对于SimpleDateFormat的分配空间只分配了一个,方式二,分配了两个SimpleDateFormat,方式一节省个内存

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
new 和 变量的空间
栈 堆 package day3; import java.util.Scanner; public class Game { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); for(int i=1;i<=3;i++) { System.out.println("...
new一个结构体的变量的问题
struct varNodernrn MyVar* var;rn varNode * next;rn;rnvoid MyVarListContainer::catVarList(const MyVarList * const list)rn{rnconst varNode *helpNode = list->getListHead(); //获取链表头rnwhile(helpNode)rn {rn varNode* newNode = new varNode; //问题在这里?rn newNode->var=helpNode->var; rn appendVar(newNode); rn helpNode=helpNode->next;rn }rn}rn当程序执行完new这里的时候,helpNode 的值被改变了。调试了很久,没办法解决,也不真的为什么会这样。希望大家能帮帮忙。。可能哪里还有问题? rn
java 变量的变量使用
现在form中定义了5个变量名rnSting file0 = "";rnSting file1 = "";rnSting file2 = "";rnSting file3 = "";rnSting file4 = "";rnrn如何用循环进行分析处理rnrnfor (int i=0;i < 5;i++)rn out.print(file+i);rnrnrn谢谢rnrnrn
如何将java的一个string变量传给javascript中的一个变量!
我想将java中的一个变量sName传给javascript的变量name,不知道该怎么做?请各位xdjm帮忙!
怎样给一个空间关联一个变量
我想给一个radio button控件添加一个UINT类型的变量,但是类向导的选项中只有int类型;怎样实现控件和一个自定义的变量关联
Java 不允许在一个范围大的作用域下重新定义同名变量
Java中不允许在一个范围大的作用域下重新定义同名变量。 java设计者认为这样做会导致程序混乱。
一个变量使用的问题
我在a.cpp中定义了一个变量,比如cstring,而且在a的函数中进行了赋值rn那我如何在b.cpp中调用那个赋值之后的cstring呢?rn已经使用extern,但是调试时显示它在b里面值是空的,请指教如何正确使用
new了一个变量之后怎么释放它占用的空间?
Dim p As New Nodern那p怎么释放呢?谢谢~~
Java中变量的使用
1.java中变量的介绍 程序的基本功能是处理数据 程序用变量来接收并表示数据; 程序中必须先定义变量才能使用; 定义变量是指设定变量的数据类型和变量的名字,Java语言要求变量遵循先定义->再初始化->然后使用的规则。 变量的使用有一个作用域的问题,作用域是指它的存在范围,只有在这个范围内,程序代码才能访问它。 其次,作用域决定了变量的生命周期。变量的生命周期是指从一个变量被创建并分配内存空间开始,到这个变量被销毁并清除其所占用内存空间的过程。当一个变量被定义时,它的作用域就被
while中new变量或者声明变量
while(1)rn rn char * b = new char[10];rn memset(b,0,10);rn rn请问段代码的执行过程,会不会造成内存泄漏呢rn while(1)rn rn char b;rn rn如果换这种呢
java中变量 以及使用变量的原因
为什么使用变量: 变量的 使用方便程序员对数据进行操作
static的变量和每次都new的变量,哪个效率高?
两样咚咚,一个是远程服务,一个是客户端页面,客户端采用两种方法,不知道哪种好?rn(以下程序中所有的public之类的词都省略,呵呵)rnrnclass ManagerServ : MarshalByRefObjectrnrn...rnrn供远程调用的rnrn====方法1:每次都new=====rnclass ClientPagernrn void Serv1 ()rn rn MagegerServ serv = new MagagerServ();rn serv.Serv1();rn rn void Serv2 ()rn rn MagegerServ serv = new MagagerServ();rn serv.Serv2();rn rnrnrn====方法2:只用static=====rnclass ClientPagernrn static m_serv;rn ClientPage () m_serv = new ManagerServ(); rn void Serv1 ()rn rn m_serv.Serv1();rn rn void Serv2 ()rn rn m_serv.Serv2();rn rnrnrnrnrnrnrnrnrn
变量在宏中与一个立即数进行比较
rnint a=1;rn#if a==1rn#define str "hello"rn#elsern#define str "world"rn#endifrnrn在vs中时, 程序是做了else这里。rnrna==1是true的啊,为什么 会 走else那块的代码呢
vb中的一个变量
:我做了一个mdi 窗体,这里面有一个子窗体,我在这个子窗体中定义了一个窗体级变量。 rn:private i as intger rn:然后在一个事件中 rn:使i=2 rn:但是当我关闭这个窗口后,再打开这个窗口rn我发现i=2,而在这时,我还没有执行这个事件,为什么。
对java变量new了两次
例如: public class Test{ public static void main(String[] args){ A  a=new A(); System.out.println(a.hashCode()); a=new A(); System.out.println(a.hashCode()); } } 运行输出结果不一样 hashcode返回该对象的哈希码值
一个变量
有值rnrn[code=SQL]rndeclare @a nvarchar(10)rnset @a ='1001,1002'rnSELECT * FROM 人事表 where 工号 in(1001,1002)rn[/code]rnrn无值rnrn[code=SQL]rndeclare @a nvarchar(10)rnset @a ='1001,1002'rnSELECT * FROM 人事表 where 工号 in(@a)rn[/code]rnrn麻烦问下第2个怎么改?谢绝优化意见,仅为测试而已。
在java和c#中选择一个,哪个好?
如题,谢谢各位大哥。
如何把一个字符串当成一个变量名使用(变量的变量)
如:rnDim strArnstrA="test"rnCall strArnrn我如何把字符串strA的值当做另一个变量的名字或是一个过程名rn在PHP中是可以这做rn$strA="test";rn$$strA='B';rn上面的代码会产生一个变量名为test,值等于B的变量rnrn那ASP又如何做呢?
C中的重新分配空间函数.
#define SIZE 100rnint array* = (int *) malloc (SIZE * sizeof(int));rn//向array数组赋SIZE个值.rn........rn现在要扩展数组大小.想搞成两倍的SIZE.rn用: array * = (int *)relloc( array*, SIZE*2*sizeof(int));rn //不太记得这个函数原形了.好像是这样的吧?rnrn我的问题是:rnrelloc是先申请两倍SIZE大小的空间,然后让array指向这个空间,再把原来array指向空间的数据"复制"到这个重新分配的空间中来,最后释放掉那个最开始malloc来的空间的吗?因为不可能在原来的地址的最后再申请空间是吧.要全部重新分配才可以呀.那值是如何搞过来的呢?rn如果是这样,我觉得这个效率不是很低吗?毕竟复制这么多数据要的时间很多.
给一个变量分配空间怎么做呀?
比如我想给一个字符串变量分配20的空间,用什么函数?
java中如何在对一个变量进行监听
应用背景:现在要编一个通信客户端程序,其中在一个线程里进行网络输入流的监听,在收到我需要的消息后,我会对某个类中的一个全局变量进行置位;这个变量的值改变后,在另一个线程中要有响应。类似于给按钮绑定个监听器的效果。rnrn更具体的讲是这要的:比如客户端登陆的时候,收到登陆成功的消息话flag = 0, 收到登陆失败消息的话flag = -1。但登陆线程和监听线程是两个线程(考虑到扩展性,我想让监听线程与其它线程独立开来),我如何能让监听线程中收到消息,对全局变量进行置位,让登陆线程立刻就知道变量已经置位。rnrn我不知道在这种场合下怎样设计比较合适,求指教!代码和思路均可!
关于结构体变量为什么要使用new 增加空间的疑惑
#include #include         using namespace std; struct Student             //声明结构体类型Student { string name; int num; char sex; }; int main() { Student *p;            //定义指向结构体类型Student的数据的指针变量
如何判断一个变量包含一个变量中的数字
好久没碰A程序了,现需要弄个东西自己用rnrn怎么判断变量h包含s中的数字,比如h=235678,s=56,只要判断是否包含,不要判断具体数字
java声明一个变量后,NEW 实例两次,这个变量会在内存中分配几个内存空间?
rnpublic class Test rn public static void main(String[] args) rn Tv power=new Tv();rn System.out.println(power.hashCode());rn power=new Tv();rn System.out.println(power.hashCode());rn rnrnrnrnrnrn运行结果:rn1569228633rn778966024rn每次都不一样。
在sed使用变量的一个应用实例
背景说明 应用场景:将一个文件的指定行抽取出来,和另一个文件的指定行组成一个新文件,解决问题的关键是使用sed,将指定的行数设为变量进行抽取 具体代码 #!/bin/sh numnode=`cat nodeip.txt|wc -l` numpcapfile=`cat listpcapfile.txt|wc -l` #echo "The number of datanode is $n
一个全局结构体数组变量的使用
k.h中 rnstruct s rn rn char c1; rn char c2; rn rns *ss; rnk.cpp中 rnss=new s[10]; rnrn1、要在t.cpp中引用这个全局变量,extern该怎么写。 rnrn2、这个功能用类的静态变量怎么来完成呀? rn
多页面使用一个变量?
a页面 从页面中取得 变量 用户名:name1 密码 password rnb页面 request(name1),request(PASSWORD)进行sql查询没问题rnc页面 中有多个ftp连接,还用该用户名密码的变量写道 ftp的连接中,可行吗?rnrn如:西风没问题,但是rn -------rn写成:西风 不行!是不是写法不行?rn 西风 还是不行rn请指教。
关于java变量的一个疑问
这个函数为常见的去列表的函数:rn 如下,便是取1~50的对象rn public ArrayList getResList(long begin, long end, String orderby,rn String ordertype) rn ArrayList list = new ArrayList();rn ResBase res = null;rn ...rn while(rs.next()) rn res = new ResBase();rn res.setResid(i);rn res.setTitle("title");rn res.setDescribe("descripe");rn list.add(res);rn res=null;rn rn return list;rn rn疑问:list.add(res);这句吧对象加到列表中,因为res对象是在循环外定义的。我想,最后加到rn列表中的元素应该全部是rs结果集最后一条new出来的(每一个res都指向res的地址)。rn但是,我把列表中的值打印出来,却发现不是这样的?为什么?list.add动作难道做了拷贝操作吗?
java中变量使用规则
1.java中国的变量需要先声明再使用。 2.变量使用的同时可以进行初始化,同样可以先声明再赋值。 3.变量中每次只能赋一个值,但可以修改多次。 4.main方法中的变量必须先赋值,然后才能输出。 5.变量名不建议使用中文。
关与java变量的一个问题
请问师哥师姐:java变量类型分为基本变量类型,和引用,请问这里的"引用"到底是什么意思呢?
shell中一个变量使用的困惑
近日写一个脚本,总达不到预想的目的,逐步缩小问题范围,最后有如下测试:rnrn[root]# cat testrn#!/bin/shrncd /homernPWD=`pwd`rnecho "1: $PWD"rncd /varrnecho "2: $PWD"rncd /rnecho "3: $PWD"rn[root]# chmod +x testrn[root]# ./testrn1: /homern2: /varrn3: /rn[root]#rnrn按预想,1,2,3显示的都应该是/home,但是没有给$PWD赋值,而$PWD的值却在变化,就和执行pwd命令一样rnrn再测试:rn[root]# cat test_Arn#!/bin/shrncd /homerna=`pwd`rnecho "1: $a"rncd /varrnecho "2: $a"rncd /rnecho "3: $a"rn[root]# chmod +x test_Arn[root]# ./testrn1: /homern2: /homern3: /homern[root]#rnrn结果却正确了rnrn只换了个变量的名字,结果就完全不一样了,如果说PWD是保留字的话,应该提示错误才对rnrn请各位看看是怎么回事
怎样在一个字符串中使用字符串变量
在一文本文件中有一字符串如下所示rnmy name is aaarn其中aaa是一个string型变量,请问在这个语句在文本文件中如何写rn
在JAVA中如何取得一个变量的类型
public class Test15 { public static void main(String[] args) { int i=1; Integer i1 = 2; double d = 1.8; long l = 76; boolean b = false; System.out.p...
在JAVA中如何取得一个变量的类型?
希望可以通过变量知道它的类型,特别是基本数据类型变量的类型,不知道有没有办法?
在正则表达式中使用变量的一个问题
test.pl程序如下:rn#! perl/usr/bin -wrnuse strict;rnmy $line;rnmy $patten = "a\\b\\c\\";rnrnopen FN, "filelist.txt" || die "can not open: $!";rnwhile ( defined ( $line = ) ) rn chomp $line;rn if ( $line =~ /$patten/ ) rn print $line."\n";rn rnrnclose FN;rnrnfilelist.txt内容如下:rna\b\c\1.txtrna\b\c\2.txtrna\b\c\1.txtrnrn$line =~ /$patten/匹配不到,报错!感觉是$patten中带有“\\”引起的,有什么方法可以解决呢?rn
Java 一个变量连续new对象,旧的对象怎么销毁
只有一个变量,连续new几个对象后,旧的对象会自动销毁吗,怎么才能让它们被回收呢
哪个空间提供商好?
小弟准备在网上安个家。rn只是不知道哪个网络空间提供商提供的服务好?rn各位有什么意见吗?rn--当然要支持ASP或者JSP了。
**一个好幼稚的javascript变量加减的小东西**
我不知道为什么结果和想象中的不一样 - 先看一个简单代码 -再看一个简单代码 分析 -第一感觉 上下应该是一样的啊 -小写c的ASCII+1?但是小写c的ASCII码值是99; -那最后就只能是java的拼接了(经过将‘n-1’变成4,发现变成‘41项’) but 对比上下代码段 why? 于是我找“拼接”找到个东西
磁盘空间空间管理与空间重新分配
可以管理磁盘空间,的重新分配问题。即可以把D盘的空间的一部分给C盘而盘内的数据不受任何影响……
在JAVA中如何将一个网页文件读到一个String变量中?
我想在一个JAVA程序中取得远程的一个网页页面,并将它读入String类型变量中,请问该如何做?
相关热词 c#串口测试应用程序 c# 匹配 正则表达式 c#防止窗体重绘 c#读写txt文件 c#挖地雷源代码 c#弹框选项 c# 移除 队列 c# 密码写入配置文件 c# 获取可用内存大小 c# 嵌入excel编辑