Java八股(第一篇文章)
Java基础面试
说一下Java的特点
主要有以下的特点
平台无关性
面向对象
内存管理
Java为什么是跨平台的?
在不同平台上安装对应的JVM,就可以运行字节码文件,运行我们编写的Java程序
编译的结果不是生成机器码,而是生成字节码,字节码不能直接运行,必须通过JVM翻译成机器码才能运行。不同平台下编译生成的字节码是一样的,但是由JVM翻译成的机器码却不一样。
Java 中所有参数传递都是值传递
int四个字节,long八个
将字符串转换为整型int,可以使用Integer.parseInt()
那为什么还要保留int类型?
效率高,存储空间小
多态性可以分为编译时多态(重载)和运行时多态(重写)
普通类可以直接实例化对象,而抽象类不能被实例化,只能被继承
抽象类能加final修饰吗?
不能,Java中的抽象类是用来被继承的,而final修饰符用于禁止类被继承或方法被重写,因此,抽象类和final修饰符是互斥的,不能同时使用。
接口可以包含构造函数吗?
不可以,根本没法new,自然没有必要写构造函数
静态变量和静态方法
静态变量和静态方法是与类本身关联的,而不是与类的实例(对象)关联。它们在内存中只存在一份,可以被类的所有实例共享。
静态变量特点
共享性:所有该类的实例共享同一个静态变量。如果一个实例修改了静态变量的值,其他实例也会看到这个更改。
初始化:静态变量在类被加载时初始化,只会对其进行一次分配内存。
访问方式:静态变量可以直接通过类名访问,也可以通过实例访问,但推荐使用类名
