java面试题

来源:互联网 发布:手机淘宝旧版本5.9.2 编辑:程序博客网 时间:2024/05/29 13:21

一、谈谈final、finally、finaliza的区别。

      final---修饰符(关键字)

                 当一个变量被声明为final时,表示变量不可变,且必须在声明时给定初始值。

                 当一个方法被声明为final时,表示方法在子类中不可被重写。

                 当一个类被声明为final时,表示类不可被继承,因此一个类不能既被声明为abstract的,又被声明为final的。

      finally---异常处理语句块的一部分,表示总是执行

      finaliza---object类的一个方法,当一个对象被GC前会调用这个方法。可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。

 

二、静态内部类和内部类的不同。

      1.静态内部类可以有静态成员(方法,属性),而非静态内部类则不能有静态成员(方法,属性)。
      2.静态内部类只能够访问外部类的静态成员,而非静态内部类则可以访问外部类的所有成员(方法,属性)。
      3.实例化一个非静态的内部类的方法:
        a.先生成一个外部类对象实例
        b.通过外部类的对象实例生成内部类对象
      4.实例化一个静态内部类的方法:
        a.不依赖于外部类的实例,直接实例化内部类对象
        b.调用内部静态类的方法或静态变量,通过类名直接调用

 

三、HashMap和Hashtable的区别

      HashMap是Hashtable的轻量级实现(非线程安全的实现),它们都实现了Map接口,将唯一键映射到特定的值上。

      HashMap允许空(null)键值(key),Hashtable则不允许空的键值。

      由于HashMap是非同步的所以效率上高于Hashtable。当多个线程访问同一个hashMap时,需要自己实现外同步。

 

四、说出ArrayList,Vector,LinkedList的存储性能和特性

      ArrayList和Vector都是采用数组方式存储数据,此数组元素数大于实际存储的数据,以便增加和插入元素,都允许通过下标直接索引元素,但是插入数据要涉及到数组元素移动等内存操作,所以索引数据快、插入数据慢。

      Vector由于使用了同步,所以速度上比ArraryList要慢。

      LinkedList使用双向链表实现存储,按序号索引元素需要进行向前或向后遍历,但是插入数据时只需要记录本项的前后项即可,所以插入数据比较快。

 

五、Collection和Collections的区别

      Collection是集合类的上级接口,实现它的接口主要有Set和List。

      Collections是针对集合的一个帮助类,它提供了一系列的静态方法实现对集合的操作,比如:搜索、排序、线程安全化等。

 

六、什么是GC,为什么要GC?

      GC是垃圾收集器。内存处理是程序员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,java提供的GC功能可以自动监测对象是否不在有引用,从而达到自动回收内存的目的,java语言没有提供释放已分配内存的显式操作方法。

 

七、sleep()和wait() 有什么区别?

      1、sleep类是Thread的静态方法,wait是Object的方法。

      2、sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步控制块或者方法。

      3、wait只能在同步控制方法或者同步控制块里面使用,而sleep可以在任何地方使用。

      4、sleep必须捕获异常,而wait则不需要捕获异常。

 

八、java有没有goto?

      没有。

 

九、Overload和Override的区别。overload的方法是否可以改变返回值的类型?

      重写和重载是java多态性的不同表现。

      重写是子类与父类之间多态性的一种表现,重载是一个类中多态性的表现。如果在子类中定义某方法与其父类有相同的名称和参数,则改方法重写了父类的方法,子类的对象使用这个方法时将调用子类中的方法。如果一个类中定义了多个同名的方法,它们或有不同的参数个数或不同的参数类型,则称为重载。

      Overload的方法是可以改变返回值的类型

 

十、抽象类和接口的区别

      1、abstract class和interface所反映出的设计理念不同。abstract class表示的是“is a”关系,interface表示的是“like a”关系。

      2、abstract class在java语言中表示的是一种继承关系,一个类只能有一个父类。但一个类可以实现多个interface。

      3、在abstract class中可以有非abstract的成员变量和方法,而在interface中,只能够有static final的成员变量,和abstract的方法

      4、抽象类中可以有非抽象的方法,接口中不能有实现的方法,接口中的方法默认都是public,abstract类型的。

 

十一、面向对象的特征有哪些方面

       面向对象的三个基本特征是:封装、继承、多态。

       1、封装:封装是把数据和过程隐藏起来,对数据的访问只能通过已定义的界面。它隐藏了细节,使得代码模块化,使得数据的访问更加安全。

       2、继承:继承是指这样一种能力,它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。增加了代码的重用性。新类继承了原始类的特征。新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。

       3、多态:它是通过重写和重载实现的。多态性语言具有灵活、抽象、行为共享的优势,也很好的解决了同名函数问题。

 

十二、String是基本数据类型吗?

      java的基本数据类型包括:byte、char、short、int、long、double、float、boolean。

      String不是基本类型,它final类型的类,因此不可以继承和修改这个类。

 

十三、String和StringBuffer的区别

       它们都可以存储和操作字符串,既包含多个字符的字符数据。

       String类提供了数值不可改变的字符串,StringBuffer类提供的字符串是可以修改的,如果程序要对字符串进行频繁修改的话,使用StringBuffer会提高效率,如果要得到String的话,可通过StringBuffer的toString()方法

       

十四、同步和异步有何区别,分别在什么情况下使用。

       同步:如果数据在线程间共享。例如正在写的数据以后可能被另外一个线程读到,或者正在读的数据可能已经被另外一个线程写过了,那么这些数据就是共享数据,必须进行同步存取。

       异步:当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望让程序等待方法的返回时,就应该使用异步编程,在很多情况下采用异步途径往往更有效率。

 

十五、启动一个线程使用run()还是start()?

      start()

 

十六、数组有没有length()这个方法?String有没有length()这个方法?

      数组只有length属性。String有length()这个方法

 

十七、说出你知道的线程同步的方法

       wait():使一个线程处于等待状态,并且释放所持有的对象的lock。

       notify():唤醒一个处于等待的线程,注意的是在调用此方法的时候,并不能确切的唤醒某一个等待状态的线程,而是由JVM确定唤醒哪个线程,而且不是按优先级。

       allnotify():唤醒所有初入等待状态的线程,注意并不是给所有唤醒线程一个对象的锁,而是让它们竞争。

       synchronized:修饰语句块和方法。

       sleep():使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此方法要捕捉InterruptedException异常。

 

十八、描述一下JVM加载class文件的原理机制

      JVM中类的装载时由ClassLoader和它的子类实现的,Java ClassLoader 是一个重要的Java运行时系统组件。它负责在运行时查找和装入类文件的类。
 

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 日服的火焰纹章闪退怎么办 冒险岛没潜能的怎么办 冒险岛法师运气不够怎么办 cad文件打开老是闪退白屏怎么办 上古卷轴5坏档怎么办 冒险岛2 65级后怎么办 第二次起诉离婚对方不同意怎么办 起诉离婚对方不同意离婚怎么办 我12爸妈离婚该怎么办 苹果迅雷下载的链接打不开怎么办 苹果上装的迅雷打不开怎么办 mp4进水水干了后打不开怎么办 迅雷闪退ios10.3怎么办 用辣椒辣到眼睛怎么办 辣椒辣到眼皮了怎么办 眼被辣椒辣了怎么办 老公欠银行的钱怎么办 离婚老公欠的钱怎么办 欠了几十万债怎么办 执行死刑时已怀孕怎么办 执行死刑世已经怀孕怎么办 孩子被爸爸打该怎么办 二年级的孩子逃课怎么办 龙妈和雪诺怎么办 车本扣6分怎么办 超速50扣了12分怎么办 开车超速扣12分怎么办 超速一次记12分怎么办? 驾照超速扣12分怎么办 c牌一次扣12分怎么办 超速罚500扣12分怎么办 高速超速记3分怎么办 高速超速记12分怎么办 过江隧道关闭了怎么办 高速限速60超了怎么办 超速扣了12分怎么办 上海 12分扣完了怎么办 狗抓伤只淌白沫怎么办 刑事案件法院迟迟不判决怎么办 法院判决书下来了没钱赔偿怎么办 被起诉开庭不去怎么办