JAVA面试——语法基础篇

1 变量及其作用范围?

答:JAVA变量可以分为静态变量、成员变量和局部变量3种。静态变量是指在类中被static修饰的变量,它的生存周期由类决定。成员变量则是指在类中没有用static修饰的变量,它的生存周期由对象决定。局部变量则是指定义在方法中的变量、参数或者代码块里定义的变量,它的生存周期由大括号{}决定。

2 JAVA变量分为哪两种大的数据类型?

答:分为基本数据类型和引用数据类型。它们最大的区别就是,基本数据类型存放的是数据的值,而引用数据类型存放的则是数据的引用地址。

3 JAVA包含哪些基本数据类型及其包装类

答:包含8种基本数据类型,分别是:byte、short、int、long、float、double、boolean、char,它们相对应的包装类分别是:Byte、Short、Integer、Long、Float、Double、Boolean、Character。

4 如何理解JAVA中的装箱和拆箱?

答:JAVA中的装箱和拆箱指的是基本数据类型和对应的包装类的相互转换,为开发者提供了很大的方便。其实也可以不使用装箱或者拆箱,开发人员可以自己进行手动转换。如果是自动转换,则这个转换过程发生在代码编译阶段。

5 JAVA的引用和C++中的指针有什么区别?

答:JAVA的引用和C++的指针都是指向一个内存地址的,都是想通过引用或者指针来完成对内存数据的操作和使用。主要区别是:1,类型不同。JAVA引用的值是一个封装了的内存地址,可以转换成字符串查看,而指针是一个装地址的变量,是int类型的。2,所占的内存不同。引用声明时没有实体,不占空间,指针声明后如果用到了才会赋值占用空间,如果用不到则不会分配内存。3,初始值不同。引用的初始值是null,而指针的初始值是int类型的,是不稳定的。4,引用不可以用来计算,指针可以计算。5,引用可以被程序控制,指针不容易被程序控制。6,引用不会引起内存泄漏,而指针有可能造成内存泄漏。总之,JAVA的引用更加安全和方便一些,但是不如指针灵活,引用也算是对指针的一种包装和改进。

6 简述JAVA中的main()方法?

答:main()方式是JAVA程序的执行入口,它是一个定义在类中的、公开的、静态的、无返回值的、参数为一个字符串数组的方法,它的参数args和执行参数一一对应。

7 JAVA中的equal和“==”有什么区别?

答:equal和“==”都是表示相等的意思,但是它们相等的含义却是有所区别。“==”用在基本数据类型中的时候,通过比较基本数据的实际值来判断是否相等;而用在引用数据类型中的时候,通过比较引用数据的内存地址是否一样来判断是否为同一个引用对象。equal方法是java.lang.Object中的方法,也就是说所有的JAVA类都可以拥有这个方法。它可以被重写覆盖,通过自定义的方法来判断两个对象是否相等。对于字符串而言,equal方法用来比较两个字符串是否完全相等。

8 类和对象有什么区别?

答:JAVA中的类是通过class关键字进行定义的,它代表了一种抽象的集合,它的里面可以定义各种属性和方法,它们代表了每个类实例特有的数据和动作。JAVA虚拟机只对类加载一次,对它的静态成员也是只加载一次。而对象指的是某一个特定抽象的实例,它属于某一种类,也就是说对象是通过类创建的。简而言之,类是一种抽象,而对象是对类的实现。

9 JAVA中如何通过继承来重用代码?

答:JAVA采用的单继承制,使用extend关键字,一个子类只能继承一个父类。通过继承,子类就拥有了父类除了私有成员以外的所有成员,从而达到代码重用的目的。在继承过程中,也可以通过方法的覆盖来重写父类的方法,使得子类可以拥有独特的方法实现。

10 简述JAVA中静态成员的特点?

答:类的静态成员是用static修饰的成员,主要包括静态成员变量、静态方法和静态代码块,具有以下特点:1,在类进行加载的时候就进行创建和初始化或者说执行代码。2,它们对于一个类来说,只有一份。3,类的所有实例都可以访问到它们。

11 简述接口和抽象类的区别?

答:抽象类是一种功能不全的类,接口只是一个抽象方法的声明和静态的不能被修改的数据的集合。从某种意义上说,接口是一种特殊形式的抽象类,在JAVA中抽象类表示一种继承关系,一个类只能继承一个抽象类,而一个类可以实现多个接口。

12 包应该如何被创建和使用?

答:包是JAVA程序中关于命名空间的一种手段,它可以有效的解决类重名的问题。当一个类需要定义在某个包下面时,需要用package关键字进行定义;当需要使用其他包下面定义的类时,需要使用import关键字进行导入。

13 说明private、protected、public、default的区别?

答:它们都是访问控制符,具体区别如下:public:可以被所有其他类访问;private:只能被自身访问或修改;protected:自身、子类以及同一个包中的其他类访问;default:默认的,同一个包的类可以访问,声明时没有加修饰符,认为是friendly。

你可能感兴趣的:(JAVA面试——语法基础篇)