最近在做一个项目的性能优化,遇到好多以前没有关注过的性能问题,一头雾水,今天做个笔记,简单记录下JVM相关的参数设置。 一、JVM内存模型 Java源代码文件(.java后缀)会被Java编译器编译为字节码文件(.class后缀); 由JVM中的类加载器加载各个类的字节码文件,加载完毕之后,交由JV ...
分类:
编程语言 时间:
2016-11-05 02:27:30
阅读次数:
331
总结:本小节讲述了近似运算时间、增长数量级和成本模型的概念以及算法的分析方法。 重点: 1. Knuth的基本见地很简单--一个程序运行的总时间主要和两点有关: · 执行每条语句的耗时; · 执行每条语句的频率。 前者取决于计算机、Java编译器和操作系统,后者取决于程序本身和输入。 如果对于程序的 ...
分类:
编程语言 时间:
2016-11-04 01:22:38
阅读次数:
266
一、Java开发需要做的准备 Java程序的执行过程是首先由Java编译器将以.java为后缀的Java源文件编译成.class字节码文件。然后字节码文件便可以由JVM虚拟机进行加载并执行。 在初学Java的时候,由于我们的电脑默认上不带有JVM虚拟机和Java编译器,所以我们首先需要在电脑上安装内 ...
分类:
编程语言 时间:
2016-10-30 16:43:28
阅读次数:
216
在Java编译过程中会出现很多警告,有很多是安全的,但是每次编译有很多警告影响我们对error的过滤和修改,我们可以在代码中加上 @SuppressWarnings(“XXXX”) 来解决 @SuppressWarnings("deprecation")表示不去检测这个下面的方法是否被启用。 例如: ...
分类:
其他好文 时间:
2016-10-29 14:54:03
阅读次数:
277
作业一:请运行以下实例代码StringPool.java,查看其输出结果。如何解释这样的输出结果?从中你能总结出什么? 结论:在Java中,内容相同的字串常量(“Hello”)只保存一份以节约内存,所以s0,s1,s2实际上引用的是同一个对象。编译器在编译s2一句时,会去掉“+”号,直接把两个字串连 ...
分类:
编程语言 时间:
2016-10-29 01:52:39
阅读次数:
246
1.代码及运行结果 在Java中,内容相同的字串常量(“Hello”)只保存一份以节约内存,所以s0,s1,s2实际上引用的是同一个对象。 编译器在编译s2一句时,会去掉“+”号,直接把两个字串连接起来得一个字串(“Hello”)。这种优化工作由Java编译器自动完成。 当直接使用new关键字创建字 ...
分类:
编程语言 时间:
2016-10-27 21:02:24
阅读次数:
163
1 JDK的安装目录中:环境变量中增加JAVA_HOME变量:JDK安装目录;在path中添加JDK的bin目录 2 java执行的顺序是: 1 用java编译器javac XXX.java 来编译java文件,生成XXX.class文件,此为字节码文件,到java虚拟机运行 2 用java XXX ...
分类:
编程语言 时间:
2016-10-26 13:28:48
阅读次数:
161
这里非常粗略的写一下大致过程(如有错误的地方,请及时联系博主^_^) 1.java程序的编译 ①编译器将源文件(*.java)编译成字节码文件( *.class)。 java编译器会根据classpath路径找到对应的java文件(不存在,则报错),如果该类不依赖其他类,则直接将该类编译成.clas ...
分类:
编程语言 时间:
2016-10-26 00:49:47
阅读次数:
260
在多个java编译环境中,有时需要java 7,有时又需要java 8,怎么配置java 环境,可以快速自动切换呢?下面用mac演示在 /etc/bashrc 中配置的环境变量 配置完成后,在终端执行 jdk7,就可以马上将JAVA_HOME环境变量切到java 7,切java8用jdk8: ...
分类:
编程语言 时间:
2016-10-24 13:31:08
阅读次数:
263
类的构造方法是当创建对象时,对象自动调用的对对象进行初始化的方法。他没有返回值,而且构造方法名与类名是相同的。如果类中没有定义构造方法,Java编译器在编译时会自动给它提供一个没有参数的默认构造方法,但这个构造方法并不会对对象有所更改。然而当类中以后一个以上的构造函数之后,系统将不会再自动提供没有参 ...
分类:
其他好文 时间:
2016-10-21 13:48:23
阅读次数:
163