Java面试八股文-基础概念一

1.JVM、JRE、JDK之间的关系

JDK:Java Development Kit 的简称,Java 开发工具包,提供了 Java 的开发环境和运行环境。 JRE:Java Runtime Environment 的简称,Java 运行环境,为 Java 的运行提供了所需环境。 JVM:我们知道Java⼀次编写到处运⾏,可移植性好,保证这⼀点的就是java虚拟机JVM

三者的联系:

2.四大修饰符的区别

public: 一个Java源文件中的类,只能有一个使用public修饰,且Java源文件名必须与public修饰的类名保持一致,否则编译不通过。public⽤来修饰类中成员(变量和⽅法),被public所修饰的成员 可以在任何类中都能被访问到。

default: 默认的权限在同一个包下,通常是不使用任何修饰符时,就是默认default。必须保证在同一个包下。

private: 只能保证在当前类下访问。 protected: 受到该类所在的包所保护,被protected所修饰的成员会被位于同⼀package中的所有类访问到。同时,被protected所修饰的成员也能被该类的所有⼦类 继承下来。

具体区分见下表:

修饰符 当前类 相同包 子孙类(同一包) 子孙类(不同包) 其他包 public Y Y Y Y Y protected Y Y Y Y/N N default Y Y Y N N private Y Y N N N

3.static关键字

这就要提到new对象,只有new对象之后,数据存储空间才会被分配,⽅法才能供外界调 ⽤。但是当没有创建对象的时候也想要调⽤⽅法或者就是想为特定分配存储空间的时候,就 需要⽤static。所以有了static,成员变量或者⽅法就可以在没有所属类的时候被访问了。

1.修饰成员变量 静态属性
    
			    静态成员变量:
			
			    语法格式:
			
			    static 数据类型  变量名;
			
			    注意事项:
			
			    1.使用static修饰的变量叫静态变量
			
			    2.代码中对象还没有创建的时候,如果加载了类,static修饰的属性已经存在了,和对象没有关系。


    2.修饰成员方法 静态方法
				静态方法
				
				语法格式:
				
				public static 返回值 方法的名字 (参数列表) {}
				
				调用静态方法:
				
				类.方法名字();

    3.修饰代码块 静态代码块
    

    语法格式: 静态代码块

			    static {
			        语句体
			    }
			
			    只要这个类加载,那么静态代码块一定会执行
			
			    执行顺序: 静态代码块-》构造代码块-》构造方法

4.面向对象与面向过程的理解

⾯向过程的性能⽐较⾼,因为没有实例化等操作,开销⽐较⼩。 ⾯向对象因为有了封装继承多态的特性,可以设计出低耦合的系统,使得系统更灵活、容易 维护。

5.final在Java中的作用

final 修饰的类叫最终类,该类不能被继承。 final 修饰的方法不能被重写。 final 修饰的变量叫常量,常量必须初始化,初始化之后值就不能被修改。

6.Java中操作字符串都有哪些类?它们有什么区别?

操作字符串的类有:String、StringBuffer、StringBuilder。 String 和 StringBuffer、StringBuilder 的区别在于 : String 声明的是不可变的对象,每次操作都会生成新的 String 对象,然后将指针指向新的 String 对象 而 StringBuffer、StringBuilder 可以在原有对象的基础上进行操作,所以在经常改变字符串内容的情况下最好不要使用 String。 StringBuffer 和 StringBuilder 最大的区别在于: StringBuffer 是线程安全的,而 StringBuilder 是非线程安全的,但 StringBuilder 的性能却高于 StringBuffer,所以在单线程环境下推荐使用StringBuilder,多线程环境下推荐使用 StringBuffer。

如下表:

7.String类有哪些常用的方法?

经验分享 程序员 微信小程序 职场和发展