zoukankan      html  css  js  c++  java
  • 面试题(更新中,未完结)

    目录:

      1.Java

      2.Spring

      3.Mysql

    1.Java

    1.面向对象的特征:

      继承、封装、抽象、多态

    2.修饰符public、private、protected、默认的区别:

      

    修饰符 当前类 同包 子类 其他包
    public
    protected ×
    default × ×
    private × × ×

    3.用最有效率的方法计算2乘以8?

      2 << 3(左移3位相当于乘以2的3次方,右移3位相当于除以2的3次方)。

    4.构造器(constructor)是否可被重写(override)?

      不能。可以重载。

    5.抽象类(abstract class)和接口(interface)有什么异同?

      1.抽象类可以实例化,接口不可以实例化

      2.接口比抽象类更加抽象,因为抽象类中定义了构造器,可以有具体方法和抽象方法,而接口没有构造器,只能有抽象方法。

      3.接口中的成员必须都是public的,抽象类中的所有都可以。

      4.接口中的变量都是常量,抽象类中可以定义变量。

      5.有抽象方法的类一定是抽象类,但是声明为抽象类可以没有抽象方法。

    6.String s = new String(“xyz”);创建了几个字符串对象?

      两个。一个是静态区的,一个是new在堆上的。

    7.接口是否可继承(extends)接口?抽象类是否可实现(implements)接口?抽象类是否可继承具体类(concrete class)?

      都可以

    8.Java 中的final关键字有哪些用法?

      1.修饰类,表示为最终类,不能修改。

      2.修饰方法,表示方法不能被重写。

      3.修饰变量,被赋值后不能修改。

    9.如何将字符串转换为基本数据类型?

      调用parsexxx方法

    10.如何将基本数据类型转换为字符串?

      直接""+ 

      调用String中的valueOf()

    11.如何实现字符串的反转及替换?

    public static String reverse(String originStr) {
          if(originStr == null || originStr.length() <= 1) 
              return originStr;
          return reverse(originStr.substring(1)) + originStr.charAt(0);
      }

    12.列出一些你常见的运行时异常?

      1.ArithmeticException(算术异常)

      2.ClassCastException (类转换异常)

      3.IllegalArgumentException (非法参数异常)

      4.IndexOutOfBoundsException (下标越界异常)

      5.NullPointerException (空指针异常)

    13.Collection和Collections的区别?

      Collection是一个接口,它是Set、List等容器的父接口;Collections是个一个工具类,提供了一系列的静态方法来辅助容器操作,这些方法包括对容器的搜索、排序、线程安全化等等。

    14.Thread类的sleep()方法和对象的wait()方法都可以让线程暂停执行,它们有什么区别?

      sleep()方法(休眠)是线程类(Thread)的静态方法,调用此方法会让当前线程暂停执行指定的时间,将执行机会(CPU)让给其他线程,但是对象的锁依然保持,因此休眠时间结束后会自动恢复。wait()是Object类的方法,调用对象的wait()方法导致当前线程放弃对象的锁(线程暂停执行),进入对象的等待池(wait pool),只有调用对象的notify()方法(或notifyAll()方法)时才能唤醒等待池中的线程进入等锁池(lock pool),如果线程重新获得对象的锁就可以进入就绪状态。

    15.线程的sleep()方法和yield()方法有什么区别?

      1.sleep()方法给其他线程运行机会时不考虑线程的优先级,因此会给低优先级的线程以运行的机会;yield()方法只会给相同优先级或更高优先级的线程以运行的机会;

      2. 线程执行sleep()方法后转入阻塞(blocked)状态,而执行yield()方法后转入就绪(ready)状态;

     

    16.当一个线程进入一个对象的synchronized方法A之后,其它线程是否可进入此对象的synchronized方法B?

      不能。其它线程只能访问该对象的非同步方法,同步方法则不能进入。

    17.请说出与线程同步以及线程调度相关的方法。

      sleep,wait,notify,notifyAll

    18.编写多线程程序有几种实现方式?

      1.继承Thread类

      2.实现Runable接口。

    19.事务的ACID是指什么?

      ACID。原子性,一致性,隔离性,持久性。

    20.设计模式:

      工厂模式

      代理模式

      适配器模式

      单例模式

    2.Spring

    1.Spring的优点:

      1.轻量级

      2.方便解耦,简化开发

      3.支持AOP编程

      4.声明式事务控制

      5.方便集成各种优秀的框架

     

    2.Spring多值注入的方法:

      1.设置set方法 注入

      2.构造函数注入

    3.Spring中配置bean实例化的方法有哪些:

      1.使用类构造器

      2.静态工厂

      3.实例工厂

    4.Spring注入的方法

      1.构造函数注入

      2.set注入

      3.接口注入

    5.Spring中用到哪些设计模式?

      1.工厂模式

      2.代理模式

      3.观察者模式

      4.单例模式

      5.适配器模式

      6.装饰着模式

      7.策略模式

      8.模板模式

    6. 怎么样理解IOC和DI

      在使用spring框架的过程中,一定会用到控制反转,但是在往往也会用到其他资源的支持,这个过程就需要依赖注入的支持。

     7.核心容器的两个接口ApplicationContext和BeanFactory引发的问题。

      ApplicationContext:单例对象 多数场景使用此接口。

        在构建核心容器时,采用立即加载方式。

      BeanFactory:多例对象

        在构建核心容器时采用的延迟加载。

    8.bean对象的作用范围:

      singleton:单例

      prototype:多例的

      request:作用于web请求范围

      session:作用于web会话范围

      gloabal-session:作用于集群环境的会话范围(全局会话范围)

      

     

  • 相关阅读:
    vuex实践之路——笔记本应用(一)
    vue-router单页应用简单示例(二)
    vue-router单页应用简单示例(一)
    vue-router单页应用简单示例(三)
    vue基础项目安装教程
    vue初学实践之路——vue简单日历组件(3)
    vue初学实践之路——vue简单日历组件(2)
    vue初学实践之路——vue简单日历组件(1)
    该如何处理,启动任务计划的时候有“任务计划程序服务不可用。任务计划程序将尝试重新与其建立连接。”
    在开启DRS的集群中修复VMware虚拟主机启动问题
  • 原文地址:https://www.cnblogs.com/sxyu/p/12929583.html
Copyright © 2011-2022 走看看