Java面试系列9

✎一、Java有没有goto?

java中的保留字,现在没有在java中使用。

✎二、必须要知道的运行时异常

ArithmeticException

是出现异常的运算条件时,抛出此异常。

例如,一个整数“除以零”时,抛出此类的一个实例。

AlreadyConnectedException 试图对已经连接的 SocketChannel 进行连接时抛出的未经检查的异常。

AccessControlException 此异常由 AccessController 抛出,提示请求的访问(对关键系统资源(如文件系统或网络)的访问)被拒绝。

AnnotationTypeMismatchException 若某个注释的类型在对该注释进行编译(或序列化)后发生了更改,而程序试图访问该注释的元素时,抛出此异常。

ArrayStoreException 表示向一个对象数组存放一错误类型的对象时的异常。

例如,下面代码将产生一 ArrayStoreException 异常:

Object x[] = new String[3];

x[0] = new Integer(0);

ArrayIndexoutoBoundsException 用非法索引访问数组时抛出的异常。

BufferOverflowException 当相关 put 操作达到目标缓冲区限制时,抛出此未经检查的异常。

BufferUnderflowException 当相关 get 操作达到源缓冲区限制时,抛出此未经检查的异常。

CannotRedoException 当 UndoableEdit 被通知 redo() 但无法执行时抛出。

CannotUndoException 当 UndoableEdit 被通知 undo() 但无法执行时抛出。

CancelledKeyException 当试图使用不再有效的选择键时,抛出此未经检查的异常。

CancellationException 如果某项值生成任务(如 FutureTask)的结果因为任务被取消而无法获取到,则抛出该异常。

ClosedSelectorException 试图在已关闭的选择器上调用 I/O 操作时抛出的未经检查的异常。

ConnectionPendingException 试图连接一个正在进行非阻塞连接操作的 SocketChannel 时抛出的未经检查的异常

ClassCastException 当试图将对象强制转换为不是实例的子类时,抛出该异常

ClassNotFoundException 异常的解释是"指定的类不存在"。

CMMException 如果本机 CMM 返回一个错误,则抛出此异常

ConcurrentModificationException 当方法检测到对象的并发修改,但不允许这种修改时,抛出此异常。

DuplicateFormatFlagsException 格式说明符中提供重复标志时抛出的未经检查的异常。

EmptyStackException 该异常由 Stack 类中的方法抛出,以表明堆栈为空。

EnumConstantNotPresentException 当应用程序试图通过名称和枚举类型访问那些不包含具有指定名称的常量的枚举常量时,抛出该异常。

FormatFlagsConversionMismatchException 转换与标志不兼容时抛出未经检查的异常。

FormatterClosedException 格式器已关闭时抛出的未经检查的异常。

HeadlessException 在不支持键盘、显示器或鼠标的环境中调用与键盘、显示器或鼠标有关的代码时,被抛出的异常。

HTTPException HTTPException 异常表示一个 XML/HTTP 故障。

IllegalComponentStateException 当 AWT 组件未处于所请求操作的适当状态时,抛出该异常。

IllegalArgumentException 此异常表明向方法传递了一个不合法或不正确的参数

IllegalCharsetNameException 将一个不是合法 charset 名称的字符串用作 charset 名称时,抛出此未经检查的异常。

IllegalMonitorStateException 抛出的异常表明某一线程已经试图等待对象的监视器,或者试图通知其他正在等待对象的监视器而本身没有指定监视器的线程

IllegalPathStateException 对于正在执行的特定操作而言(如将路径段追加到不具有初始 moveto 的 GeneralPath),如果操作在处于非法状态的路径上执行,则 IllegalPathStateException 表示抛出的异常

IllegalBlockingModeException 当以错误的阻塞模式调用特定于某个阻塞模式的操作时,抛出此未经检查的异常。

IllegalSelectorException 试图将一个通道注册到一个不是由创建该通道的提供者所创建的选择器时,抛出此未经检查的异常。

IllegalStateException 在非法或不适当的时间调用方法时产生的信号

IllegalThreadStateException 指示线程没有处于请求操作所要求的适当状态时抛出的异常。

IllegalFormatCodePointException 将具有 Character.isValidCodePoint(int) 所定义的无效 Unicode 代码点的字符传递给 Formatter 时,抛出未经检查的异常。

IllegalFormatConversionException 当对应于格式说明符的参数为不兼容的类型时,抛出未经检查的异常。

IllegalFormatException 当格式字符串包含非法语法,或者包含与给定参数不兼容的格式说明符时,将抛出未经检查的异常。

IllegalFormatFlagsException 当给出非法组合标志时,抛出未经检查的异常。

IllegalFormatPrecisionException 当精度为除 -1 以外的负值、转换类型不支持某个精度或者值在其他方面不受支持时,将抛出未经检查的异常。

IllegalFormatWidthException 当格式宽度为除 -1 以外的负值或其他不受支持的值时,将抛出未经检查的异常。

InvalidDnDOperationException java.awt.dnd 包中的各种方法都会抛出此异常。

InvalidMarkException 当试图重置一个尚未定义其标记的缓冲区时,抛出此未检查的异常。

InvalidParameterException 当将无效参数传递给某个方法时抛出此异常,设计该异常供 JCA/JCE 引擎类使用。

InvalidKeyException 当方法参数作为复合数据 的项名称或表格数据 的行索引时,如果其无效,则抛出此运行时异常。

InvalidOpenTypeException 当开放数据 值的开放类型 不是期望的类型时,抛出此运行时异常。

IncompleteAnnotationException 若某个注释在编译(或序列化)后将某个注释类型添加到其类型定义中,而程序试图该注释类型的元素时,抛出此异常。

ImagingOpException 如果某个 BufferedImageOp 或 RasterOp 过滤器方法无法处理图像,则抛出 ImagingOpException。

ImagingOpException 如果某个 BufferedImageOp 或 RasterOp 过滤器方法无法处理图像,则抛出

IndexOutOfBoundsException 数组下标越界异常 指示某排序索引(例如对数组、字符串或向量的排序)超出范围时抛出

InputMismatchException 由 Scanner 抛出,表明获取的标记与期望类型的模式不匹配,或者该标记超出期望类型的范围。

JMRuntimeException 由 JMX 实现所发出的运行时异常。

KeyAlreadyExistsException 当添加到表格数据 实例的行索引已用于引用此表格数据 实例中的另一行时,抛出此运行时异常。

MissingResourceException 是说没找到你的资源文件: mResource

它的路径应该是从\WEB-INF\classes目录下开始的:

我的\WEB-INF\classes\com\yaray\tools目录下有config.properties文件,如下使用:

ResourceBundle resB = ResourceBundle.getBundle("com.yaray.tools.config");

或:

ResourceBundle resB = ResourceBundle.getBundle("com/yaray/tools/config");

MissingFormatArgumentException 如果格式说明符没有相应的参数,或者参数索引引用了不存在的参数时,则抛出未经检查的异常。

MissingFormatWidthException 请求格式宽度时抛出未经检查的异常。

MissingResourceException 缺少资源时抛出此异常

MirroredTypeException 当应用程序试图访问对应于 TypeMirror 的 Class 对象时,抛出此异常。

MirroredTypesException 当应用程序试图访问每个对应于 TypeMirror 的 Class 对象的序列时,抛出此异常。

MalformedParameterizedTypeException 当反射方法遇到语义错误的参数化类型,而反射方法需要实例化该类型时,抛出该异常。

MonitorSettingException 当监视器设置在运行监视器期间变得无效时由该监视器抛出的异常。

NegativeArraySizeException 如果应用程序试图创建大小为(负的)数组时抛出

NoSuchElementException 由 Enumeration 的 nextElement 方法抛出,表明枚举中没有更多的元素。

NoSuchMechanismException 当请求特定 XML 机制但该机制在环境中不可用时,抛出此异常。

NoConnectionPendingException 在没有首先成功调用 connect 方法的情况下调用 SocketChannel 的 finishConnect 方法时,抛出此未经检查的异常。

NonReadableChannelException 试图对一个最初未允许对其进行读取操作的通道进行读取时,抛出此未经检查的异常。

NonWritableChannelException 试图对一个最初未允许对其进行写入操作的通道进行写入时,抛出此未经检查的异常。

NotYetBoundException 试图在尚未绑定的服务器套接字通道上调用 I/O 操作时,抛出此未经检查的异常。

NotYetConnectedException 试图在尚未连接的套接字通道上调用 I/O 操作时,抛出此未经检查的异常。

NumberFormatException 当应用程序试图将字符串转换成一种数值类型,但该字符串不能转换为适当格式时,抛出该异常。

NullPointerException 空指针引用异常

当应用程序试图在需要对象的地方使用 null 时,抛出该异常。这种情况包括:

调用 null 对象的实例方法。

访问或修改 null 对象的字段。

如果一个数组为null,试图用属性length获得其长度时。

如果一个数组为null,试图访问或修改其中某个元素时。

在需要抛出一个异常对象,而该对象为 null 时。

应用程序将会抛出NullPointerException类的实例,表明其他对 null 对象的非法使用

OverlappingFileLockException 试图获取某个文件区域上的锁定,而该区域与同一 Java 虚拟机已锁定的某个区域重叠时,或者当另一个线程已经等待锁定同一文件的重叠区域时,抛出此未经检查的异常。

ProtocolException ProtocolException 类是与特定协议绑定有关的异常的基类。

ProfileDataException 当访问或处理 ICC_Profile 对象出现错误时,抛出此异常。

ProviderException 用于 Provider 异常(例如误配置错误或不可恢复的内部错误)的运行时异常,Provider 可以为它创建子类以抛出特殊的、特定于 provider 的运行时错误。

PatternSyntaxException 抛出未经检查的异常,表明正则表达式模式中的语法错误。

RasterFormatException 如果 Raster 中存在无效的布局信息,则抛出 RasterFormatException。

RejectedExecutionException 当无法执行某个任务时,由 Executor 抛出的异常。

ReadOnlyBufferException 当在只读缓冲区上调用内容可变(content-mutation)的方法(例如 put 或 compact 方法)时,抛出此未经检查的异常。

RuntimeErrorException 当代理中发生 java.lang.Error 时,必须捕获它并作为 RuntimeErrorException 重新抛出

RuntimeMBeanException 表示由代理中的 MBean 方法抛出的运行时异常。

RuntimeOperationsException 表示在 MBean 上执行操作时代理中抛出的运行时异常。

SecurityException 安全异常 由安全管理器抛出的异常,指示存在安全侵犯

StringIndexOutOfBoundsException 此异常由 String 方法抛出,指示索引或者为负,或者超出字符串的大小

SystemException 系统异常

SOAPFaultException SOAPFaultException 异常表示一个 SOAP 1.1 或 1.2 故障。

TypeNotPresentException 当应用程序试图使用表示类型名称的字符串对类型进行访问,但无法找到带有指定名称的类型定义时,抛出该异常

TypeConstraintException 此异常指示已检测到存在违反动态检查的类型约束的情况。

UndeclaredThrowableException 如果代理实例的调用处理程序的 invoke 方法抛出一个经过检查的异常(不可分配给 RuntimeException 或 Error 的 Throwable),且该异常不可分配给该方法的throws子局声明的任何异常类,则由代理实例上的方法调用抛出此异常。

UnmodifiableSetException 当由于设置不可修改而无法执行请求的操作时,抛出该异常。

UnsupportedOperationException 当不支持请求的操作时,抛出该异常。

UnsupportedCharsetException 当不支持请求的 charset 时,抛出此未经检查的异常。

UnresolvedAddressException 试图对未解析的套接字地址调用网络操作时,抛出此未经检查的异常。

UnsupportedAddressTypeException 试图绑定或连接到一个其类型不受支持的套接字地址时,抛出此未经检查的异常。

UnknownFormatConversionException 给定未知的转换时所抛出的未经检查的异常。

UnknownFormatFlagsException 给定未知标志时所抛出的未经检查的异常。

UnknownAnnotationValueException 指示遇到一个未知种类的注释值。

UnknownElementException 指示遇到一个未知种类的元素。

UnknownTypeException 指示遇到未知种类的类型。

WebServiceException WebServiceException 类是所有 JAX-WS API 运行时异常的基本异常类。

✎三、接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)?

接口可以继承接口。抽象类可以实现(implements)接口,抽象类是否可继承实体类,但前提是实体类必须有明确的构造函数。

✎四、List, Set, Map是否继承自Collection接口?

List,Set是,Map不是

abstract的method是否可同时是static,

是否可同时是native,是否可同时是synchronized?

都不能

✎五、数组有没有length()这个方法? String有没有length()这个方法?

数组没有length()这个方法,有length的属性。String有length()这个方法。

原文发布于微信公众号 - Java帮帮(javahelp)

原文发表时间:2017-04-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏技术点滴

编译器构造

编译器构造 一、 编译器简介 前面谈到静态链接器构造的基本流程,最后提到所构造的链接器若要能正常工作的前提是需要构造一个能生成符合链接器输入文件格式的编译器,本...

2458
来自专栏java一日一条

Java 程序优化:字符串操作、基本运算方法等优化策略

字符串对象或者其等价对象 (如 char 数组),在内存中总是占据最大的空间块,因此如何高效地处理字符串,是提高系统整体性能的关键。

761
来自专栏ShaoYL

Objective-C中的@property和@synthesize用法

39611
来自专栏技术与生活

设计模式-模板方法模式

这里的抽象类就是抽象模板类,定义一个或者多个抽象方法,迫使子类来完成。同时定义一个模板方法,该方法一般情况下是一个具体方法,给出模板方法的执行过程,里面调用抽象...

811
来自专栏本立2道生

实例分析C程序运行时的内存结构

这段代码包含两个函数,因此可以测试函数调用,此外还包含了静态变量、局部变量、返回值等

1591
来自专栏刘望舒

Java虚拟机(二)对象的创建与OOP-Klass模型

前言 在前一篇文章中我们学习了Java虚拟机的结构原理与运行时数据区域,那么我们大概知道了Java虚拟机的内存的概况,那么内存中的数据是如何创建和访问的呢?这篇...

25210
来自专栏章鱼的慢慢技术路

Go指南_指针接收者

1022
来自专栏Java技术栈

深度历险:Redis 内存模型详解

Redis 是目前最火爆的内存数据库之一,通过在内存中读写数据,大大提高了读写速度,可以说 Redis 是实现网站高并发不可或缺的一部分。

1902
来自专栏鸿的学习笔记

python的抽象基类

与jvm上的语言不一样,python的语言没有interface关键字,而且除了抽象基类,每个类都有相应的接口:类实现或继承的公开属性(方法或数据类型)

861
来自专栏自学笔记

python基本常识

tuple,str都可以看做是一种list,都可以进行切片操作。 利用切片操作,去掉一个字符串的前后空格。要注意是是前后空格是不止一个的,可能有很多个。

3185

扫码关注云+社区

领取腾讯云代金券