JAVA 编程思想三
1:JAVA可变参数?
参数个数不确定,但是类型确定;
可变参数位于最后一项,只支持一个可变参数:
public void funciton1(int a, String ...args)
{
for(String b : args)
{
System.out.print(b);
}
}
2: 运行期异常 VS 非运行期异常?
主要区别在于非运行时异常必须在代码中显示的声明捕获也就是放在try{}catch(){}块中,或者在方法上申明throws 来抛出异常,类型上都属于Exception类及其子类。
运行时异常不需要特意的申明,一般运行时异常都是虚拟机出现问题了才会报,比如你写个死循环导致内存不足什么的, 运行时异常都是RuntimeException类及其子类,如 NullPointerExcetpion、IndexOutOfBoundsExcrtiption等,程序可以不捕获。一般是由逻辑引起的,要尽量避免。
RuntimeException类是Exception类的子类,它叫做运行时异常,Java中的所有运行时异常都会直接或者间接地继承自RuntimeException类。
Java中凡是继承自Exception,而不继承自RuntimeException类的异常都是非运行时异常。
3: 什么是异常丢失?
抛出异常后处理异常的code又抛出新异常,则旧异常丢失。
4: 异常处理两种方式?
用try {} catch{} finally {} 捕获处理; 函数后面throws Excepltion,抛出异常,函数内部throw new Exception()。
5: 如何自定义异常?
继承Exception或其子类(比如RuntimeException)。
6: try语句块中有return, 会执行finally吗? 如果执行try{} 之前有return, finally会执行吗?
try中有return, 也会首先执行finally中的代码; 如果是Sytem.exit(0),就不执行finally;
如果在try之前有return, finally 是不会被执行的。
7: catch中的异常匹配?
基类会捕获派生类异常。catch的时候,会先匹配派生类的,然后是基类的。
8: Throwable, Error, Exception, RuntimeException的区别?
(1)Throwable类是 Java 语言中所有错误或异常的超类。它的两个子类是Error和Exception;
(2)Error是Throwable 的子类,用于指示合理的应用程序不应该试图捕获的严重问题。大多数这样的错误都是异常条件;
(3)Exception类及其子类是 Throwable 的一种形式,它指出了合理的应用程序想要捕获的条件;
(4)RuntimeException是那些可能在 Java 虚拟机正常运行期间抛出的异常的超类。
可能在执行方法期间抛出但未被捕获的RuntimeException 的任何子类都无需在 throws 子句中进行声明。它是Exception的子类;
9: 内存溢出:
应用系统中存在无法回收的内存或使用的内存过多,最终使得程序运行要用到的内存大于虚拟机能提供的最大内存
原因:
(1)内存中加载的数据量过于庞大,如一次从数据库取出过多数据,如与数据库锁表有关;
(2)代码中存在死循环或循环产生过多重复的对象实体;
(3)启动参数内存值设定的过小;
解决:
(1)就是修改JVM启动参数,直接增加内存;
(2)检查错误日志;
(3)使用内存查看工具动态查看内存使用情况;
JAVA 编程思想三的更多相关文章
- Java编程思想(四) —— 复用类
看了老罗罗升阳的专訪,不由自主地佩服,非常年轻,我之前以为和罗永浩一个级别的年龄.也是见过的不是初高中编程的一位大牛之中的一个,专訪之后.发现老罗也是一步一个脚印的人. 别说什么难做,做不了.你根本就 ...
- 《Java编程思想》读书笔记(三)
前言:三年之前就买了<Java编程思想>这本书,但是到现在为止都还没有好好看过这本书,这次希望能够坚持通读完整本书并整理好自己的读书笔记,上一篇文章是记录的第十一章到第十六章的内容,这一次 ...
- JAVA编程思想读书笔记(三)--RTTI
接上篇JAVA编程思想读书笔记(二) 第十一章 运行期类型判定 No1: 对于作为程序一部分的每个类,它们都有一个Class对象.换言之,每次写一个新类时,同时也会创建一个Class对象(更恰当的说, ...
- Java编程思想——第17章 容器深入研究 读书笔记(三)
七.队列 排队,先进先出. 除并发应用外Queue只有两个实现:LinkedList,PriorityQueue.他们的差异在于排序而非性能. 一些常用方法: 继承自Collection的方法: ad ...
- Java编程思想重点笔记(Java开发必看)
Java编程思想重点笔记(Java开发必看) Java编程思想,Java学习必读经典,不管是初学者还是大牛都值得一读,这里总结书中的重点知识,这些知识不仅经常出现在各大知名公司的笔试面试过程中,而 ...
- 注解的基本盘点 -- 《Java编程思想》
注解(元数据)为我们在代码中添加信息提供了一种形式化的方法,使我们可以在之后的某一个时刻非常方便地使用这些数据. ---<Java编程思想> 其实注解可以理解为一个工具类,只要使用了这个工 ...
- Java编程思想学习(八) 内部类
可以将一个类的定义放在另一个类的定义内部,这就是内部类. 内部类的定义是简单的,但是它的语法确实很是复杂,让人不是很好理解.下面就内部类做一个小结. 一.内部类的分类 总的来讲内部类分为普通内部类,匿 ...
- java编程思想
Java编程思想,Java学习必读经典,不管是初学者还是大牛都值得一读,这里总结书中的重点知识,这些知识不仅经常出现在各大知名公司的笔试面试过程中,而且在大型项目开发中也是常用的知识,既有简单的概念理 ...
- Java编程思想(11~17)
[注:此博客旨在从<Java编程思想>这本书的目录结构上来检验自己的Java基础知识,只为笔记之用] 第十一章 持有对象 11.1 泛型和类型安全的容器>eg: List<St ...
随机推荐
- 我的Android进阶之旅------>Android中android:windowSoftInputMode的用法
面试题:如何在显示某个Activity时立即弹出软键盘? 答案:在AndroidManifest.xml文件中设置<activity>标签的android:windowSoftInputM ...
- hibernate多对多关系配置
一.创建用户,角色实体类. 一名用户可以有多个角色.一个角色可以对于多名用户. 用户实体类 public class User { private int uId; private String uN ...
- [转载]Java web应用中的常见字符编码问题的解决方法
以下是 Java web应用的常见编码问题 1. html页面的编码 在web应用中,通常浏览器会根据http header: Content-type的值来决定用什么encoding, 比如遇到Co ...
- PIG执行MR时报Connection refused错误
原因是jobhistory没有启动,其启动脚本位于hadoop/sbin目录下 启动命令如下 mr-jobhistory-daemon.sh start historyserver
- python链表的实现
根据Problem Solving with Algorithms and Data Structures using Python 一书用python实现链表 书籍在线网址http://intera ...
- 剑指offer——树中两个节点的最低公共祖先
代码来源与<剑指offer> 得到从根节点开始到输入的两个结点的两条,需要遍历两次树,每遍历一次的时间复杂度是O(n),得到的两条路径的长度在最差情况时是O(n),通常情况下两条路径的长度 ...
- bagging与boosting集成学习、随机森林
主要内容: 一.bagging.boosting集成学习 二.随机森林 一.bagging.boosting集成学习 1.bagging: 从原始样本集中独立地进行k轮抽取,生成训练集.每轮从原始样本 ...
- EntityFramework 学习 一 Entity Framework结构体系
Entity Framework 架构 EDM(Entity Data Model)EDM由3个主要部分组成 Conceptual model , Mapping and Storage model. ...
- BioNLP概述
BioNLP概述 工具: GENIA Tagger:GENIA Tagger是一个主要应用于生物医学文本领域的词性标注和浅层语法分析工具,GENIA Tagger在GENIA语料上的词性标记性能F-s ...
- windows下Scrapy爬虫框架环境搭建
1. 安装python 根据你的需求下载python安装包,安装python(本文基于python27)https://www.python.org/downloads/ 下载完安装默认安装路径, ...