posts - 30,  comments - 28,  trackbacks - 0

我的评论

影响Java性能的一个重要原因--垃圾收集。
仅仅是原始类型的重复计算,确实无法比出快慢。
我的团队今年年初做了一个项目,就涉及到这个问题。32位JVM有效管理的Heap,最好不要超过1G。不然一次Full GC,真能把应用给阻塞住。
两年前写的东西,现在看来,太过于幼稚啦。
丑陋的实现。后台就是后台,前台就是前台。JavaScript+HTML+Ajax提交,想做成什么就做成什么。反正是提交一串数据,服务器返回一串数据,多么简单和清晰。Java也好,静态索引文件也好,PHP也好,ASP也好,CGI 也好...明白其中HTTP的原理,明白HTML的原理,这种小玩意儿信手拈来,有必要这样做么?
前台就是前台,后台就是后台,能解耦,尽量解耦
re: 继续巩固Java基础,一道综合题 murainwood 2006-09-20 21:08  
我的观点是可以反过来想。
下面是我写的代码
//:~To compare the reference of string
public class StringConstPool {

/**
* @param args
*/
public static void main(String[] args) {

String the1st="hello";

String the2ed="hello";

//the result is "the two string are Same"
//so i'm sure the the1st and the2ed refer the same address
System.out.println("The two strings are "+(the1st==the2ed?"Same":"Different"));

String the3ed=new String("hello");
//the result is different from upper
//so the the3ed refers another address,thought they have
System.out.println("The two strings are "+(the1st==the3ed?"Same":"Different"));

}

}

可以看到,变量the1st 和 the2ed 所指的地址是一样的。而the3ed则是另外的地址。
我认为的常量池的观点是正确的,String the2ed="hello"这语句甚至一个对象实例都没有创造!

这是JDK API中文版的说明:
String
public String(String original)初始化一个新创建的 String 对象,表示一个与该参数相同的字符序列;换句话说,新创建的字符串是该参数字符串的一个副本。由于 String 是不可变的,不必使用该构造方法,除非需要 original 的 显式副本。

很明白了吧?
re: 继续巩固Java基础,一道综合题 murainwood 2006-09-20 17:36  
"Hello"如果是第一次出现,会生成一个新的实例,然后放入常量Pool中。
调用了new 语句,总能新生成一个对象实例。
所以 String a="Hello"和 String a=new String("Hello")是不同的。而且后者被认为是"劣质代码"
而a+="World";这个你可以用javap -c 来看JVM汇编码。
String做所谓的"连接"时,总是通过临时变量 StringBuffer 或StringBuilder来实现的。(后者是JDK5.0中的新类,是一个多线程不安全的StringBuffer)
Java的速度快是相对的,不是绝对的。换而言之,Java的速度慢也是一样道理。效率~~
re: 有感于论坛上关于J#的讨论 murainwood 2006-08-01 06:00  
纠正一点,C#,作为.NET原生语言,是最好的。
Java上的Groovy,JPython,速度慢得可怜。
语言的速度,还是存在的。
以前想得太乐观
Java无法进行底层开发是因为其运行机制的缘故罢了,说“Java因为速度慢而无法进行底层开发”,这句话没有逻辑可言。不能因为Java无法开发操作系统而来说明Java的速度慢。
而且底层开发C用得更多,极少有操作系统用C++写的。



Java的就是以内存换速度的
现在的内存好像已经蛮便宜了吧?再者,我想现在你也不会用256M内存的机器来使用oracle10。
C语言是必不可少的(操作系统,游戏引擎),但是C++的地位却有些“尴尬”,不是么?STL库让曾经C++达到巅峰,然而巅峰之后?曾经有段时间我非常喜欢STL,然而STL的语法风格实在是欠缺优美
C++/CLI被标准委员会否决,实在太让人失望了。
@fjchenq
如果你了解C++的new 和 delete的底层机制,就会知道
他们就是调用malloc和free来实现的
C/C ++里面的内存分配和销毁,实质上全是malloc 和 free.
C++为了安全的考虑,“包装”了这两个函数。在STL则是更进一步“包装”
<2024年11月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

如果真的给你一片天,你敢不敢要?

常用链接

留言簿(3)

随笔分类

随笔档案

相册

搜索

  •  

最新评论

阅读排行榜

评论排行榜