面试题总结2
来源:互联网 发布:淘宝怎么打造一个爆款 编辑:程序博客网 时间:2024/06/05 04:12
1.常见的异常分为哪两种?常见的异常基类以及常见的异常
- Throwable是java语言中所有错误和异常的超类,它有两个子类:Error Exception
- 异常的种类:
- Eorror: Eorror称之为错误,是程序无法处理的,如OutOfMemoryError、ThreadDeath等,出现这种错误唯一能做的就是听之任之,交给JVM来处理,不过JVM大多情况下会选择终止线程。
- Exception:是程序可以处理的异常,它又分为两种:运行时异常(UnCheckedException)、检查异常(CheckedException)。
- CheckedException发生在编译阶段,必须使用try....catch/throws手动处理,否则编译不通过。
- UnCheckedException发生在运行阶段,具有不确定性,主要由于程序的逻辑问题引起的,难以排查,一般编译器会自动处理。
- 常见异常的基类:
- IOException
- RuntimeException
2.Java中的NIO、BIO、AIO分别是什么?
- NIO
- 同步非阻塞,服务器实现模式为一个请求一个线程,即客户端发送的连接都会注册到多路复用器上,多路复用器轮询到连接有I/O请求时才能启动一个线程进行处理。
- NIO方式适用于连接数目多且连接比较短的(轻操作)的架构,比如聊天服务器,并发局限于应用中,编程比较复杂,JDK1.4开始支持。
- BIO
- 同步并阻塞,服务器实现模式一个连接一个线程,即客户端有连接请求时服务器就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销,可以通过线程池机制改善。
- BIO方式适用于连接数目比较少且固定的架构,这种方式对服务器资源要求比较高,并发局限于应用,JDK1.4以前的唯一选择,但程序直观易懂
- AIO
- 异步非阻塞,服务器模式为一个有效请求一个线程,客户端的I/O请求都是由OS先完成了再通知服务器应用去启动线程进行处理。
- AIO方式适用于连接数目多且连接比较长(重操作)的架构,比如相册服务器,充分调用OS参与并发操作,编程比较负责,JDK1.7开始支持。
- 所了解的设计模式
- 工厂模式:定义一个用于创建对象的接口,让子类决定实例化哪一个类,Factory Method使一个类的实例化延迟到子类。
- 单例模式:保证一个类只有一个实例,并且提供一个访问它的全局访问点。
- 适配器模式:将一个类的接口转为客户希望的另外一个接口,Adapter模式使得原本由于接口不兼容而不能一起工作的那些可以一起工作。
- 装饰者模式:动态的给一些对象增加一些额外的职责,就增加的功能来说,Decorator模式相比生成子类更加灵活。
- 代理:为其他对象提供一种代理以控制对这个对象的访问。
- 迭代器模式:提供一个方法顺序访问一个聚合对象的各个元素,又不需要暴露该对象的内部表示。
- 单例模式的注意事项:
- 尽量使用懒加载
- 双重检索实现线程安全
- 构造方法为private
- 定义静态的Singleton instance对象和getInstance()方法
- jdk中用到的设计模式
- 装饰者模式:I/O流中
- 迭代器模式:iterator
- 单例模式:java.lang.Runtime
- 代理模式:RMI
- 匿名内部类是什么
- 匿名内部类是没有访问修饰符的
- 匿名内部类没有构造方法
- 当所在方法的形参需要被匿名内部类使用,这个形参必须为fianlly
- 如何访问在其外面定义的变量
- 当所在方法的形参需要被匿名内部类使用,这个形参必须为fianlly
- 内存模型就是为了在现代计算机平台中保证程序的可以正确的执行,但是不同的平台实现是不同的
- 编译器中生成的指令顺序,可以与源代码中顺序不同
- 编译器可能把变量保存在寄存器而不是内存中
- 处理器可以采用乱序或并等方式来执行命令
- 缓存可能改变将写入变量提交到主内存的次序
- 保存在处理器本地缓存中的值,对其他处理器是不可见的
1 0
- 面试题总结2
- 面试题总结 2
- 面试题总结2
- 面试题总结2
- 总结EMC面试题2
- hadoop面试题总结2
- hadoop面试题总结2
- hadoop面试题总结2
- JAVA面试题总结【2】
- c++面试题总结(2)
- 一份面试题的总结 2
- IOS 面试题总结2 核心动画
- IT 常见面试题总结2
- java面试题总结
- 面试题总结
- 面试题(总结)
- .NET面试题总结
- .net面试题总结
- 在ubuntu14.04上搭建Objective-C开发环境
- PullToRefresh一些实用的用法
- Spring +slf4j logger
- Python 面向对象(2)-1
- java核心JVM
- 面试题总结2
- Google推荐的图片加载库Glide介绍
- LeetCode OJ-226. Invert Binary Tree(反转二叉搜索树)
- ajaxFileUpload文件上传Jquery插件
- 顺序表应用4:元素位置互换之逆置算法
- 从一个简洁的进度刻度绘制中了解自定义View的思路流程
- 165. Compare Version Numbers
- 工具类
- linux系统下安装jboss服务器