1.JDK 包含JRE,javac(编译器)和工具javadoc和jdk,是功能齐全的SDK。JRE是java是运行时环境,包括JVM,JAVA类库和一些基础组件,不能用于创建新程序。
2.字节码指java可以理解的代码,即扩展名为.class文件。java从源代码到运行过程:
.java->javac编译->.class->解释器->机器可理解的代码
3.openJDK完全开源,Oracle JDK更稳定,性能更好
4.字符型和字符串常量区别:
形式:字符常量是单引号引起的一个字符,字符串常量是双引号引起的 0 个或若干个字符。
含义:字符常量相当于一个整型值( ASCII 值),可以参加表达式运算; 字符串常量代表一个地址值(该字符串在内存中存放位置)。
占内存大小:字符常量只占 2 个字节; 字符串常量占若干个字节。
5.静态方法属于类,在类加载的时候会分配内存,而非静态成员属于实例对象,实例化之后才存在。所以非静态成员不能在静态方法里调用。
6.重写发生在运行期,重载发生在编译期。private final static不能重写,构造方法不能重写。如果方法的返回类型是 void 和基本数据类型,则返回值重写时不可修改。但是如果方法的返回值是引用类型,重写时是可以返回该引用类型的子类的。PS:编译期只会把 java源文件 编译成 .class文件。编译期内jvm内存没有任何分配,它的作用就是 编译 class文件。运行期: 包含类加载和执行。
7.可变长参数
调用方式时传入不定长度的参数
public static void method(String... args){
for (String s : args) {
System.out.println(s);
}
}
重载方式时会优先匹配固定参数的方法。Java 的可变参数编译后实际会被转换成一个数组。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)