难道这样就够了吗?不,远远不够!
提前多熟悉阿里往年的面试题肯定是对面试有很大的帮助的,但是作为技术性职业,手里有实打实的技术才是你面对面试官最有用的利器,这是从内在散发出来的自信。
备战阿里时我花的最多的时间就是在学习技术上,占了我所有学习计划中的百分之70,这是一些我学习期间觉得还是很不错的一些学习笔记
我为什么要写这篇文章呢,其实我觉得学习是不能停下脚步的,在网络上和大家一起分享,一起讨论,不单单可以遇到更多一样的人,还可以扩大自己的眼界,学习到更多的技术,我还会在csdn、博客、掘金等网站上分享技术,这也是一种学习的方法。
今天就分享到这里了,谢谢大家的关注,以后会分享更多的干货给大家!
//运行时异常
public static void method() throws ArrayIndexOutOfBoundsException{
int[] arr = {1, 2, 3};
System.out.println(arr[3]);
}
}
![在这里插入图片描述](https://img-blog.csdnimg.cn/343db93be467413195bbb149484ca1f5.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5LiN5Lya5YaZ5Luj56CB55qE56iL5bqP,size_20,color_FFFFFF,t_70,g_se,x_16)
> 通过这个这个的运行结果可以看出来,并没有执行输出”结束“,因此throws处理异常并不是真正处理异常而是只是把这个异常抛出了,如果想要继续往下执行,那么需要对method继续使用try…catch,所以这仅仅时延迟了异常
[]( )3.总结
-----------------------------------------------------------------------
![在这里插入图片描述](https://img-blog.csdnimg.cn/05fda39b96854d37a18d397175b15e9c.png)
[]( )四、Throwable的成员方法
===================================================================================
![在这里插入图片描述](https://img-blog.csdnimg.cn/b11b78fc2a064db98fefbce51d228f8b.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5LiN5Lya5YaZ5Luj56CB55qE56iL5bqP,size_20,color_FFFFFF,t_70,g_se,x_16)
[]( )1、getMessage——用于输出异常的原因
------------------------------------------------------------------------------------------
package TEXT;
public class Demo {
public static void main(String[] args) {
System.out.println("开始");
int[] arr = {1, 2, 3};
try {
System.out.println(arr[3]);
}catch (Exception e){
// System.out.println(“数组索引出界”);
// e.printStackTrace();
System.out.println(e.getMessage());//异常的原因
}
System.out.println("结束");
}
}
![在这里插入图片描述](https://img-blog.csdnimg.cn/e9cd280fecd74da9bb271b22060eb39f.png)
[]( )2、toString——用于输出异常的类名以及异常原因
----------------------------------------------------------------------------------------------
package TEXT;
public class Demo {
public static void main(String[] args) {
System.out.println("开始");
int[] arr = {1, 2, 3};
try {
System.out.println(arr[3]);
}catch (Exception e){
// System.out.println(“数组索引出界”);
// e.printStackTrace();
// System.out.println(e.getMessage());//异常的原因
System.out.println(e.toString());//异常类名以及异常原因
}
System.out.println("结束");
}
}
![在这里插入图片描述](https://img-blog.csdnimg.cn/ef47ce64d75347efa50c4c18c28a5dd7.png)
[]( )3、printStackTrace——把异常信息输出
---------------------------------------------------------------------------------------------
package TEXT;
public class Demo {
public static void main(String[] args) {
System.out.println("开始");
int[] arr = {1, 2, 3};
try {
System.out.println(arr[3]);
}catch (Exception e){
// System.out.println(“数组索引出界”);
e.printStackTrace();//把异常信息输出
// System.out.println(e.getMessage());//异常的原因
// System.out.println(e.toString());//异常类名以及异常原因
}
System.out.println("结束");
}
}
![在这里插入图片描述](https://img-blog.csdnimg.cn/02fa534405674fc7ba107214b72b0906.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5LiN5Lya5YaZ5Luj56CB55qE56iL5bqP,size_20,color_FFFFFF,t_70,g_se,x_16)
[]( )五、编译异常与运行异常
==============================================================================
> JAVA中的异常被分为两大类:编译异常和运行异常,也被称为受检异常和非受检异常
> **所有的RuntimeException类及其子类被称为运行时异常,其他的异常都是编译时异常**
> * 编译时异常:必须显示处理,否则程序就会发生错误,无法通过编译
> * 运行时异常:无需显示处理,也可以和编译时异常一样处理
package TEXT;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Demo_1 {
public static void main(String[] args) {
method();
method2();
}
//运行时异常
public static void method(){
try {
int[] arr = {1, 2, 3};
System.out.println(arr[3]);
}catch (Exception e){
e.printStackTrace();
}
}
//编译时异常
public static void method2(){
try {
String s = "2020-09-01";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date d = sdf.parse(s);//这里报错只是为了说可能有异常
System.out.println(d);
}catch (ParseException e){
e.printStackTrace();
}
}
}
![在这里插入图片描述](https://img-blog.csdnimg.cn/6915f7f60c614393ad66d37886657f35.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5LiN5Lya5YaZ5Luj56CB55qE56iL5bqP,size_20,color_FFFFFF,t_70,g_se,x_16)
[]( )六、自定义异常
==========================================================================
> 在我们编写程序的时候,会遇到各种各样的异常,但是,并不是所有的异常都是JAVA实现封装成对象的,因此自定义异常的作用就出来了,在自定义异常类中通过编写新的方法来处理相关异常
> 那么我们怎么创建属于自己的异常呢?
> 我们只需要在建立异常的时候,继承Exception或者RuntimeException即可
![在这里插入图片描述](https://img-blog.csdnimg.cn/3ce49cc2289e4102995b9adf07e11fc1.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5LiN5Lya5YaZ5Luj56CB55qE56iL5bqP,size_20,color_FFFFFF,t_70,g_se,x_16)
package TEXT_1;
/*
自定义分数异常
*/
public class ScoreException extends Exception{
public ScoreException() {
}
public ScoreException(String message) {
super(message);
}
}
package TEXT_1;
/*
老师对象类
*/
public class Teacher {
public void checkScore(int score) throws ScoreException{
if (score < 0 || score > 100){
// throw new ScoreException();//抛出自定义异常对象,但是一般不给空
throw new ScoreException("你给的分数有误,应该给0~100!!!");
}else {
System.out.println("分数正常");
}
}
}
package TEXT_1;
/*
测试类
*/
import java.util.Scanner;
public class TeacherTest {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入分数:");
int score = sc.nextInt();
Teacher t = new Teacher();
//checkScore方法抛出一个异常,而这个异常继承的时Exception,所有这个时一个编译时异常
try {
t.checkScore(score);
} catch (ScoreException e) {
e.printStackTrace();
}
最后
小编利用空余时间整理了一份《MySQL性能调优手册》,初衷也很简单,就是希望能够帮助到大家,减轻大家的负担和节省时间。
关于这个,给大家看一份学习大纲(PDF)文件,每一个分支里面会有详细的介绍。
这里都是以图片形式展示介绍,如要下载原文件以及更多的性能调优笔记(MySQL+Tomcat+JVM)!
printStackTrace();
}
最后
小编利用空余时间整理了一份《MySQL性能调优手册》,初衷也很简单,就是希望能够帮助到大家,减轻大家的负担和节省时间。
关于这个,给大家看一份学习大纲(PDF)文件,每一个分支里面会有详细的介绍。
[外链图片转存中…(img-GOgRjIOp-1715566274928)]
这里都是以图片形式展示介绍,如要下载原文件以及更多的性能调优笔记(MySQL+Tomcat+JVM)!