龙哥带你玩转面试(1.0)

来源:互联网 发布:science online数据库 编辑:程序博客网 时间:2024/06/06 01:22

一、java基础

1、简述JDK和JRE的区别?

      jdk是java开发人员在开发过程中使用的软件开发包,他提供了java的开发环境和运行环境

      jre是Java Runtime Environment是指java的运行环境

     如果你只想跑java程序只要安装jre就可以了,如果从事开发就要安装jdk

2、简述path和classpath的区别?

     path表示的是系统变量,和java无关,里面存放的是各种可执行的应用程序的路径,Classpath是给java使用的,从字面上来理解的话,就是类的路径,主要是模仿path,将类文件的路径配置到Classpath中,实现在系统的任何位置,都可以对类文件进行编译和执行

3、java的关键字中有没有goto?

     Goto是java中的的保留字,不是关键字中的一员

4、"static"关键字是什么意思?java中是否可以覆盖(override)一个private或者是static的方法?

     “static”关键字表明一个成员变量或者是成员方法可以在没有属性的类实例变量的情况下被访问,其中java中的static方法不能被覆盖,因为方法覆盖是基于运动时动态绑定的,而static方法是编译时静态绑定的。static方法给类的任何实例都不相关,所以概念上不适用

5、java中的方法覆盖(Overriding)和方法重载(Overloading)是什么意思?

      java中的方法重载发生在同一个类里面的两个或者是多个方法的方法名相同但是参数不同的情况(参数不同包括参数的个数,)

      方法覆盖是说子类重新定义了父类的方法,方法覆盖必须有相同的方法名,参数列表和返回值类型,覆盖者可能不会限制他所覆盖的方法的访问

6、Overload和Override的区别?

      方法的重写(也就是复写)Overriding和重载(Overloading)是java多态的不同表现,重写Overriding是父类与子类之间多态类的一种表现,重载Overloading是一个类中多态性的一种表现,如果在子类中定义某一个方法与父类有相同的名称和参数,我们就说该方法就被重写了(Overriding),子类的对象使用这个方法,将调用子类中的定义,对他而言,父类中的定义就如同被屏蔽了。如果在一个类中定义了多个同名的方法,他们或者有不同的参数个数,或者有不同的参数类型,则就是被称为方法的重载Overloading(注意发生在同一个类中)

7、接口 和抽象类的区别是什么?

       java提供和支持创建抽象类和接口,他们的实现有共同点和不同点,不同点在于:

       1、接口中所有的方法隐含的都是抽象的。而抽象类可以同时包含抽象的和非抽象的方法

       2、类可以实现多个接口,但是只能继承一个抽象类

       3、类可以不实现抽象类和接口声明的所有的方法,当然在这种情况下,类也必须声明是抽象的

       4、抽象类可以在不提供接口的方法实现的情况下实现接口

       5、java接口中声明的变量默认都是final。而抽象类可以包含非final的变量

       6、java 接口中国的成员函数默认的是public,抽象类的成员函数可以是private,protected或者是public

       7、接口是绝对抽象的是不可以被实例化的。抽象类也是不可以被实例化的,但是如果他包含main方法的话是可以被调用的

       8、也可以参考jdk8中抽象类和接口的区别

8、接口是否可以继承接口?抽象类是否可以实现接口?抽象类是否可以继承实体类(concrete class)?

      接口可以继承接口、抽象类可以实现接口、抽象类是否可以继承实体类,前提就是实体类必须明确的构造函数。

9、java基本数据类型与引用数据 类型分别有哪些?

     java的基本数据类型有8个,整数型byte、short、int、long、char    浮点型:float  double 字符型 char  布尔型  Boolean

10、char型变量中能不能中贮存一个中文汉字?为什么?

       char型变量是用来存储Unicode编码的字符的,Unicode编码字符集只能包含了汉字,所以char变量中 当然是可以存储汉字的

11、简述&和&&的区别?

        &和&&都是可以作为逻辑与的运算符,表示逻辑与(and),当运算符两端的表达式的结果都是true的时候,整个运算结果才是true,否则,只要有一方为false,则结果就为false。其中&&还是 具有短路的功能,就是如果第一个表达式的为false的时候,则此时不再计算第二个表达式。其中&还可以作为位运算符

12、java中的垃圾回收有什么目的?什么时候进行垃圾回收?

        垃圾回收的目的是:识别并且丢弃应用不在使用的对象来 释放和重用资源

13、如果对象的引用被置为null,垃圾回收器是否会立即释放对象占用的内存?

       不会,在下一个垃圾回收周期中,这个对象将是可以被回收的

      

原创粉丝点击