`
有崖生110
  • 浏览: 56104 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

看书要点:java基础总结(七)

 
阅读更多

 

HashMapHashtable的区别。

答案:HashMap(非线程安全的实现)是Hashtable的轻量级实现,他们都实现了Map接口 

主要区别在于HashMap允许空(null)键值(key,只允许一个空)与空值(value,由于非线程安全,效率上可能高于Hashtable,Hashtable不允许有空(null)键值(key)与空值(value)。

 


 

 

异常处理:

Error类及其子类通常用来描述java运行系统中的内部错误以及资源耗尽的错误。它表示的异常比较严重,仅靠修改程序本身是不能回复执行的,被称为致命性错误。

Exception类称为非致命性错误,可以通过程序捕捉处理后正常运行。

处理异常的方法:

1、  当前方法使用trycatch捕捉并处理

2、  在方法声明处通过throws关键字将异常向上抛出

3、 catch捕捉到异常后,使用throw关键字重新抛出异常

Throwable是所有Java程序中错误处理的父类,有两种资类:ErrorException

Error:表示由JVM所侦测到的无法预期的错误,由于这是属于JVM层次的严重错误,导致JVM无法继续执行,因此,这是不可捕捉到的,无法采取任何恢复的操作,顶多只能显示错误信息。

Exception:表示可恢复的例外,这是可捕捉到的。

Java提供了两类主要的异常:runtime exceptionchecked exceptionchecked 异常也就是我们经常遇到的IO异常,以及SQL异常都是这种异常。对于这种异常,JAVA编译器强制要求我们必需对出现的这些异常进行catch。所以,面对这种异常不管我们是否愿意,只能自己去写一大堆catch块去处理可能的异常。

但是另外一种异常:runtime exception,也称运行时异常,我们可以不处理。当出现这样的异常时,总是由虚拟机接管。比如:我们从来没有人去处理过NullPointerException异常,它就是运行时异常,并且这种异常还是最常见的异常之一。

出现运行时异常后,系统会把异常一直往上层抛,一直遇到处理代码。如果没有处理块,到最上层,如果是多线程就由Thread.run()抛出,如果是单线程就被main()抛出。抛出之后,如果是线程,这个线程也就退出了。如果是主程序抛出的异常,那么这整个程序也就退出了。运行时异常是Exception的子类,也有一般异常的特点,是可以被Catch块处理的。只不过往往我们不对他处理罢了。也就是说,你如果不对运行时异常进行处理,那么出现运行时异常之后,要么是线程中止,要么是主程序终止。

如果不想终止,则必须扑捉所有的运行时异常,决不让这个处理线程退出。队列里面出现异常数据了,正常的处理应该是把异常数据舍弃,然后记录日志。不应该由于异常数据而影响下面对正常数据的处理。在这个场景这样处理可能是一个比较好的应用,但并不代表在所有的场景你都应该如此。如果在其它场景,遇到了一些错误,如果退出程序比较好,这时你就可以不太理会运行时异常,或者是通过对异常的处理显式的控制程序退出。

异常处理的目标之一就是为了把程序从异常中恢复出来。

 

 

JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗

答:Java通过面向对象的方法进行异常处理,把各种不同的异常进行分类,并提供了良好的接口。在Java中,每个异常都是一个对象,它是Throwable类或其它子类的实例。当一个方法出现异常后便抛出一个异常对象,该对象中包含有异常信息,调用这个对象的方法可以捕获到这个异常并进行处理。Java的异常处理是通过5个关键词来实现的:trycatchthrowthrowsfinally。一般情况下是用try来执行一段程序,如果出现异常,系统会抛出(throws)一个异常,这时候你可以通过它的类型来捕捉(catch)它,或最后(finally)由缺省处理器来处理。

try来指定一块预防所有"异常"的程序。紧跟在try程序后面,应包含一个catch子句来指定你想要捕捉的"异常"的类型。

throw语句用来明确地抛出一个"异常"

throws用来标明一个成员函数可能抛出的各种"异常"

Finally为确保一段代码不管发生什么"异常"都被执行一段代码。

    可以在一个成员函数调用的外面写一个try语句,在这个成员函数内部写另一个try语句保护其他代码。每当遇到一     个try语句,"异常"的框架就放到堆栈上面,直到所有的try语句都完成。如果下一级的try语句没有对某种"异常"进      行处理,堆栈就会展开,直到遇到有处理这种"异常"try语句。

  • 大小: 18.6 KB
分享到:
评论

相关推荐

    java之路,主要是java中的学习过程与基础项目.rar

    看书学习,如《Redis设计与实现》、《 Java 并发编程的艺术》,便于了解技术脉络和深入学习知识点。 看博客和源码精进学习。博客的好处是有些知识点会以很通俗的方式讲解出来,我们很好理解。 第一阶段: Java ...

    基于JAVA开发的看书阅读带后端

    1. **JAVA开发语言**:JAVA是一种面向对象的编程语言,以其跨平台、安全性高、性能稳定等特性广泛应用于企业级应用开发。在这个项目中,JAVA的主要应用可能包括服务器端的业务逻辑处理、数据访问接口设计以及系统...

    Java疯狂讲义(第三版)配套代码

    6. **多线程**:Java提供了强大的并发处理能力,包括Thread类、Runnable接口、同步机制(如synchronized关键字、wait()、notify()、notifyAll()方法)以及并发工具类(如Semaphore、CountDownLatch、CyclicBarrier)...

    我的java入门笔记,但是有很多其他的知识还是要多看书的

    2. **基础语法**:Java的基础语法包括变量声明、数据类型(如整型、浮点型、字符型和布尔型)、运算符(算术、比较、逻辑、位操作等)、流程控制(如if语句、switch语句、for循环、while循环等)以及异常处理。...

    教学视频\源代码\JAVA手机软件熊猫看书V1

    【标题】"教学视频\源代码\JAVA手机软件熊猫看书V1" 涉及的知识点主要集中在Java ME(Java Micro Edition)平台上的移动应用开发,特别是针对早期智能手机的电子书阅读器的实现。Java ME是Java技术的一个分支,专为...

    java并发编程实战源码,java并发编程实战pdf,Java

    3. **并发控制**:Java提供了多种并发控制工具,包括synchronized、wait()、notify()、notifyAll()、ReentrantLock(可重入锁)、Semaphore(信号量)和CountDownLatch(倒计时器)等。这些工具用于协调不同线程的...

    看书阅读带后端_java前后端交互.zip

    - **Spring框架**:Java后端通常采用Spring框架,它为开发者提供了丰富的功能,如依赖注入、AOP(面向切面编程)、MVC(模型-视图-控制器)等,便于构建高效、可扩展的应用。 - **RESTful API**:后端会通过...

    石头看书,java看书软件

    java看书软件,自定义字体、省电 其他功能慢慢加入

    从java到c++,适合java程序员快速学习c++

    以下是从 Java 到 C++ 的知识点总结: 数据类型和变量 * C++ 中的变量类型与 Java 相似,包括 int、double 等,但取值范围依赖于机器。 * C++ 有 short 和 unsigned 类型来存储数字,尽量避免使用这些类型除非是...

    Java学习源代码资源

    3. **接口**:Java中的接口允许实现多个抽象方法,用于定义类型行为和实现多继承。 4. **异常处理**:Java提供了异常处理机制,使得程序能更健壮地处理错误情况。try-catch-finally块和异常类是这部分的重点。 5. ...

    完整word版java学习心得4000字.pdf

    Java学习心得总结 Java学习心得总结,Java学习感受,回想一下学习Java的情景,我仍然兴奋不已。其实在刚接触Java时,自己确实有点晕,但经过一段时间学习,逐渐走出了迷雾。 一、学习Java的特点: * 先是不懂,...

    java8集合源码分析-AboutJava:java相关知识(理论,代码)相关知识均是看书,博客等地方获取再由自己整理,如存在侵权,请告诉我

    Java基础 (缺少代码) IO 缺少图片 BIO NIO JAVA8 异常 --- 容器 基本容器 集合 Map 并发容器 BlockingQueue阻塞队列 并发 (很多笔记来自java并发艺术一书) 多线程基础 synchronized volatile 线程间的通信 锁(重入...

    word源码java-OfferFighting:报价打架

    Java做题模板总结 结合两个博客 8:30--10:30 数据库(MySQL+SQL)尚硅谷+CSDN笔记 10:30--2:30 ================================= SSM Springboot雷锋杨 word 2:30--6:00 Java高并发 看书 7:00-8:00 剑指...

    SP 熊猫看书最新版

    "SP 熊猫看书最新版"是一款专为阅读爱好者设计的应用程序,它集成了丰富的电子书资源,提供舒适的阅读体验。"熊猫看书"作为其核心标签,表明该软件以熊猫这一可爱形象作为品牌象征,旨在带给用户轻松愉快的阅读氛围...

    2023最全的Java大厂面试题合集.zip

    2023最全的Java大厂面试题合集,共30+专题。包含计算机网络、多线程、数据库、分布式等专题。 微服务架构面试专题...Java 基础核心总结_.pdf Java 工程师进阶知识完全扫盲.pdf BAT面试题汇总及详解(进大厂必看).zip

    Java面试宝典2012

    2. **异常处理**:Java的异常处理机制是面试中的常见考点,包括try-catch-finally语句块、自定义异常、异常链和finally块的执行逻辑等。 3. **集合框架**:集合框架是Java的重要组成部分,面试者应掌握ArrayList、...

    百度地图开发java源码-JavaPlan:Java学习、进阶、面试、架构师成长之路,Java程序员进阶大牛的核心知识体系

    本项目大部分内容来自我近几年的收集和整理,根据计划将主要包含:Java相关知识、网络编程、并发编程、微服务、Linux、数据库、数据结构、算法等知识内容。本人对有深度的系列文章情有独钟,所以整理过程中会更加...

    3D游戏基础-java实现

    我正试图使用java编写3D引擎,进而编写3D游戏。这是我看书后自己总结的源代码和3D原理。对3D编程入门很有用。后续我还会陆续总结。如果大家喜欢,我会继续上传。

    java实验指导:

    学编程只看书是不行的,动手实践才能成长,这里提供了15个实验,一个一个的动手做,java入门不再难

Global site tag (gtag.js) - Google Analytics