7月17号笔记

7月17日笔记

今天的主要内容:

  • 数据类型的包装类
  • 异常处理机制

1. 数据类型包装类

A. 基本类型
  • byte Byte
  • short Short
  • long Long
  • char Character
  • int Integer
  • double Double
  • boolean Boolean
  • void Void
B. 相关操作(Integer为例)
  • 装箱

    • Integer numObj = new Integer(500); //装箱
    • Integer numObj2 = 5; //自动装箱
  • 拆箱

    • int num = numObj; //拆箱
    • int num = numObj.intValue();
  • 测试toString()和parseInt()

    • Integer类中重写了toString()方法

         String numStr = numObj.toString();
         System.out.println(numStr);
         //输出结果为500
      
    • Integer类中的parsrInt()方法
      System.out.println(Integer.parseInt(numStr));
      //输出结果为:500

  • 测试Integer.valueOf()

    • System.out.ptintln(Integer.valueOf("123456"));
      • 输出结果为123456
    • 此时涉及到自动装箱知识的理解
  • 自动装箱的理解

      Integer n1 = 5;
      Integer n2 = 5;
      
      System.out.println(n1==n2);   //true;
      
      Integer n4 = 500;
      Integer n3 = 500;
      
      System.out.println(n3==n4);   //false       
    
      Integer n5 = 50;
      Integer n6 = new Integer(50);
      
      System.out.println(n5==n6);   //false;  
    
      /*
          自动装箱的理解:
              Integer n1 = 5;
              Integer n2 = 5;
                  ·此时实际原理为:Integer n1 = Integer.valueOf(5);
                  ·而valueOf方法对于-128 到 127之间的数值进行装箱后返回一个Integer对象。
                  ·因此同一数字5在valueOf方法作用下被返回同一Integer对象,这就是为什么n1==n2正确  
                  
          而对于
              Integer n3 = 500;
              Integer n4 = 500;       
                  ·此时不在-128 到 127之间,所以Integer n3 = new Integer(500);
                  ·因此n3==n4不正确,n3和n4不是同一对象
          同理我们可以理解
              Integer n5 = 50;
              Integer n6 = new Integer(50);
                  ·此时,n5通过Integer.valueOf(50)返回一个存在缓存中的Integer对象
                  ·而n6的Integer是new出来的,因此n5和n6并不是同一对象的引用           
      */          
    

2. 异常(Exception)

A. 异常分类

  • 异常对象都派生于Throwable类的一个实例,多有一场都继承于Throwable

  • Throwable又分为:Error和Exception

    • Error和Exception的区别:
      • Error类描述了Java运行时系统内部错误和资源耗尽错误,JVM引起的。
      • Exception分为:RuntimeException和其他异常。
  • RuntimeException

    • RuntimeException异常为非受查的异常,可不处理的异常,一般人为的异常
    • 常见的RuntimeException异常有:
      • ArrayOutOfBoundsException异常
      • NullPointerException异常
      • ArithmeticException异常
  • 除RuntimeException以外的异常

    • 必须要进行异常处理

B. 异常处理机制try-catch-finally

  1. try-catch执行顺序问题:

    • 在try语句块中的任何代码抛出了一个在catch子句中声明的异常类,即

      ①程序将跳过try语句块的其余代码

      ②程序将执行catch子句中的处理器代码

      ③最后执行finally子句中的代码

    • 在try中没有异常,则执行完try后,再执行finally中的代码

  2. finally中return语句对try中return的影响

     public class TestFinally{
         public static void main(String[] args){
             int n = 500;
             
             System.out.println("初值为:" + n);
             
             n = test();
             System.out.println("调用test()方法后:n = " + n);
         
             System.out.println("此输出证明:若finally子句中也有一个return语句,则此时返回值会覆盖原始的try中的返回值");
         
             System.out.println("===============异常信息的获取===============");
             try{
                 throw new Exception("抛出异常");
             }
             catch(Exception e){
                 System.out.println("e.getClass().getName() : " + e.getClass().getName());
                 System.out.println("e.getMessage() : " + e.getMessage());
             }
         }
    
         public static int test(){
             
             System.out.println("=======test()方法执行中=======");
             try{    
                 System.out.println("我是try中第一条语句,我没有异常");        
                 return 0;
             }   
             finally{
                 System.out.println("此输出证明try语句中的return语句执行前会首先执行finally,然后再return");    
                         
                 return 3;
             }
         }
     }
     /*
         初值为:500
    
         =======test()方法执行中=======
         我是try中第一条语句,我没有异常
         此输出证明try语句中的return语句执行前会首先执行finally,然后再return
    
         调用test()方法后:n = 3
         此输出证明:若finally子句中也有一个return语句,则此时返回值会覆盖原始的try中的返回值
    
         ===============异常信息的获取===============
         e.getClass().getName() : java.lang.Exception
         e.getMessage() : 抛出异常
     */
    
  3. throw和throws区别

    • throw手动抛出一个异常
    • throws用在方法声明处,声明在方法上抛出一个异常,本方法的调用方法负责处理异常
  1. 异常信息获取的常见函数

    • e.printStackTrace();
    • e.getMessage(); ---错误信息
    • e.getClass().getName(); ---异常名称
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,752评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,100评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,244评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,099评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,210评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,307评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,346评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,133评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,546评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,849评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,019评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,702评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,331评论 3 319
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,030评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,260评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,871评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,898评论 2 351

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,605评论 18 399
  • 50道经典Java编程练习题,将数学思维运用到编程中来。抱歉哈找不到文章的原贴了,有冒犯的麻烦知会声哈~ 1.指数...
    OSET我要编程阅读 6,956评论 0 9
  • 更换了一个空间, 把节奏调得很慢, 突然有些茫然, 原来理想中期待的日子, 并非我心底真正的惦念! 调整好了的时间...
    秀秀王子阅读 104评论 0 0
  • 张宿 霸道指数:70% 张宿男外表豪放, 内心高傲,个性顽固刚愎。 对待爱人忽冷忽热, 但善说甜言蜜语, 很懂得讨...
    老粽子阅读 16,580评论 4 0
  • 昨天看书看到的喜欢的句子,摘抄在这里: 1 不是因为困难才不去做,而是因为不去做才困难。 2 你所认为的墙壁,实质...
    答案就在你心里28阅读 250评论 0 0