异常

  指的是程序在执行过程中,出现的非正常情况,最终会导致JVM的非正常停止

异常分类:编译异常,运行期异常

异常的产生过程分析

throw关键字:指方法中抛出指定异常

使用格式:throw new xxxException();

注意:1.必须写在方法内部2.new的对象必须是Exception或是Exception子类对象3.throw关键字抛出这个异常,我们就必须处理这个异常

Objects非空判断

  Objects.requireNonNull(对象,信息)

throws关键字:异常处理的第一种方式,交给别人处理

注意:1.必须写在方法声明处2.声明的异常必须是Exception或是Exception子类

try...cash格式

  try{}cash{}

可以使用多个cash处理异常,子类异常要放在父类异常的上面

finally语句块:无论程序有无异常发生,都会执行fianlly语句块

注意:1.不能单独使用,要和try一起使用

子父类异常:父类异常是什么样,子类异常就什么样

Throwable定义了3个异常处理的方法

  String getMessage()  返回次Throwable简短描述

  String toString()  返回次Throwable的详细信息字符串

  void printStackTrace()  JVM打印异常对象信息,全面。

自定义异常类

  public class xxxException extends Exception{

   添加一个无参数的构造方法,

     添加一个带异常信息的构造方法 

  }

多线程:效率高,多个线程之间互不影响

  并发:同一时间段发生,(交替执行)

  并行:同一时刻发生,(同时执行)

  进程:指一个内存中运行的应用程序

  线程:是进程的执行单元

  一个程序运行后有一个进程,一个进程可以有多个线程

线程调度

  分时调度:所有线程轮流使用CPU使用权,平均分配每个线程占用cpu时间

  抢占式调度:优先让优先级高的线程使用CPU

多线程原理

多线程内存分析图

主线程:执行主方法的线程

创建多线程的第一种方式

  1.创建Thread类的子类

  2.重写Thread类的run方法

  3.创建Thread类子类对象

  4.调用Thread的start方法

常用方法

  getName()  获取该线程名称

  currentThread()  返回当前正在执行的线程对象的引用

设置线程的名称

  1.setName()

  2.创建一个带参数的构造方法,参数传递线程名称,调用父类的带参构造方法,把线程名称传递给父类,让父类给子类起一个名字

Runanble接口

  1.创建一个Runable接口的实现类

  2.重写run方法

  3.创建一个Runable接口的实现类对象

  4.创建一个Thread类对象,传递参数为Runable接口实现类对象

  5.调用Thread类中的start方法

好处:1.避免了单继承的局限性2.增强了程序的扩展性,降低了程序的耦合性

匿名内部类实现进程创建

  格式

    new 父类/接口(){

      重写父类/接口方法;

    }

java-day13的更多相关文章

  1. java - day13 - UnionPay

    银行功能实现,主要为抽象类及接口的运用 package com.javatest.bankimple; /* UnionPay */ //银联接口 public interface UnionPay ...

  2. 尚学堂 JAVA Day13 abstract 关键字

    Abstract (抽象的) 这是一个关键字. 可以且只可以 用来修饰 <类> <方法>. 1---Abstract 类 如:Animal,可以被理解一个抽象的类.动物嘛,只是 ...

  3. java - day13 - ImplementDemo

    接口实现.继承等关系的运用案例P.S: 强制转换,看引用变量指向的对象与目标数据间的关系.可运用 "引用变量 instanceof 目标数据" 来判断是否可用强转 package ...

  4. Java 中 常用API概述之 Math, Object, String,StringBuffer类,Arrays,Integer类

    Math Math类包含执行基本数字运算的方法,如基本指数,对数,平方根和三角函数. 与StrictMath类的一些数字方法不同,Math类的StrictMath所有Math都没有定义为返回比特位相同 ...

  5. Spark案例分析

    一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...

  6. 【JAVA零基础入门系列】Day13 Java类的继承与多态

    继承是类的一个很重要的特性,什么?你连继承都不知道?你是想气死爸爸好继承爸爸的遗产吗?(滑稽) 开个玩笑,这里的继承跟我们现实生活的中继承还是有很大区别的,一个类可以继承另一个类,继承的内容包括属性跟 ...

  7. 【Java入门提高篇】Day13 Java中的反射机制

    前一段时间一直忙,所以没什么时间写博客,拖了这么久,也该更新更新了.最近看到各种知识付费的推出,感觉是好事,也是坏事,好事是对知识沉淀的认可与推动,坏事是感觉很多人忙于把自己的知识变现,相对的在沉淀上 ...

  8. java基础-day13

    第01天 java面向对象 今日内容介绍 u 继承 u 抽象类 第1章   继承 1.1  继承的概述 在现实生活中,继承一般指的是子女继承父辈的财产.在程序中,继承描述的是事物之间的所属关系,通过继 ...

  9. java 多线程 day13 condition 线程通信

    /** * Created by chengtao on 17/12/5. * Condition 类似 wait和notify,解决线程间的同步问题 */ import java.util.conc ...

  10. Java之路---Day13

    2019-10-28-22:40:14 目录 1.Instanceof关键字 2.Final关键字 2.1Final关键字修饰类 2.2Final关键字修饰成员方法 2.3Final关键字修饰局部变量 ...

随机推荐

  1. Python的从头再来

    虽然各种视频,文档看了不少.但是都没有系统的总结.现在要把Python从最基础开始总结,回归.也当作自己的复习.

  2. SPSS把一个数据样本随机分为两部分

    SPSS把一个数据样本随机分为两部分 1.  打开SPSS数据文件. 2.  选择DATA>SELECT CASES,打开"Select Cases"对话框 3. 选择&qu ...

  3. POJ 1269 Intersecting Lines (判断直线位置关系)

    题目链接:POJ 1269 Problem Description We all know that a pair of distinct points on a plane defines a li ...

  4. axios请求中的参数(params)与路径变量

    1.axios的参数(params) import axios from 'axios' export function getDiscList() { const url = '/api/getDi ...

  5. idea plugin 进度条

    ProgressManager.getInstance().run(new Task.Backgroundable(project, "Switching Env") { @Ove ...

  6. hdu6350 /// tarjan+并查集+组合+最大流思想

    题目大意: 给定n个点 m条边没有重边的仙人掌图(没有一条边会同时存在与两个环 也就是环都是相互独立的) 求任意两点间 i^j^maxflow(i,j)的总和 maxflow为两点间最大流 题解:ht ...

  7. Vuex 源码解析

    先来看一下这张Vuex的数据流程图,熟悉Vuex使用的同学应该已经有所了解. Vuex实现了一个单向数据流,在全局拥有一个State存放数据,所有修改State的操作必须通过Mutation进行,Mu ...

  8. C语言之内存分配函数

    #include <stdio.h> #include <stdlib.h> #include <string.h> int main() { /********* ...

  9. XML中的值得注意的"坑"

    XML严禁 & < ,建议 < > & ' "进行转义 XML中预定义了5个实体引用: < > & ' " 其中,'<' ...

  10. webstorm/vs取消eslint

    vs ——preference ——setting,添加"eslint.enable": false webstorm ——setting ——language ——javascr ...