- 浏览: 149370 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
xfei6868:
fengyie007 写道xfei6868 写道请问你有没有结 ...
maven jetty7 插件设置 -
fengyie007:
xfei6868 写道请问你有没有结合 web.xml 配置 ...
maven jetty7 插件设置 -
xfei6868:
请问你有没有结合 web.xml 配置 和 spring结合 ...
maven jetty7 插件设置 -
nianzhi:
tomcat7.0之后这样配置就不行了。根本没有作用。
tomcat地址栏传中文 -
nianzhi:
...
tomcat地址栏传中文
所有字节码都是用sun虚拟机编译的.以下内容都是在网上查阅,加上一些自己的分析,如果有不对之处请大家指出来.
1,循环外内定义变量 和 循环内定义变量
下面是代码和字节码,通过比较可以知道,两种方法字节码基本上是相同的.两者性能基本上相等.
在实际使用时建议根据语义来决定,不需要在循环外部使用的就定义在循环内部,这样也可以减少变量冲突的可能.
代码:
public static void f1() { Object s; for (int i = 0; i < 10; i++) { s = new String("sss"); } } public static void f2() { for (int i = 0; i < 10; i++) { Object s = new String("sss"); } }
字节码:
public static void f1() { // 0 0:iconst_0 // 1 1:istore_1 // 2 2:goto 18 // 3 5:new #15 <Class String> // 4 8:dup // 5 9:ldc1 #17 <String "sss"> // 6 11:invokespecial #19 <Method void String(String)> // 7 14:astore_0 // 8 15:iinc 1 1 // 9 18:iload_1 // 10 19:bipush 10 // 11 21:icmplt 5 // 12 24:return } public static void f2() { // 0 0:iconst_0 // 1 1:istore_0 // 2 2:goto 18 // 3 5:new #15 <Class String> // 4 8:dup // 5 9:ldc1 #17 <String "sss"> // 6 11:invokespecial #19 <Method void String(String)> // 7 14:astore_1 // 8 15:iinc 0 1 // 9 18:iload_0 // 10 19:bipush 10 // 11 21:icmplt 5 // 12 24:return }
2, 字符串String相加 和 StringBuffer相加
String相加在虚拟机内部还是采用StringBuffer来实现的,但是字节码指令上相比直接采用StringBuffer来说增加了不少.
代码:
public void f1() { String a = ""; a += "a"; a += "b"; a += "c"; System.out.println(a); } public void f2() { StringBuffer ab = new StringBuffer(); ab.append("a"); ab.append("b"); ab.append("c"); System.out.println(ab); }
字节码:
public void f1() { // 0 0:ldc1 #15 <String ""> // 1 2:astore_1 // 2 3:new #17 <Class StringBuffer> // 3 6:dup // 4 7:aload_1 // 5 8:invokestatic #19 <Method String String.valueOf(Object)> // 6 11:invokespecial #25 <Method void StringBuffer(String)> // 7 14:ldc1 #28 <String "a"> // 8 16:invokevirtual #30 <Method StringBuffer StringBuffer.append(String)> // 9 19:invokevirtual #34 <Method String StringBuffer.toString()> // 10 22:astore_1 // 11 23:new #17 <Class StringBuffer> // 12 26:dup // 13 27:aload_1 // 14 28:invokestatic #19 <Method String String.valueOf(Object)> // 15 31:invokespecial #25 <Method void StringBuffer(String)> // 16 34:ldc1 #38 <String "b"> // 17 36:invokevirtual #30 <Method StringBuffer StringBuffer.append(String)> // 18 39:invokevirtual #34 <Method String StringBuffer.toString()> // 19 42:astore_1 // 20 43:new #17 <Class StringBuffer> // 21 46:dup // 22 47:aload_1 // 23 48:invokestatic #19 <Method String String.valueOf(Object)> // 24 51:invokespecial #25 <Method void StringBuffer(String)> // 25 54:ldc1 #40 <String "c"> // 26 56:invokevirtual #30 <Method StringBuffer StringBuffer.append(String)> // 27 59:invokevirtual #34 <Method String StringBuffer.toString()> // 28 62:astore_1 // 29 63:getstatic #42 <Field PrintStream System.out> // 30 66:aload_1 // 31 67:invokevirtual #48 <Method void PrintStream.println(String)> // 32 70:return } public void f2() { // 0 0:new #17 <Class StringBuffer> // 1 3:dup // 2 4:invokespecial #55 <Method void StringBuffer()> // 3 7:astore_1 // 4 8:aload_1 // 5 9:ldc1 #28 <String "a"> // 6 11:invokevirtual #30 <Method StringBuffer StringBuffer.append(String)> // 7 14:pop // 8 15:aload_1 // 9 16:ldc1 #38 <String "b"> // 10 18:invokevirtual #30 <Method StringBuffer StringBuffer.append(String)> // 11 21:pop // 12 22:aload_1 // 13 23:ldc1 #40 <String "c"> // 14 25:invokevirtual #30 <Method StringBuffer StringBuffer.append(String)> // 15 28:pop // 16 29:getstatic #42 <Field PrintStream System.out> // 17 32:aload_1 // 18 33:invokevirtual #56 <Method void PrintStream.println(Object)> // 19 36:return }
发表评论
-
jrebel 5.0.0 破解
2012-06-17 16:06 2147下载地址: http://download.csdn.net ... -
jetty服务器java.sql.SQLException: Already closed处理
2012-04-19 17:24 1964在jetty的数据源配置中添加如下配置 <Set n ... -
mvn install
2011-08-05 15:51 0mvn install:install-file -Dgrou ... -
weblogic中使用commons-lang包报java.lang.NoSuchMethodError解决办法
2010-08-31 17:01 5196在weblogic中发布的应用使用了commo ... -
java RSA密钥生成
2010-07-23 14:12 4863在网上找了下RSA的密钥的创建,结果全是用java序列化Pub ... -
maven jetty7 插件设置
2010-07-23 13:55 5177jetty-maven-plugin设置: <plug ... -
eclipse常用插件更新地址
2009-11-11 09:37 1742findbugs http://findbugs.cs.umd ... -
java class文件魔数与版本对应
2009-10-21 14:36 1916major minor Java platform vers ... -
maven配置文件
2009-10-18 23:43 1385完整的自定义目录结构的maven配置文件。 ... -
eclipse远程调试
2009-07-17 01:01 2235set JAVA_OPTS=-server -Xdebug - ... -
删除eclipse3.4中的P2更新管理器
2009-04-12 18:14 1736原文地址:Equinox p2 Removal ... -
jdk1.3中保存jpeg图片
2009-04-09 15:21 1233因为在jdk1.3中没有ImageIO类,只能使用下面的方法来 ... -
JSR大全
2009-04-01 13:32 20291 ,Real-time Specification for ... -
apache commons-lang-2.3 StringUtils.java 学习笔记
2009-04-01 13:17 0StringUtils中方法的操作对象是java.lang.S ... -
eclipse常用插件(Update sites)
2008-12-30 14:19 1540findbugs http://findbugs.cs.umd ... -
weblogic 9.2 发布EJB
2008-12-29 16:05 1548将EJB的jar包放到domain的autodeploy目录下 ... -
confluence2.x 破解
2008-12-26 16:06 1223首先去官方网站下载confluence-2.x的安装包。 然后 ... -
eclipse.ini内存设置各参数含义
2008-11-10 13:13 5302-vmargs -Xms128M -Xmx512M -XX:P ... -
Java性能优化技巧集锦
2008-09-07 03:51 793可供程序利用的资源(内存、CPU时间、网络带宽等)是有限的 ... -
jdbc性能优化
2008-09-07 03:35 1058jdbc程序的性能主要由两个因素决定,一是数据库本身的性质,另 ...
相关推荐
java 异常 问题收集 Exception
Java面试问题收集,Java面试问题收集,Java面试问题收集
java版msn Java源码 搜集的Java msn代码
java资料 java java收集资料01 javaEE java项目 JAVASE GUI SWING 多线程和播放器的制作
java资料 java java收集资料01 javaEE java项目 JAVASE GUI SWING
java的技术网站收集java的技术网站收集java的技术网站收集java的技术网站收集java的技术网站收集java的技术网站收集
24.java垃圾收集机制.zip24.java垃圾收集机制.zip24.java垃圾收集机制.zip24.java垃圾收集机制.zip24.java垃圾收集机制.zip24.java垃圾收集机制.zip24.java垃圾收集机制.zip24.java垃圾收集机制.zip24.java垃圾收集...
最近java收集。。。。。。。。。最近java收集。。。。。。。。。最近java收集。。。。。。。。。最近java收集。。。。。。。。。最近java收集。。。。。。。。。最近java收集。。。。。。。。。最近java收集。。。。...
这是从网上和自己的经验吧,我正在学习..大家一块交流
• 熟悉JVM内存区域,常用引用类型,垃圾回收机制、算法以及常见的GC垃圾收集器(Serial、ParNew、Parallel Scavenge、Serial Old、Parallel Old、CMS、G1) • 熟悉常用IO模型(BIO、NIO、AIO),熟悉JVM类加载过程与...
efk7.13搜集java日志—filebeat配置详解笔记总结
Java垃圾收集器使用小诀窍,告诉你如何写出高效的Java程序。
java面试问题小集 收集了一些面试题目
java收集相关资料,和大家分享.PDF的多
java 垃圾整理收集 1垃圾收集器如何做 2垃圾的基本要求
Java的垃圾收集器
垃圾收集器线程是一种低优先级的线程,在一个Java程序的生命周期中,它只有在内存空闲的时候才有机会运行。它有效地防止了内存渗漏体的出现,并极大可能地节省了宝贵的内存资源。但是,通过Java虚拟机来执行垃圾收集...
搜集过来的java面试会被闻到的问题,大家看看吧,面试的要注意咯,灵活运用啊
网页资料收集 JAVA与JAVASCRIPT通信乱码问题 java javascript jsp的url提交带中文参数时后台取到的是乱码问题的解决 网页资料收集 JAVA与JAVASCRIPT通信乱码问题 java javascript jsp的url提交带中文参数时后台取到...
Java常见问题.txt; Java常见问题集锦.txt; Java编程小技巧集锦.txt; J2ME学习系列之如何将J2ME与XML集成.txt; Java连接各种数据库的实例.txt; Java命令行简介.txt; Java应用技巧-Applet与Application合并.txt; JNI...