异常

  指的是程序在执行过程中,出现的非正常情况,最终会导致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. iOS 7 认识 TextKit

    本文由 伯乐在线 - 和谐老约翰 翻译自 Max Seelemann.欢迎加入技术翻译小组.转载请参见文章末尾处的要求. iOS7 的发布给开发者的案头带来了很多新工具.其中一个就是 TextKit( ...

  2. error C3861: “L”: 找不到标识符

    提示错误的语句:::CLSIDFromProgID(L("Shell.Application"), &clsid); 解决办法: 出现上面的错误是因为语法错误了,去掉字符串 ...

  3. windows每天定时执行脚本

     windows每天定时执行脚本 这里说的定时器就是Windows下的任务计划,当时遇到的坑正好总结一下,因为Windows10的定时器去执行脚本当时试了好多遍,都是没有成功,后来通过自己的观察发现是 ...

  4. Amazon Linux AMI 2015.09 (HVM)平台搭建lamp

    更新yum yum update 安装Apache: yum install -y httpd 安装完之后,重新启动 service httpd restart 将Apache设置为开机启动 chkc ...

  5. POJ3630-Phone List-Trie字典树模板题

    Given a list of phone numbers, determine if it is consistent in the sense that no number is the pref ...

  6. ubuntu 无pthread

    由于学习多线程编程,所以用到pthread,但是man的时候却发现没有pthread函数库的手册页,然后安装 $sudo apt-get install glibc-doc 安装以后,发现还是有很多函 ...

  7. Jenkins和Docker

    由于采用了Docker版的Jenkins,导致在Jenkins里无法调用Docker命令行工具进行Docker镜像构建 有三种解决方案: 1. 安装Docker插件,利用Jenkins插件进行构建 2 ...

  8. 【Linux】- 守护进程的启动方法

    转自:Linux 守护进程的启动方法 Linux中"守护进程"(daemon)就是一直在后台运行的进程(daemon). 本文介绍如何将一个 Web 应用,启动为守护进程. 一.问 ...

  9. mysql高效导入导出load data [infile][outfile]用法

    一.MySQL高效导入数据的方法load data infile load data infile语句从一个文本文件中以很高的速度读入一个表中.使用这个命令之前,mysqld进程(服务)必须已经在运行 ...

  10. 并发新构件之Semaphore:信号量

    Semaphore :JDK描述,通常用于限制可以访问某些资源(物理或逻辑的)的线程数目.一句话说明了他的作用.信号量有一个虚拟的许可证池,new Semaphore(10):构造一个含有10个许可证 ...