| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1,5 +1,6 @@ | |||
| 1 | 1 | # Table of Contents | |
| 2 | 2 | ||
| 3 | + * [目录](#目录) | ||
| 3 | 4 | * [为什么要使用异常](#为什么要使用异常) | |
| 4 | 5 | * [异常基本定义](#异常基本定义) | |
| 5 | 6 | * [异常体系](#异常体系) | |
@@ -20,13 +21,29 @@ | |||
| 20 | 21 | * [个人公众号:黄小斜](#个人公众号:黄小斜) | |
| 21 | 22 | ||
| 22 | 23 | ||
| 24 | + # 目录 | ||
| 25 | + | ||
| 26 | + * [为什么要使用异常](#为什么要使用异常) | ||
| 27 | + * [异常基本定义](#异常基本定义) | ||
| 28 | + * [异常体系](#异常体系) | ||
| 29 | + * [初识异常](#初识异常) | ||
| 30 | + * [异常和错误](#异常和错误) | ||
| 31 | + * [异常的处理方式](#异常的处理方式) | ||
| 32 | + * ["不负责任"的throws](#不负责任的throws) | ||
| 33 | + * [纠结的finally](#纠结的finally) | ||
| 34 | + * [throw : JRE也使用的关键字](#throw--jre也使用的关键字) | ||
| 35 | + * [异常调用链](#异常调用链) | ||
| 36 | + * [自定义异常](#自定义异常) | ||
| 37 | + * [异常的注意事项](#异常的注意事项) | ||
| 38 | + * [当finally遇上return](#当finally遇上return) | ||
| 39 | + * [JAVA异常常见面试题](#java异常常见面试题) | ||
| 40 | + * [参考文章](#参考文章) | ||
| 41 | + * [微信公众号](#微信公众号) | ||
| 42 | + * [Java技术江湖](#java技术江湖) | ||
| 43 | + * [个人公众号:黄小斜](#个人公众号:黄小斜) | ||
| 44 | + | ||
| 23 | 45 | --- | |
| 24 | - title: 夯实Java基础系列10:深入理解Java中的异常体系 | ||
| 25 | - date: 2019-9-10 15:56:26 # 文章生成时间,一般不改 | ||
| 26 | - categories: | ||
| 27 | - - Java技术江湖 | ||
| 28 | - - Java基础 | ||
| 29 | - tags: | ||
| 46 | + | ||
| 30 | 47 | - Java异常 | |
| 31 | 48 | --- | |
| 32 | 49 | ||
@@ -136,8 +153,9 @@ Throwable又派生出Error类和Exception类。 | |||
| 136 | 153 | // at com.javase.异常.异常.devide(异常.java:24) | |
| 137 | 154 | // at com.javase.异常.异常.CMDCalculate(异常.java:19) | |
| 138 | 155 | // at com.javase.异常.异常.main(异常.java:12) | |
| 139 | - | ||
| 140 | - | ||
| 156 | + | ||
| 157 | + | ||
| 158 | + | ||
| 141 | 159 | // ----欢迎使用命令行除法计算器---- | |
| 142 | 160 | // r | |
| 143 | 161 | // Exception in thread "main" java.util.InputMismatchException | |
@@ -234,7 +252,7 @@ Throwable又派生出Error类和Exception类。 | |||
| 234 | 252 | //close方法会抛出IOException | |
| 235 | 253 | fileIn.close(); | |
| 236 | 254 | } | |
| 237 | - | ||
| 255 | + | ||
| 238 | 256 | 一般情况下的处理方式 try catch finally | |
| 239 | 257 | ||
| 240 | 258 | public class 异常处理方式 { | |
@@ -362,7 +380,7 @@ finally块不管异常是否发生,只要对应的try执行了,则它一定 | |||
| 362 | 380 | } | |
| 363 | 381 | } | |
| 364 | 382 | } | |
| 365 | - | ||
| 383 | + | ||
| 366 | 384 | ## throw : JRE也使用的关键字 | |
| 367 | 385 | ||
| 368 | 386 | throw exceptionObject | |
@@ -475,7 +493,7 @@ throw 语句必须写在函数中,执行throw 语句的地方就是一个异 | |||
| 475 | 493 | // at com.javase.异常.异常链.A(异常链.java:16) | |
| 476 | 494 | // ... 31 more | |
| 477 | 495 | } | |
| 478 | - | ||
| 496 | + | ||
| 479 | 497 | ## 自定义异常 | |
| 480 | 498 | ||
| 481 | 499 | 如果要自定义异常类,则扩展Exception类即可,因此这样的自定义异常都属于检查异常(checked exception)。如果要自定义非检查异常,则扩展自RuntimeException。 | |
@@ -512,7 +530,7 @@ throw 语句必须写在函数中,执行throw 语句的地方就是一个异 | |||
| 512 | 530 | super(cause); | |
| 513 | 531 | } | |
| 514 | 532 | } | |
| 515 | - | ||
| 533 | + | ||
| 516 | 534 | ## 异常的注意事项 | |
| 517 | 535 | ||
| 518 | 536 | 异常的注意事项 | |
@@ -675,7 +693,7 @@ finally中的return 会覆盖 try 或者catch中的返回值。 | |||
| 675 | 693 | return 2; | |
| 676 | 694 | } | |
| 677 | 695 | } | |
| 678 | - | ||
| 696 | + | ||
| 679 | 697 | finally中的return会抑制(消灭)前面try或者catch块中的异常 | |
| 680 | 698 | ||
| 681 | 699 | class TestException | |
@@ -771,7 +789,7 @@ finally中的异常会覆盖(消灭)前面try或者catch中的异常 | |||
| 771 | 789 | ||
| 772 | 790 | } | |
| 773 | 791 | } | |
| 774 | - | ||
| 792 | + | ||
| 775 | 793 | 上面的3个例子都异于常人的编码思维,因此我建议: | |
| 776 | 794 | ||
| 777 | 795 | > 不要在fianlly中使用return。 | |
@@ -884,3 +902,4 @@ https://blog.csdn.net/michaelgo/article/details/82790253 | |||
| 884 | 902 | **程序员3T技术学习资源:** 一些程序员学习技术的资源大礼包,关注公众号后,后台回复关键字 **“资料”** 即可免费无套路获取。 | |
| 885 | 903 | ||
| 886 | 904 |  | |
| 905 | + | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1,3 +1,38 @@ | |||
| 1 | + # Table of Contents | ||
| 2 | + | ||
| 3 | + * [Java面向对象三大特性(基础篇)](#java面向对象三大特性(基础篇)) | ||
| 4 | + * [对象的概念](#对象的概念) | ||
| 5 | + * [面向对象和面向过程的区别](#面向对象和面向过程的区别) | ||
| 6 | + * [面向对象的三大核心特性简介](#面向对象的三大核心特性简介) | ||
| 7 | + * [面向对象编程三大特性详解](#面向对象编程三大特性详解) | ||
| 8 | + * [一、继承](#一、继承) | ||
| 9 | + * [1、继承的概念](#1、继承的概念) | ||
| 10 | + * [2、继承的好处](#2、继承的好处) | ||
| 11 | + * [3、语法规则](#3、语法规则) | ||
| 12 | + * [A、方法的重写](#a、方法的重写) | ||
| 13 | + * [B、继承的初始化顺序](#b、继承的初始化顺序) | ||
| 14 | + * [C、final关键字](#c、final关键字) | ||
| 15 | + * [D、super关键字](#d、super关键字) | ||
| 16 | + * [二、封装](#二、封装) | ||
| 17 | + * [1、封装的概念](#1、封装的概念) | ||
| 18 | + * [2、封装的优点](#2、封装的优点) | ||
| 19 | + * [3、封装的实现步骤](#3、封装的实现步骤) | ||
| 20 | + * [A、访问修饰符](#a、访问修饰符) | ||
| 21 | + * [B、this关键字](#b、this关键字) | ||
| 22 | + * [C、Java 中的内部类](#c、java-中的内部类) | ||
| 23 | + * [三、多态](#三、多态) | ||
| 24 | + * [1、多态的概念](#1、多态的概念) | ||
| 25 | + * [2、多态的好处](#2、多态的好处) | ||
| 26 | + * [3、Java中的多态](#3、java中的多态) | ||
| 27 | + * [A、引用多态 ](#a、引用多态 ) | ||
| 28 | + * [B、方法多态](#b、方法多态) | ||
| 29 | + * [C、引用类型转换](#c、引用类型转换) | ||
| 30 | + * [参考文章](#参考文章) | ||
| 31 | + * [微信公众号](#微信公众号) | ||
| 32 | + * [Java技术江湖](#java技术江湖) | ||
| 33 | + * [个人公众号:黄小斜](#个人公众号:黄小斜) | ||
| 34 | + | ||
| 35 | + | ||
| 1 | 36 | 点击关注[公众号](#公众号)及时获取笔主最新更新文章,并可免费领取Java工程师必备学习资源。 | |
| 2 | 37 | ||
| 3 | 38 | * [Java面向对象三大特性(基础篇)](#java面向对象三大特性(基础篇)) | |
@@ -704,4 +739,4 @@ https://blog.csdn.net/android_hl/article/details/53228348 | |||
| 704 | 739 | ||
| 705 | 740 | **程序员3T技术学习资源:** 一些程序员学习技术的资源大礼包,关注公众号后,后台回复关键字 **“资料”** 即可免费无套路获取。 | |
| 706 | 741 | ||
| 707 | -  | ||
| 742 | +  | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1,5 +1,6 @@ | |||
| 1 | 1 | # Table of Contents | |
| 2 | 2 | ||
| 3 | + * [目录](#目录) | ||
| 3 | 4 | * [Java 基本数据类型](#java-基本数据类型) | |
| 4 | 5 | * [Java 的两大数据类型:](#java-的两大数据类型) | |
| 5 | 6 | * [内置数据类型](#内置数据类型) | |
@@ -19,16 +20,27 @@ | |||
| 19 | 20 | * [个人公众号:黄小斜](#个人公众号:黄小斜) | |
| 20 | 21 | ||
| 21 | 22 | ||
| 22 | - --- | ||
| 23 | - title: 夯实Java基础系列2:Java自动拆装箱里隐藏的秘密 | ||
| 24 | - date: 2019-9-2 15:56:26 # 文章生成时间,一般不改 | ||
| 25 | - categories: | ||
| 26 | - - Java技术江湖 | ||
| 27 | - - Java基础 | ||
| 28 | - tags: | ||
| 29 | - - Java基本数据类型 | ||
| 23 | + # 目录 | ||
| 24 | + | ||
| 25 | + * [Java 基本数据类型](#java-基本数据类型) | ||
| 26 | + * [Java 的两大数据类型:](#java-的两大数据类型) | ||
| 27 | + * [内置数据类型](#内置数据类型) | ||
| 28 | + * [引用类型](#引用类型) | ||
| 29 | + * [Java 常量](#java-常量) | ||
| 30 | + * [自动拆箱和装箱(详解)](#自动拆箱和装箱(详解)) | ||
| 31 | + * [实现](#实现) | ||
| 32 | + * [自动装箱与拆箱中的“坑”](#自动装箱与拆箱中的坑) | ||
| 33 | + * [了解基本类型缓存(常量池)的最佳实践](#了解基本类型缓存(常量池)的最佳实践) | ||
| 34 | + * [总结:](#总结:) | ||
| 35 | + * [基本数据类型的存储方式](#基本数据类型的存储方式) | ||
| 36 | + * [存在栈中](#存在栈中) | ||
| 37 | + * [存在堆里](#存在堆里) | ||
| 38 | + * [参考文章](#参考文章) | ||
| 39 | + * [微信公众号](#微信公众号) | ||
| 40 | + * [Java技术江湖](#java技术江湖) | ||
| 41 | + * [个人公众号:黄小斜](#个人公众号:黄小斜) | ||
| 42 | + | ||
| 30 | 43 | ||
| 31 | - --- | ||
| 32 | 44 | ||
| 33 | 45 | 本系列文章将整理到我在GitHub上的《Java面试指南》仓库,更多精彩内容请到我的仓库里查看 | |
| 34 | 46 | > https://github.com/h2pl/Java-Tutorial | |
@@ -43,7 +55,7 @@ tags: | |||
| 43 | 55 | ||
| 44 | 56 | 如果对本系列文章有什么建议,或者是有什么疑问的话,也可以关注公众号【Java技术江湖】联系作者,欢迎你参与本系列博文的创作和修订。 | |
| 45 | 57 | ||
| 46 | - [TOC] | ||
| 58 | + | ||
| 47 | 59 | ||
| 48 | 60 | ||
| 49 | 61 | <!-- more --> | |
@@ -273,8 +285,8 @@ Java 5增加了自动装箱与自动拆箱机制,方便基本类型与包装 | |||
| 273 | 285 | Double localDouble = Double.valueOf(12.4D); | |
| 274 | 286 | double d = localDouble.doubleValue(); | |
| 275 | 287 | | |
| 276 | - } | ||
| 277 | - } | ||
| 288 | + } | ||
| 289 | + } | ||
| 278 | 290 | ||
| 279 | 291 | 我们可以看到经过javac编译之后,code1的代码被转换成了code2,实际运行时,虚拟机运行的就是code2的代码。也就是说,虚拟机根本不知道有自动拆箱和自动装箱这回事;在将Java源文件编译为class文件的过程中,javac编译器在自动装箱的时候,调用了Integer.valueOf()方法,在自动拆箱时,又调用了intValue()方法。我们可以看到,double和Double也是如此。 | |
| 280 | 292 | 实现总结:其实自动装箱和自动封箱是编译器为我们提供的一颗语法糖。在自动装箱时,编译器调用包装类型的valueOf()方法;在自动拆箱时,编译器调用了相应的xxxValue()方法。 | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1,5 +1,6 @@ | |||
| 1 | - # 目录 | ||
| 1 | + # Table of Contents | ||
| 2 | 2 | ||
| 3 | + * [目录](#目录) | ||
| 3 | 4 | * [string基础](#string基础) | |
| 4 | 5 | * [Java String 类](#java-string-类) | |
| 5 | 6 | * [创建字符串](#创建字符串) | |
@@ -32,16 +33,40 @@ | |||
| 32 | 33 | * [个人公众号:黄小斜](#个人公众号:黄小斜) | |
| 33 | 34 | ||
| 34 | 35 | ||
| 35 | - --- | ||
| 36 | - title: 夯实Java基础系列3:一文搞懂String常见面试题,从基础到实战,更有原理分析和源码解析! | ||
| 37 | - date: 2019-9-3 15:56:26 # 文章生成时间,一般不改 | ||
| 38 | - categories: | ||
| 39 | - - Java技术江湖 | ||
| 40 | - - Java基础 | ||
| 41 | - tags: | ||
| 42 | - - String | ||
| 36 | + # 目录 | ||
| 37 | + | ||
| 38 | + * [string基础](#string基础) | ||
| 39 | + * [Java String 类](#java-string-类) | ||
| 40 | + * [创建字符串](#创建字符串) | ||
| 41 | + * [StringDemo.java 文件代码:](#stringdemojava-文件代码:) | ||
| 42 | + * [String基本用法](#string基本用法) | ||
| 43 | + * [创建String对象的常用方法](#创建string对象的常用方法) | ||
| 44 | + * [String中常用的方法,用法如图所示,具体问度娘](#string中常用的方法,用法如图所示,具体问度娘) | ||
| 45 | + * [三个方法的使用: lenth() substring() charAt()](#三个方法的使用:-lenth---substring---charat) | ||
| 46 | + * [字符串与byte数组间的相互转换](#字符串与byte数组间的相互转换) | ||
| 47 | + * [==运算符和equals之间的区别:](#运算符和equals之间的区别:) | ||
| 48 | + * [字符串的不可变性](#字符串的不可变性) | ||
| 49 | + * [String的连接](#string的连接) | ||
| 50 | + * [String、String builder和String buffer的区别](#string、string-builder和string-buffer的区别) | ||
| 51 | + * [String类的源码分析](#string类的源码分析) | ||
| 52 | + * [String类型的intern](#string类型的intern) | ||
| 53 | + * [String类型的equals](#string类型的equals) | ||
| 54 | + * [StringBuffer和Stringbuilder](#stringbuffer和stringbuilder) | ||
| 55 | + * [append方法](#append方法) | ||
| 56 | + * [扩容](#扩容) | ||
| 57 | + * [](#) | ||
| 58 | + * [删除](#删除) | ||
| 59 | + * [system.arraycopy方法](#systemarraycopy方法) | ||
| 60 | + * [String和JVM的关系](#string和jvm的关系) | ||
| 61 | + * [String为什么不可变?](#string为什么不可变?) | ||
| 62 | + * [不可变有什么好处?](#不可变有什么好处?) | ||
| 63 | + * [String常用工具类](#string常用工具类) | ||
| 64 | + * [参考文章](#参考文章) | ||
| 65 | + * [微信公众号](#微信公众号) | ||
| 66 | + * [Java技术江湖](#java技术江湖) | ||
| 67 | + * [个人公众号:黄小斜](#个人公众号:黄小斜) | ||
| 68 | + | ||
| 43 | 69 | ||
| 44 | - --- | ||
| 45 | 70 | ||
| 46 | 71 | 本系列文章将整理到我在GitHub上的《Java面试指南》仓库,更多精彩内容请到我的仓库里查看 | |
| 47 | 72 | > https://github.com/h2pl/Java-Tutorial | |
@@ -56,7 +81,7 @@ tags: | |||
| 56 | 81 | ||
| 57 | 82 | 如果对本系列文章有什么建议,或者是有什么疑问的话,也可以关注公众号【Java技术江湖】联系作者,欢迎你参与本系列博文的创作和修订。 | |
| 58 | 83 | ||
| 59 | - [TOC] | ||
| 84 | + | ||
| 60 | 85 | ||
| 61 | 86 | <!-- more --> | |
| 62 | 87 | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1,5 +1,6 @@ | |||
| 1 | - # 目录 | ||
| 1 | + # Table of Contents | ||
| 2 | 2 | ||
| 3 | + * [目录](#目录) | ||
| 3 | 4 | * [final使用](#final使用) | |
| 4 | 5 | * [final变量](#final变量) | |
| 5 | 6 | * [final修饰基本数据类型变量和引用](#final修饰基本数据类型变量和引用) | |
@@ -22,15 +23,30 @@ | |||
| 22 | 23 | * [Java技术江湖](#java技术江湖) | |
| 23 | 24 | * [个人公众号:黄小斜](#个人公众号:黄小斜) | |
| 24 | 25 | ||
| 25 | - --- | ||
| 26 | - title: 夯实Java基础系列4:一文了解final关键字的特性、使用方法,以及实现原理 | ||
| 27 | - date: 2019-9-4 15:56:26 # 文章生成时间,一般不改 | ||
| 28 | - categories: | ||
| 29 | - - Java技术江湖 | ||
| 30 | - - Java基础 | ||
| 31 | - tags: | ||
| 32 | - - final | ||
| 33 | - --- | ||
| 26 | + | ||
| 27 | + # 目录 | ||
| 28 | + | ||
| 29 | + * [final使用](#final使用) | ||
| 30 | + * [final变量](#final变量) | ||
| 31 | + * [final修饰基本数据类型变量和引用](#final修饰基本数据类型变量和引用) | ||
| 32 | + * [final类](#final类) | ||
| 33 | + * [final关键字的知识点](#final关键字的知识点) | ||
| 34 | + * [final关键字的最佳实践](#final关键字的最佳实践) | ||
| 35 | + * [final的用法](#final的用法) | ||
| 36 | + * [关于空白final](#关于空白final) | ||
| 37 | + * [final内存分配](#final内存分配) | ||
| 38 | + * [使用final修饰方法会提高速度和效率吗](#使用final修饰方法会提高速度和效率吗) | ||
| 39 | + * [使用final修饰变量会让变量的值不能被改变吗;](#使用final修饰变量会让变量的值不能被改变吗;) | ||
| 40 | + * [如何保证数组内部不被修改](#如何保证数组内部不被修改) | ||
| 41 | + * [final方法的三条规则](#final方法的三条规则) | ||
| 42 | + * [final 和 jvm的关系](#final-和-jvm的关系) | ||
| 43 | + * [写 final 域的重排序规则](#写-final-域的重排序规则) | ||
| 44 | + * [读 final 域的重排序规则](#读-final-域的重排序规则) | ||
| 45 | + * [如果 final 域是引用类型](#如果-final-域是引用类型) | ||
| 46 | + * [参考文章](#参考文章) | ||
| 47 | + * [微信公众号](#微信公众号) | ||
| 48 | + * [Java技术江湖](#java技术江湖) | ||
| 49 | + * [个人公众号:黄小斜](#个人公众号:黄小斜) | ||
| 34 | 50 | ||
| 35 | 51 | 本系列文章将整理到我在GitHub上的《Java面试指南》仓库,更多精彩内容请到我的仓库里查看 | |
| 36 | 52 | > https://github.com/h2pl/Java-Tutorial | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1,5 +1,6 @@ | |||
| 1 | 1 | # Table of Contents | |
| 2 | 2 | ||
| 3 | + * [目录](#目录) | ||
| 3 | 4 | * [Java中的包概念](#java中的包概念) | |
| 4 | 5 | * [包的作用](#包的作用) | |
| 5 | 6 | * [package 的目录结构](#package-的目录结构) | |
@@ -20,13 +21,28 @@ | |||
| 20 | 21 | * [个人公众号:黄小斜](#个人公众号:黄小斜) | |
| 21 | 22 | ||
| 22 | 23 | ||
| 24 | + # 目录 | ||
| 25 | + | ||
| 26 | + * [Java中的包概念](#java中的包概念) | ||
| 27 | + * [包的作用](#包的作用) | ||
| 28 | + * [package 的目录结构](#package-的目录结构) | ||
| 29 | + * [设置 CLASSPATH 系统变量](#设置-classpath-系统变量) | ||
| 30 | + * [常用jar包](#常用jar包) | ||
| 31 | + * [java软件包的类型](#java软件包的类型) | ||
| 32 | + * [dt.jar](#dtjar) | ||
| 33 | + * [rt.jar](#rtjar) | ||
| 34 | + * [*.java文件的奥秘](#java文件的奥秘) | ||
| 35 | + * [*.Java文件简介](#java文件简介) | ||
| 36 | + * [为什么一个java源文件中只能有一个public类?](#为什么一个java源文件中只能有一个public类?) | ||
| 37 | + * [Main方法](#main方法) | ||
| 38 | + * [外部类的访问权限](#外部类的访问权限) | ||
| 39 | + * [Java包的命名规则](#java包的命名规则) | ||
| 40 | + * [参考文章](#参考文章) | ||
| 41 | + * [微信公众号](#微信公众号) | ||
| 42 | + * [Java技术江湖](#java技术江湖) | ||
| 43 | + * [个人公众号:黄小斜](#个人公众号:黄小斜) | ||
| 44 | + | ||
| 23 | 45 | --- | |
| 24 | - title: 夯实Java基础系列5:Java文件和Java包结构 | ||
| 25 | - date: 2019-9-5 15:56:26 # 文章生成时间,一般不改 | ||
| 26 | - categories: | ||
| 27 | - - Java技术江湖 | ||
| 28 | - - Java基础 | ||
| 29 | - tags: | ||
| 30 | 46 | - Java类 | |
| 31 | 47 | --- | |
| 32 | 48 | ||
| Back | FazBrowse Home | New Git URL |
0 commit comments