Java基础(二)

框架是个好东西,可早晚有一天会过时,这世界上就没有亘古不变的东西,来学下Java基础吧

线程,进程,程序之间的关系

线程与进程类似,但线程是比进程更小的执行单位,一个进程在执行过程中可以产生多个线程,同类的多个线程共享同一片内存资源

基本状态如下表所示:

在这里插入图片描述
线程直接切换的方式

在这里插入图片描述
操作系统将JVM的RUNNING和READY合并成一个状态RUNNABLE

程序是静态的代码

进程是程序的一次执行过程,一个进程就是一个执行中的程序,进程与线程最大的不同在于基本上各个进程都是独立的,各个线程则不一样

final关键字的总结

  • 变量上

如果是基本数据变量,则一旦初始化后则不能改变(final变量一定要初始化)

  • 方法上

不能被重写,锁定方法,防止继承类重写了这个方法,类中所有private方法隐式声明为final类型

  • 类上

这个类不能被继承,所有的方法都被隐式的声明为final方法

Java异常处理

在这里插入图片描述

Error(错误):一般与代码编写者编写的程序无关,表示运行时候JVM出现的问题【不要想着在程序中去catch Error,已经超出了程序处理的范畴】

Exception(异常):程序本身可以处理的异常

⚠️:异常和错误的区别:异常能被程序本身处理,错误是无法处理。

Throwable类几个常用方法:

  • public String getMessage();

返回异常的简要描述

  • public String toString();

返回异常的详细信息

  • public String getLocalizedMessage();

输出异常的本地化信息,如果子类没有重写这个方法,则调用getMessage()方法

  • public void printStackTrace();

在控制台打印的异常信息

异常处理方法:

  • try块

后面接零个或者多个catch块,如果没有catch块则必定要有一个finally块

  • catch块

处理捕获到的异常

  • finally块

无论是否捕获到异常都会调用finally块里面的代码

finally块的补充说明:

​ 如果在try块或者catch块中遇到了return语句时,finally块会在方法返回之前执行,并且如果finally语句里面有返回值,将会覆盖原返回值

finally块不会执行的情况:

​ finally块第一条语句抛出了异常

​ 在前面的代码(try/catch)中使用了System.exit(int)退出程序

​ 程序所在的线程死亡

​ CPU关闭

transient关键字

让类中的某些字段不进行序列化

transient只能用来修饰变量,不能修饰类和方法

Java从键盘输入

方法 1:通过 Scanner

Scanner input = new Scanner(System.in);
String s  = input.nextLine();
input.close();

方法 2:通过 BufferedReader

BufferedReader input = new BufferedReader(new InputStreamReader(System.in)); 
String s = input.readLine(); 

IO流

分类情况:

  • 流的流向划分:输入流和输出流
  • 操作单元划分:字节流和字符流
  • 流的角色划分:节点流和处理流

共涉及到40多个类,大体分为以下两大块:

  • InputStream/Reader:所有输入流的基类,字节输入流/字符输入流
  • OutputSream/Writer:所有输出流的基类,字节输出流/字符输出流

操作方式具体划分:

img

操作对象具体划分

img

如果音频文件、图片等媒体文件用字节流比较好,如果涉及到字符的话使用字符流比较好。

BIO/NIO/AIO的区别:

  • BIO(Blocking I/O):同步阻塞IO模型,数据的读取写入必须阻塞在一个线程内等待其完成

  • NIO(New I/O【Not-Blocking I/O】):同步非阻塞IO模型,在Java 1.4 中引入了 NIO 框架,对应 java.nio 包

  • AIO(Asynchronous I/O):AIO 也就是 NIO 2。在 Java 7 中引入了 NIO 的改进版 NIO 2, 它是异步非阻塞的 IO 模型。

浅拷贝,深拷贝

  • 浅拷贝:对基本数据类型进行值传递,对引用数据类型进行引用传递般的拷贝
  • 深拷贝:对基本数据类型进行值传递,对引用数据类型,创建一个新对象,复制内容,此为深拷贝
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值