为了账号安全,请及时绑定邮箱和手机立即绑定
慕课网数字资源数据库体验端
Java入门第三季_学习笔记_慕课网
为了账号安全,请及时绑定邮箱和手机立即绑定

Java入门第三季

陈码农
难度入门
时长 5小时 0分
  • set的contains原理,当hashCode()与equals()均相同时返回true
    查看全部
  • 只有Error,Exception,RuntimeException提供了带cause参数的构造器,其他的所有异常类只能通过initCause()来设置cause。 所有Throwable的子类构造器中都可以接受一个cause对象作为参数。cause是异常原由,代表着原始异常。既可以在当前位置创建并抛出行的异常,也可以通过cause追踪到异常最初发生的位置。 异常链是一种面向对象编程技术,指将捕获的异常包装进一个新的异常中并重新抛出的异常处理方式。原异常被保存为新异常的一个属性(比如cause)。这个想法是指一个方法应该抛出定义在相同的抽象层次上的异常,但不会丢弃更低层次的信息。 把捕获的异常包装成新的异常,在新异常里添加原始的异常,并将新异常抛出,它们就像是链式反应一样,一个导致(cause)另一个。 这个想法是指一个方法应该抛出定义在相同的抽象层次上的异常,(将所有捕获到的异常包装为新的异常类,即定义在相同的抽象层次上抛出)但不会丢弃更低层次的信息。 实现异常链功能的两种基本写法: public class chainTest { /** * @param args * Test1抛出喝大了异常 * Test2调用test1捕获了喝大了异常,并且包装成运行时异常,继续抛出 * main方法中调用test2尝试捕获test2方法抛出的异常 */ public static void main(String[] args) { try{ // TODO Auto-generated method stub chainTest ct=new chainTest(); ct.Test2();} catch(Exception e){ e.printStackTrace(); } } public void Test1()throws DrunkException{ throw new DrunkException("喝车别开酒"); } public void Test2(){ try{ Test1(); }catch( DrunkException e){ RuntimeException rte=new RuntimeException(e); //rte.initCause(e); e.printStackTrace(); throw rte; } } }
    查看全部
  • list接口
    查看全部
  • 集合框架
    查看全部
  • 集合的结构
    查看全部
  • 两个重要的关键字:throw和throws 1.throws的异常列表可以是抛出一条异常,也可以是抛出多条异常,每个类型的异常中间用逗号隔开 2.方法体中调用会抛出异常的方法或者是先抛出一个异常:用throw new Exception() throw写在方法体里,表示“抛出异常”这个动作 3.如果某个方法调用了抛出异常的方法,那么必须添加try catch语句去尝试捕获这种异常, 或者添加声明,将异常抛出给更上一层的调用者进行处理 4.自定义异常: class 自定义异常类 extends 异常类型{} 上面的异常类型可以是Exception,也可以是其子类
    查看全部
  • return在try-catch-finally中: 1、不管有木有出现异常,finally块中代码都会执行; 2、当try和catch中有return时,finally仍然会执行; 3、finally是在return后面的表达式运算后执行的(此时并没有返回运算后的值,而是先把要返回的值保存起来,不管finally中的代码怎么样,返回的值都不会改变,仍然是之前保存的值),所以函数返回值是在finally执行前确定的; 4、finally中最好不要包含return,否则程序会提前退出,返回值不是try或catch中保存的返回值。 1.e.printStackTrace()可以输出异常信息 2.-1为抛出异常的习惯写法 3.如果方法中try,catch,finally中没有返回语句,则会调用这三个语句块之外的return结果 4.finally块无论如何,不管前面是正常还是异常,都要执行。 5.finally 在try中的return之后 在返回主调函数之前执行。
    查看全部
  • 异常处理: 一、try-catch(多catch块)-finally (1)try块:负责捕获异常,一旦try中发现异常,程序的控制权将被移交给catch块中的异常处理程序。【try语句块不可以独立存在,必须与 catch 或者 finally 块同存】 (2)catch块:如何处理?比如发出警告:提示、检查配置、网络连接,记录错误等。执行完catch块之后程序跳出catch块,继续执行后面的代码。 ·编写catch块的注意事项:多个catch块处理的异常类,要按照先catch子类后catch父类的处理方式,因为会【就近处理】异常(由上自下)。 (3)finally:最终执行的代码,用于关闭和释放资源等 ============================================================ 异常处理 try-catch以及try-catch-finally try{ //一些会抛出的异常 }catch(Exception e){ //处理该异常的代码块 }finally{ //最终要执行的代码 } 终止执行,交由异常处理程序(抛出提醒或记录日志等),异常代码块外代码正常执行。 try会抛出很多种类型的异常,多个catch块捕获多钟错误。 多重异常处理代码块顺序问题:先子类再父类(顺序不对也会提醒错误),finally语句块处理最终将要执行的代码 -----处理异常----- try-catch 以及 try-catch-finally catch顺序为从子类到父类 finally{ 最终将要执行的一些代码 }
    查看全部
  • 一、概念 1、异常:有异于常态,和正常情况不一样,有错误出现,阻止当前方法或作用域。 2、异常处理:将出现的异常提示给编程人员与用户,使原本将要中断的程序继续运行或者退出。并且能够保存数据和释放资源。 二、异常体系结构 1、所有异常都继承于Throwable类,其下有两大子类: (1)Error类:错误,一般编程人员不太接触,如虚拟机错误、线程死锁。硬伤:使程序崩溃 (2)Exception类:编码、环境、用户输入等问题,其子类主要有: a.非检查异常(运行时异常RuntimeException):[由java虚拟机自动捕获] 如:空指针NullPointer、越界ArrayIndexOutofBounds、错误类型转换ClassCast、 算数异常Arithmetic等 b.检查异常CheckException:[需要手动添加捕获和处理语句]IOException(文件异常)、 SQLException(SQL异常)
    查看全部
    0 采集 收起 来源:Java异常简介

    2017-02-20

  • /** * ==和equals:==比较的是引用地址,Object的equals底层也是调运的==; * 字符串重写了equals方法,字符串的equals比较的是字符串的value * 字符串是String类的一个实例,new String相当于开辟了一个新的内存地址,所以==肯定不相同 * 对于常量字符串,多次出现时会被编译器优化,只创建一个对象,堆内存中只初始化一次,后面的直接指向这个,所 * 以字符串常量是相同的 * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub String a = "xiexie"; String b = "xiexie"; System.out.println(a == b);//true String c = new String("xiexie"); System.out.println(a==c);//false System.out.println(a.equals(c));//true String d = "xie"+"xie"; System.out.println(a==d);//true }
    查看全部
  • set 不可以用get()方法遍历,只能用foreach 和iterator方法遍历
    查看全部
  • 1.泛型集合中的限定类型不能使用基本数据类型。 2、可以通过使用包装类限定允许存入的基本数据类型。
    查看全部
  • 泛型规定了某个集合值可以存放特定类型的对象
    查看全部
  • /** * 输入图书序号 */ private int chooseOrder(){ int bookIndex = 0; System.out.println("输入图书序号:"); Scanner scan = new Scanner(System.in); try { bookIndex = scan.nextInt(); return bookIndex ; } catch (Exception e) { System.out.println("命令输入错误!请根据提示输入数字命令!"); bookIndex = chooseOrder(); return bookIndex ; } } private boolean getBookByName(String[] books, String bookName) { for (String book : books) { if (bookName.equals(book)) { return true; } } return false; } private String getBookByIndex(String[] books, int index) { String book = null; if (books.length >= index) { book = books[index - 1]; } return book; } }
    查看全部
    0 采集 收起 来源:经验总结

    2018-03-22

  • import java.util.Scanner; /** * 模拟借书系统 * */ public class MainTest { public static void main(String[] args) { String[] books = { "数据结构", "高数", "线性代数" }; MainTest mt = new MainTest(); mt.findBook(books); } private void findBook(String[] books) { System.out.println("输入命令:1-按照名称查找图书;2-按照序号查找图书"); Scanner scan = new Scanner(System.in); int command = 0; try { command = scan.nextInt(); } catch (Exception e) { System.out.println("命令输入错误!请根据提示输入数字命令!"); findBook(books); } if (command == 1) { System.out.println("输入图书名称:"); String bookName = scan.next(); if (getBookByName(books, bookName)) { System.out.println("book:" + bookName); } else { System.out.println("图书不存在!"); findBook(books); } } else if (command == 2) { int bookIndex = chooseOrder(); String book = getBookByIndex(books, bookIndex); if (book != null && !book.equals("")) { System.out.println("book:" + book); } else { findBook(books); } } }
    查看全部
    0 采集 收起 来源:经验总结

    2018-03-22

举报

0/150
提交
取消
课程须知
此部分为 Java 课程的进阶内容,适合具有一定 Java 基础的伙伴们学习,如果您是新手,建议您移步 《Java入门第一季》 和 《Java入门第二季》,在理解并掌握面向对象相关知识后再回来进修。
老师告诉你能学到什么?
本课程将学习 Java 中的异常处理、集合框架、字符串、常用类等,逐步学习掌握 Java 高级技术。
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!