zoukankan      html  css  js  c++  java
  • Java常见面试题总结(二)

    一.数组的定义

      用来存储固定大小的同类型元素

    二.构造器

      用于创建对象并初始化对象属性的方法,叫“构造方法”,也叫“构造器”;构造器在类中定义

    三.冒泡算法

      冒泡排序的优点:每进行一趟排序,就会少比较一次,因为每进行一趟排序都会找出一个较大值。如上例:第一趟比较之后,排在最后的一个数一定是最大的一个数,第二趟排序的时候,只需要比较除了最后一个数以外的其他的数,同样也能找出一个最大的数排在参与第二趟比较的数后面,第三趟比较的时候,只需要比较除了最后两个数以外的其他的数,以此类推……也就是说,没进行一趟比较,每一趟少比较一次,一定程度上减少了算法的量。

      

    四.队列和栈的区别

      (1)操作的名称不同。队列的插入称为入队,队列的删除称为出队。栈的插入称为进栈,栈的删除称为出栈。

      (2)可操作的方式不同。队列是在队尾入队,队头出队,即两边都可操作。而栈的进栈和出栈都是在栈顶进行的,无法对栈底直接进行操作。

      (3)操作的方法不同。队列是先进先出(FIFO),即队列的修改是依先进先出的原则进行的。新来的成员总是加入队尾(不能从中间插入),每次离开的成员总是队列头上(不允许中途离队)。而栈为后进先出(LIFO),即每次删除(出栈)的总是当前栈中最新的元素,即最后插入(进栈)的元素,而最先插入的被放在栈的底部,要到最后才能删除。

    五.final,finally,finalize的区别

    final是关键字,用于修饰;finally是异常处理的一种补充机制;finalize是object中定义的方法,用于垃圾回收,一般有GC调用

    六.sleep跟wait的区别

    sleep是让线程休眠,到时间后会继续执行,wait是等待,需要唤醒再继续执行;

    sleep可以在任何地方使用,而wait只能在同步方法或者同步块中使用

    sleep需要捕获或者抛出异常,而wait不需要

    七.Java中类的修饰符具体有哪些?简要描述他们之间的区别

      public,abstract,final

      public:完全访问

      abstract:抽象类修饰符

      final:不开继承类

    八.描述一下Java泛型中类型擦除的概念

      正确理解泛型概念的首要前提是理解类型擦除(type erasure)。 Java中的泛型基本上都是在编译器这个层次来实现的。在生成的Java字节代码中是不包含泛型中的类型信息的。使用泛型的时候加上的类型参数,会被编译器在编译的时候去掉。这个过程就称为类型擦除。如在代码中定义的List<Object>和List<String>等类型,在编译之后都会变成List。JVM看到的只是List,而由泛型附加的类型信息对JVM来说是不可见的。Java编译器会在编译时尽可能的发现可能出错的地方,但是仍然无法避免在运行时刻出现类型转换异常的情况。类型擦除也是Java的泛型实现方式与C++模板机制实现方式之间的重要区别。

    九.Redis中常用的数据结构

      String——字符串
      Hash——字典
      List——列表
      Set——集合
      Sorted Set——有序集合

    十.MySQL中连表查询内连接和外连接的区别

    外连接分为左右两种

      1.内连接,显示两个表中有联系的所有数据;

      2.左链接,以左表为参照,显示所有数据;

      3.右链接,以右表为参照显示数据;

      

  • 相关阅读:
    嵌入式linux问题杂锦
    QT creator 调试问题
    torcs代码
    ubuntu12.04安装KDevelop
    ubuntu12.04LTS安装以及卸载 QT4.8.6和QT creator2.5.2
    用vs2010编译vs2013建的工程
    mysql+matlab配置
    流形学习笔记
    可用的rtmp互联网地址
    信用卡术语
  • 原文地址:https://www.cnblogs.com/wh1997/p/10528837.html
Copyright © 2011-2022 走看看