重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
你这个问题太广泛,首先,要知道运行的瓶颈在哪里,一个系统,不仅仅是java,还包括数据库,缓存等,要看在哪里慢。就java本身来说,合理的代码架构很重要,其次就是服务器的性能。
番禺ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联建站的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:028-86922220(备注:SSL证书合作)期待与您的合作!
java是解释语言,一般来说解释语言的效率跟编译型语言效率无法相提并论(差距在几个数量级) 。 但是java有特殊的热点编译技术, 就是循环次数多的代码段会被进一步优化编译, 这使得java的性能有所提高,按sun的某些文档的说法,这个效率可能提高到跟C++相当的水平, 但是我是没见过效率能到这个程度, 基本上还是会慢不少
Java代码注释写的多,会影响到编译效率,但是不会影响到执行效率。
Java代码是先编译成字节码,然后被JVM解释执行的。
我做了个实验
TimeDemo 类
import java.util.ArrayList;
public class TimeDemo {
public static void main(String[] args) {
long start = System.currentTimeMillis();
ArrayListInteger list = new ArrayListInteger();
for (int i = 0; i 1000000; i++) {
list.add(i);
}
long end = System.currentTimeMillis();
System.out.println("本次执行耗费了"+(end-start)+"毫秒");
}
}
TimeDemo2
import java.util.ArrayList;
public class TimeDemo2 {
public static void main(String[] args) {
long start = System.currentTimeMillis();
ArrayListInteger list = new ArrayListInteger();
for (int i = 0; i 1000000; i++) {
list.add(i);
}
//用java.io生成了很多行的注释,
//注释
//注释
//注释
//注释
//注释
long end = System.currentTimeMillis();
System.out.println("本次执行耗费了"+(end-start)+"毫秒");
}
}
运行结果
当注释行数是1~1万行的时候. 能较快的编译
当注释行数达到1百万的时候,编译稍微慢一点
当注释行数达到1千万行的时候, CPU占用100%,卡了进1分钟也没有编译完成,只好强行关闭
结论:
简单明了的注释有助于程序猿对代码的读写
只有当注释行数极大的时候,才会严重的影响编译速度。 但不会影响执行速度
张小喜告别996 实现高效编程 减少开发压力 开启Java高效编程之门(完整版高清视频)百度网盘
链接:
提取码: aizj 复制这段内容后打开百度网盘手机App,操作更方便哦
若资源有问题欢迎追问~
因为PHP是解释执行(完全不编译),而JAVA是半编译(编译后代码非CPU执行执行),所以JAVA的效率要高。
PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。
Java是一种可以撰写跨平台应用程序的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
效率是一样的,虽然语句不一样,但是编译成class文件后,都是相同的JVM指令。
新建一个Java文件Test2.java,然后把它编译成Test2.class
public class Test2 {
public static boolean stringIsNull(String str) {
if (str == null)
return true;
return false;
}
public static boolean stringIsNull2(String str) {
if (str == null)
return true;
else
return false;
}
public static boolean stringIsNull3(String str) {
return str == null;
}
}
然后你可以通过JDK自带的javap命令查看JVM指令,三个方法的JVM指令是一样的
JAVA安装目录/bin/javap -c Test2
Compiled from "Test2.java"
public class Test2 extends java.lang.Object{
public Test2();
Code:
0: aload_0
1: invokespecial #1; //Method java/lang/Object."init":()V
4: return
public static boolean stringIsNull(java.lang.String);
Code:
0: aload_0
1: ifnonnull 6
4: iconst_1
5: ireturn
6: iconst_0
7: ireturn
public static boolean stringIsNull2(java.lang.String);
Code:
0: aload_0
1: ifnonnull 6
4: iconst_1
5: ireturn
6: iconst_0
7: ireturn
public static boolean stringIsNull3(java.lang.String);
Code:
0: aload_0
1: ifnonnull 8
4: iconst_1
5: goto 9
8: iconst_0
9: ireturn
}