Java 基础知识
重载和重写的区别
重载: 发生在同一个类中,方法名必须相同,参数类型不同、个数不同、顺序不同,方法返回值和访问修饰符可以不同,发生在编译时。
重写: 发生在父子类中,方法名、参数列表必须相同,返回值范围小于等于父类,抛出的异常范围小于等于父类,访问修饰符范围大于等于父类;如果父类方法访问修饰符为private 则子类就不能重写该方法。
java编译与解释共存
每一种平台的解释器是不同的,但是实现的虚拟机是相同的。
Java源程序(.java)经过编译器编译后变成字节码(.class),字节码由虚
拟机解释执行(字节码仅面向虚拟机),虚拟机将每一条要执行的字节码送给解释器,解释器将其翻译成特定机器上的机器码,然后在特定的机器上运行,这就是上面提到的Java的特点的编译与解释并存的解释。
Java源代码---->编译器---->jvm可执行的Java字节码(即虚拟指令)---->jvm---->jvm中解释器-----> 机器可执行的二进制机器码---->程序运行
Java和C++的区别
都是面向对象的语言,都支持封装、继承和多态
Java不提供指针来直接访问内存,程序内存更加安全
Java的类是单继承的,C++支持多重继承;虽然Java的类不可以多继承,但是接口可以多继承。
Java有自动内存管理机制,不需要程序员手动释放无用内存
Java基本数据类型
switch
在 Java 5 以前,switch可作用于 byte、short、char、int;
从 Java 5 开始,Java 中引入了枚举类型,可作用于 enum 类型;
从 Java 7 开始,还可以是字符串(String);
但是长整型(long)在目前所有的版本中都是不可以的
用最有效率的方法计算 2 乘以 8
2 << 3(左移 3 位相当于乘以 2 的 3 次方,右移 3 位相当于除以 2 的 3 次 方)。
round()
Math.round(11.5)=12
Math.round(-11.5)=-11。
四舍五入的原理是在参数上加0.5 然后进行下取整。