关于Java的两个效率问题

across2011 2012-01-15 03:41:20
1:假定一个方法,其中用到一个基本类型的临时变量来用作状态判断和返回值;而这个方法在一个程序中会被大量调用,那么在这里是使用局部变量还是全局变量更为合适?
2:有如下两种处理方法,哪种在大中型项目中更为实用:
/**
* 方法说明: 将String中所有非数字去除后转换,若无数字则返回Long.MIN_VALUE
*/

public long fStrToLong(String s) {
long l = Long.MIN_VALUE;
s = getLsFromStr(s);
if (!"".equals(s))
try {
l = Long.parseLong(s);
} catch (NumberFormatException e) {
e.printStackTrace();
}
return l;
}

/**
* 方法说明:去除字符串中非数字部分<br>
*/
private String getLsFromStr(String str) {
//返回去除字符串中非数字部分后的字符串
}


/**
* 方法说明: 根据check(是否需要去除非数字)要求,将String转换为数字,若无数字则返回Long.MIN_VALUE
*/

public long fStrToLong(String s,boolean check) {
long l = Long.MIN_VALUE;
if(check) s = getLsFromStr(s);
if (!"".equals(s))
try {
l = Long.parseLong(s);
} catch (NumberFormatException e) {
e.printStackTrace();
}
return l;
/**
* 方法说明:去除字符串中非数字部分<br>
*/
private String getLsFromStr(String str) {
//返回去除字符串中非数字部分后的字符串
}

谢谢~
...全文
155 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
walking56489 2012-01-17
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 trocp 的回复:]

1/临时变量最好减小其作用域

2.最好两个方法都有,看需求,没有定论
[/Quote]

还有,要是需求没有太大的要求,这点忽略不计,没有必要为这点小事情折腾太多时间,能实现功能,能跑起来才是王道。
dntg007 2012-01-17
  • 打赏
  • 举报
回复
大中型项目指的是啥呀,大煎饼铺子,铁匠炉啥的?
beiouwolf 2012-01-17
  • 打赏
  • 举报
回复
创建对象的资源消耗可以小到忽略不计
反而算法上的优化才是对效率的考量
LZ本末倒置了
蔡鸟 2012-01-15
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 bill0605030109 的回复:]

引用 2 楼 across2011 的回复:

引用 1 楼 bill0605030109 的回复:
使用全局变量要考虑线程安全问题。。
是俺的话,就直接局部了。。
在单线程的程序中,这里的效率就是多次创建变量和全局变量闲置之间的区别了~这是让我最疑惑的了

那怕是普通的电脑,多创建几个变量也不会感觉到慢吧。。更何况是服务器。。
[/Quote]
给你一个98 server 转
oO临时工Oo 2012-01-15
  • 打赏
  • 举报
回复
1/临时变量最好减小其作用域

2.最好两个方法都有,看需求,没有定论
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 across2011 的回复:]

引用 1 楼 bill0605030109 的回复:
使用全局变量要考虑线程安全问题。。
是俺的话,就直接局部了。。
在单线程的程序中,这里的效率就是多次创建变量和全局变量闲置之间的区别了~这是让我最疑惑的了
[/Quote]
那怕是普通的电脑,多创建几个变量也不会感觉到慢吧。。更何况是服务器。。
across2011 2012-01-15
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 bill0605030109 的回复:]
使用全局变量要考虑线程安全问题。。
是俺的话,就直接局部了。。
[/Quote]在单线程的程序中,这里的效率就是多次创建变量和全局变量闲置之间的区别了~这是让我最疑惑的了
  • 打赏
  • 举报
回复
使用全局变量要考虑线程安全问题。。
是俺的话,就直接局部了。。

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧