JAVA基础面试题

1.列举JAVA中常用的6个包

      java.lang;java.uitl;java.io;java.sql;java.awt;java.net;java.swing

2.JDK那些类是不能继承地

     不能继承的是那些用final修饰的类。一般比较基本的类型或者防止扩展类无意间破坏原来方法的类型都应该是final修饰的。

3.String是最基本的数据类型吗

     基本数据类型有bety,int,long,short,char,double,boolean,float。所以String不是基本数据类型,它数据常见的引用类型

4.java对象初始化顺序

    分为两种:一种是本类初始化,一种是含有父类的初始化顺序

     本类初始化顺序:静态变量,静态初始化块,变量,初始化块,构造函数

      父类初始化顺序:父类静态变量,父类初始化块,子类静态变量,子类静态初始化,父类初始化块,父类构造函数,子类变量,子类初始化块,子类构造函数。

6.写出线程安全类,不安全类,支持排序的类名

    线程安全类:Vector,Hashtable,Stack

     线程不安全类:ArrayList,Linklist,HashSet,TreeSet,TreeSet,HashMap,TreeMap等

     支持排序的类有:HashSet,LinkedHashSet,TreeSet(Set接口下的实现都支持排序)等

7.哪几个方法可以实现线程

     (1)继承Thread,重写Thread类的run()方法

     (2)实现runnable接口并实现run()方法

    (3)实现Callable接口,并实现call()方法

8."=="和equals方法的区别

     ==操作符专门用来比较两个变量的值是否相等,也就是用于比较变量所对应的内存中所存储的数值是否相等,要比较两个基本类型的数据或者两个引用变量是否相等,只能用==操作符。

     equals方法用于比较两个独立对象的内容是否相等,就好比去比较两个人的长相是否相通,它比较的两个对象是独立的。

9.静态变量和实例变量的区别

      在语法上不同:静态变量前要加static关键字,而实例变量前则不加

      在程序运行时的区别:实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量。静态变量不属于某个实例对象,而是属于类,所以也称为类变量,

  只要程序加载类的字节码,不用创建任何实例对象,静态变量就会被分配空间,静态变量就可以被使用。总之,实例变量必须创建对象后才可以通过这个对象来使用,静态变量则可以直接使用类名来引用。

10.构造器的名字能不能和类的名字相同

   构造器的名称必须和类名相同

11.在一个主方法类中可不可以调用一个静态方法

   可以调用,因为Java的主方法(main)方法本身也是static类型方法,一个static类型方法,发起对另一个static方法的调用没有问题

12.一个类中可不可以有两个公共方法

   可以。java中对公共方法的个数没有限制,但对公共的类有约束,一个java源文件中只能定义一个public类型的类

13.GC是什么,为什么要使用它

   GC是垃圾回收的意思,内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致或系统的不稳定甚至崩溃,java提供的GC功能可以自动监测对象是否超过作用域,从而达到

    自动回收内存的目的,Java语言没有提供释放自己内存分配的显示操作。

14Java的异常有哪几种,有什么区别

   两大类,一般异常和运行时异常。一般异常,这些异常是在定义方法时声明抛出的,这些异常必需永try catch抛出,或者throws处理,如果不处理,程序将编译失败。如:IOEexxeption,SQLEx

  ception

   运行时异常是程序运行时可能报出的异常。可以用try catch抓取,也可以1不做任何处理。如:NullPoinException异常就是比较常见的运行时异常

15.Integer与int的区别

   int 是Java提供的8种原始数据类型之一,另外Java为每个原始数据类型提供了封装类,Integer是Java为int提供的封装类。int的默认值为0,而Integer的默认值为null,即Integer可以区分出未赋值

  和值为0的的区别,int则无法表达出来未赋值的情况。

16.Java Reflection是什么

   Java反射,Reflection是Java程序开发语言的特征之一,它允许运行中的Java程序对自身进行检查,或者说”自审“,并能直接操作程序的内部属性

17.写几个java.lang.Object类中的方法名称

   主要有equals(),toString(),getClass(),hashCode(),clone(),notify(),wait()方法

18.&和&&的区别

   &和&&都可以做逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为ture,否则,只要一方为false,则结果为false.

   &&还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式。

   &还可以用作位运算符,当&操作符两边的表达式不是boolean类型时,&表示按位与操作,我们通常使用OxOf来与一个整数进行&运算。

19.数组有没有length()这个方法,String有没有length()这个方法

   数组没有length()方法,但有length属性

   String有length()方法

20.面向对象的特征有哪些方面

     面向对象编程语言有封装,继承,多态等3个主要特征

原文地址:https://www.cnblogs.com/jiaoyixin/p/10908475.html