理论面试随手记录

1、封装、继承、多态?

  1. 封装是对内部信息的隐藏,同时提供一些可以被外界访问的属性方法。
  2. 继承是指可以让某个类型的对象获得另一个类型的对象的属性的方法。
  3. 多态是指一个类实例的相同方法在不同情形有不同表现形式。

2、重写和重载的区别?

  1. 重载是让类以统一的方式处理不同类型数据的一种手段。多个同名函数同时存在,具有不同的参数个数/类型。
  2. 重写就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义

    重写方法的规则:
    1)、参数列表必须完全与被重写的方法相同。
    2)、返回的类型必须一直与被重写的方法的返回类型相同。
    3)、访问修饰符的限制一定要大于被重写方法的访问修饰符(public>protected>default>private)
    4)、重写方法一定不能抛出新的检查异常或者比被重写方法申明更加宽泛的检查型异常。

    而重载的规则:
    1)、必须具有不同的参数列表;
    2)、可以有不同的返回类型,只要参数列表不同就可以了;
    3)、可以有不同的访问修饰符;
    4)、可以抛出不同的异常;

3、final关键字主要用法有以下四种:

  1. 用来修饰数据,包括成员变量和局部变量,该变量只能被赋值一次且它的值无法被改变。对于成员变量来讲,我们必须在声明时或者构造方法中对它赋值;
  2. 用来修饰方法参数,表示在变量的生存期中它的值不能被改变;
  3. 修饰方法,表示该方法无法被重写;
  4. 修饰类,表示该类无法被继承。

4、synchronized的用法:

  1. synchronized修饰方法,synchronized只是一个内置锁的加锁机制,当某个方法加上synchronized关键字后,就表明要获得该内置锁才能执行,并不能阻止其他线程访问不需要获得该内置锁的方法。
  2. synchronized修饰代码块。

5、转发和重定向的区别

  1. 转发是服务器的内部跳转,所以浏览器地址栏上的路径没有改变
  2. 重定向时因为会从浏览器再次发送请求,所有地址栏会改变

6、error、exception和RuntimeException的区别

  1. Error和RuntimeException及其子类成为未检查异常(unchecked),其它异常成为已检查异常(checked)。
  2. Error(错误)表示系统级的错误和程序不必处理的异常,是java运行环境中的内部错误或者硬件问题。比如:内存资源不足等。对于这种错误,程序基本无能为力,除了退出运行外别无选择,它是由Java虚拟机抛出的。
  3. Exception(违例)表示需要捕捉或者需要程序进行处理的异常,它处理的是因为程序设计的瑕疵而引起的问题或者在外的输入等引起的一般性问题,是程序必须处理的。
  4. RuntimeException:其特点是Java编译器不去检查它,也就是说,当程序中可能出现这类异常时,即使没有捕获,还是会编译通过,如除数为零的、数组越界访问和试图访问空指针等。
    处理RuntimeException的原则是:如果出现RuntimeException,那么一定是程序员的错误。
  5. 受检查的异常(IOException等):这类异常如果没有try……catch也没有throws抛出,编译是通不过的。这类异常一般是外部错误,例如文件找不到

7、进程和线程的区别

8、IO和NIO的区别

 IO是面向流的,是阻塞的,NIO是面向缓冲区的,非阻塞模式

9、HashMap和Hashtable的区别

  1. 线程安全性不同,HashMap非线程安全,Hasetable是线程安全的
  2. 继承的父类不同,Hashtable继承自Dictionary类,而HashMap继承自AbstractMap类
  3. Hashtable的Key和Value都不允许有null值,编译不会报错,运行时会出现空指针,而HaseMap可以为null
  4. 内部实现使用的数组初始化和扩容方式不同,HashTable在不指定容量的情况下的默认容量为11,而HashMap为16,HashMap扩容时将容量变为原来的2倍,而Hashtable是原来的2倍加1;
  5. 哈希值的使用不同,HashTable直接使用对象的hashCode。而HashMap重新计算hash值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值