自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 收藏
  • 关注

原创 thinking in java (四十四) ----- 多线程10之线程优先级和守护线程

线程优先级的介绍线程优先级有1-10,默认优先级为5,高优先级的线程更容易抢占到CPU,但是并不绝对java中有两种线程,用户线程和守护线程,可以通过isDaemon()方法来区别它们:如果返回false,则说明该线程是“用户线程”;否则就是“守护线程”。用户线程一般用户执行用户级任务,而守护线程也就是“后台线程”,一般用来执行后台任务。需要注意的是:Java虚拟机在“用户线程”都结...

2018-11-20 20:13:30 160

原创 thinking in java (四十三) ----- 多线程09之interrupt()和线程终止方式

 interrupt和线程终止简介interrupt()的作用是中断本线程jdk中关于interrupt的简介是:本线程中断自己是被允许的,其他线程调用本线程的interrupt方法,会通过checkAccess()检查权限,这有可能抛出SecurityException异常,如果线程是处于阻塞状态,调用线程的wait,join,sleep等进入阻塞状态,此时用interrupt中断该...

2018-11-20 19:52:56 158

原创 thinking in java (四十二) ----- 多线程08之join

join()介绍join() 定义在Thread.java中。join() 的作用:让“主线程”等待“子线程”结束之后才能继续运行,阻塞主线程// 主线程public class Father extends Thread { public void run() { Son s = new Son(); s.start(); ...

2018-11-20 17:02:39 140

原创 thinking in java (四十一) ----- 多线程07之线程休眠

sleep()介绍sleep()定义在Thread类中,作用是让当前线程休息,即当前线程会从运行状态转为阻塞状态吗,sleep会规定时间,线程休眠的时间大于该时间,就会被重新唤醒,变成就绪状态,等待CPU的调度执行示例package test;//SleepTest.java的源码class ThreadA extends Thread{ public ThreadA(...

2018-11-20 16:28:24 153

原创 thinking in java (四十) ----- 多线程06之线程让步

yield()介绍yield()作用是线程让步,他能让线程由运行状态进入就绪状态,从而让具有相同优先级的等待线程获取执行权。但是并不能保证当前线程让步以后,具有同优先级的线程一定能获取执行权,也有可能是当前让步线程又进入到“运行状态”继续运行示例// YieldTest.java的源码class ThreadA extends Thread{ public Thre...

2018-11-20 16:02:13 164

原创 thinking in java (三十九) ----- 多线程05之线程等待和唤醒

wait() notify()notifyAll()简介这三个方法都是定义在Object里面,wait()的作用是让线程进入等待状态,同时wait也会释放当前线程所持有的锁,而notify和notifyAll的作用是唤醒当前对象上的等待线程,notify是唤醒单个线程,而notifyAll 是唤醒所有线程。Object中关于等待唤醒的API详细信息如下:notify() 唤醒在此对...

2018-11-20 15:40:51 128

原创 thinking in java (三十八) ----- 多线程04之synchronized关键字

synchronized原理在java中,每一个对象有且只有一个同步锁,这也意味着,同步锁因为对象而存在。当我们调用某对象的synchronized方法时,就获取了该对象的同步锁,例如synchronized(obj)就获取了obj这个对象的同步锁。不同线程对同步锁的访问是互斥的,就是说,在某一个时间点,一个同步锁只能被一个线程获取,通过同步锁我们可以在多线程中,实现线程的互斥访问...

2018-11-20 08:57:23 168

原创 thinking in java (三十七) ----- 多线程03之Thread中start()和run()的区别

start()方法和run()方法的区别说明start()方法:他的作用是启动一个新的线程,新线程会执行相应的run()方法,start()不能被重复调用。run()方法:run方法就是一个普通的成员方法样,可以被重复调用,单独调用run方法的话,会在当前线程中执行run方法,而不会启动新线程。用代码说明class MyThread extends Thread{ ...

2018-11-19 19:54:56 138

原创 thinking in java (三十六) ----- 多线程02之常用的实现多线程的方法

概要常用的实现多线程有两种方法,1:继承Thread类,2:实现Runnable接口。之所以说是常用,是因为还可以使用JUC(java.util.concurrent)包中的线程池来实现多线程。首先我们对常用的Thread类和Runnable接口进行了解说明。Thread类和Tunnable接口简介Runnable是一个接口,该接口中只包含了run方法,定义如下pub...

2018-11-19 17:02:21 192

原创 thinking in java (三十五) ----- 多线程01之基础概念

相关概念线程状态图说明:一共有五种状态1,新建状态:线程对象被创建以后,自动就进入了新建状态,比如Thread thread = new Thread()2,就绪状态:线程对象被创建以后,其他线程调用了该对象的start方法,从而来启动该线程,例如,thread.start(),处于就绪状态的线程,随时都可能被CPU调度执行3,运行状态:线程获取了CPU权限,进行执行,需要...

2018-11-19 13:01:06 124

原创 thinking in java (三十四) ----- StringBuffer详解与StringBuilder一笔带过

StringBuffer是线程安全的可变字符序列,他继承于AbstractStringBuilder,实现了CharSequence接口,StringBuilder也是继承于AbstractStringBuilder的子类,但是线程不安全。关系图:StringBuffer源码1,定义public final class String implements java.io...

2018-11-16 16:55:01 174

原创 thinking in java (三十三) ----- String详解

String介绍String是java中的字符串,继承于CharSequence。String类包含的API接口非常多,我们对其进行了分类,并且都给出了演示程序。String个CharSequence关系String继承于CharSequence,也就是说String是CharSequence类型,CharSequence是一个接口,只包括length().charAt(),su...

2018-11-16 12:28:41 152

原创 thinking in java (三十二) ----- IO之 PrintWriter

介绍PrintWriter 是字符类型的打印输出流,它继承于Writer。PrintWriter用于向文本输出流打印对象的格式化表示形式。它实现在 PrintStream 中的所有 print 方法。源码package java.io;import java.util.Objects;import java.util.Formatter;import java.u...

2018-11-13 12:04:39 123

原创 thinking in java (三十一) ----- IO之 BufferedWriter

介绍BufferedWriter 是缓冲字符输出流。它继承于Writer。BufferedWriter 的作用是为其他字符输出流添加一些缓冲功能。源码分析package java.io;public class BufferedWriter extends Writer { // 输出流对象 private Writer out; // 保存...

2018-11-13 11:44:22 149

原创 thinking in java (三十) ----- IO之 BufferedReader

BufferedReader介绍BufferedReader是缓冲字符流,继承于Reader作用是为其他的流添加缓冲功能源码分析package java.io;public class BufferedReader extends Reader { private Reader in; // 字符缓冲区 private char cb[];...

2018-11-13 11:37:35 212

原创 thinking in java (三十) ----- IO之 FileReader和FileWriter

介绍FileReader是用于读取字符流的类,继承于InputStreamReader,如果要读取原始字节流,需要使用InputStream。FileWriter是用于写入字符流的类,继承于OutputStreamWriter,如果要写入原始字节流,需要使用OutptuStream。源码FileReaderpackage java.io;public class ...

2018-11-13 10:07:46 174

原创 thinking in java (二十九) ----- IO之 InputStreamReader和OutputStreamWriter

InputStreamReader和OutputStreamWriter介绍InputStreamReader和OutputStreamWriter是字节通往字符的桥梁,它使用指定的charset读取字节并将其解码为字符。InputStreamReader的作用是将字节输入流转换为字符输入流,继承于Reader OutputStreamWriter的作用是将字节输出流转换为字符输出...

2018-11-12 23:54:54 142

原创 thinking in java (二十八) ----- IO之PipedReader和PipedWriter

PipedReader和PipedWriter介绍PipedWriter是字符管道输出流,继承于WriterPipedReader是字符管道输入流,继承于Reader PipedReader和PipedWriter的作用是可以通过管道之间进行线程间的通讯,在使用管道的时候,必须将两者配套使用PipedReader和PipedWriter源码分析PipedReader源码...

2018-11-12 19:59:27 166

原创 thinking in java (二十七) ----- IO之CharArrayWriter(字符数组输出流)

CharArrayWriter介绍用于写入字符数据,继承于writer,操作的是单位为字符。源码分析CharArrayWriterpackage java.io;import java.util.Arrays;public class CharArrayWriter extends Writer { // 字符数组缓冲 protected char...

2018-11-12 18:58:09 131

原创 thinking in java (二十七) ----- IO之CharArrayReader(字符数组输入流)

CharArrayReader介绍CharArrayReader是字符输入流,用于读取字符数组,它继承于Reader,操作的数据是字符为单位。源码分析Reader是CharArrayReader的父类,我们先看一下Reader的源码,然后再分析CharArrayReader。Reader源码package java.io;public abstract class...

2018-11-12 16:49:15 186

原创 thinking in java (二十六) ----- System.out.println("hello world")原理

我们首先来看System.out.println("hello world")的流程,先看看System类中out的定义public final class System { ... public final static PrintStream out = null; ...}从中,我们可以发现:1,out是System中的一个静态变量2,out是...

2018-11-12 15:54:12 645

原创 thinking in java (二十五) ----- IO之PrintStream

PrintStream介绍PrintStream是打印输出流,继承自FilterOutputStream,PrintStream用来装饰其他的流,为其他流添加打印功能,使其能够方便打印各种数据表现形式。与其他流不同,PrintStream永远不会抛出IOException,他产生的IOException会被自身的函数所捕获并设置错误标记,另外,PrintStream提供了自动flu...

2018-11-10 20:17:09 153

原创 thinking in java (二十四) ----- IO之BufferedOutputStream

BufferOutputStream介绍BufferOutputStream是缓冲输出流,它继承于FilterOutputStream。BufferOutputStream的作用是另一个输出流提供“缓冲功能”。源码分析package java.io;public class BufferedOutputStream extends FilterOutputStream...

2018-11-10 19:44:57 500

原创 thinking in java (二十四) ----- IO之BufferedInputStream

BufferedInputStream介绍BufferedInputStream是缓冲输入流,作用是为另外一个输入流添加缓冲功能,以及mark reset功能。本质上,缓冲功能是通过一个内部缓冲区数组实现的,例如在新建某输入流对应的BufferedInputStream后,当我们通过read方法读取输入流的数据时,BufferedInputStream会将输入流的数据分批地填入到缓冲区...

2018-11-10 12:38:49 164

原创 thinking in java (二十三) ----- IO之FileDescriptor

FileDescriptor简介FileDescriptor是文件描述符FileDescriptor可以被用来表示开放文件,开放套接字等以FileDescriptor表示文件来说,当FileDescriptor表示某文件的时候,我们可以通俗地将FileDescriptor看成是该文件,但是我们不能直接通过FileDescriptor来操作该文件,如果需要通过FileDescript...

2018-11-08 09:59:27 135

原创 thinking in java (二十二) ----- IO之序列化

序列化的作用和用途序列化,就是为了保持对象的状态,而与之对应的反序列化,则可以把对象的状态再读取出来,简而言之:序列化/反序列化,是JAVA提供的一种专门用于保存/恢复对象状态的机制。一般在以下几种情况我们会使用序列化:1.当你想把内存中的对象状态保存到一个文件或者数据库中时2,当你想用套接字在网络上传送对象的时候3,当你想用RMI传输对象的时候演示程序1...

2018-11-02 16:08:20 118

原创 thinking in java (二十一) ----- IO之(ObjectOutputStream和ObjectInputStream)

ObjectOutputStream和ObjectInputStream的作用是:对基本数据和对象进行序列化操作支持。创建“文件输出流”对应的ObjectOutputStream对象,该ObjectOutputStream对象能提供对“基本数据或对象”的持久存储,当我们需要读取这些存储的基本数据或对象的之后,可以创建“文件输出流”对应的ObjectInputStream,进而读取出这些“基本数...

2018-11-02 10:03:57 106

原创 thinking in java (二十) ----- IO之管道(PipedOutputStream和PipedInputStream)

介绍PipedInputStream和PipedOuputStream管道输入流和管道输出流他的作用是让多线程可以通过管道进行线程间的通信,在使用管道通讯时候,必须将两者配套使用。使用管道的大致流程是:我们在进程A中向PipedOutputStream中写入数据,然后这些数据会自动发送到与PipedOutputStream对应的IPipedInputStream中,进而储存在Piped...

2018-11-01 21:53:13 212

原创 thinking in java (十九) ----- IO系列总览

io简介java io是为了实现“文件”,“控制台”,“网络设备”这些输入输出设备之间的通信而设计的系统。例如,对于一个文件,我们可以打开进行读取与输出。在java1.0的时候,java提供的类都是以字节(byte)为单位,到了java1.1,为了国际化,添加了许多以字符(Unicode)为单位进行操作的类IO中我们常说到的一个概念是“流”,所谓“流”就是一种抽象的数据总称,本质是为了...

2018-11-01 20:48:11 395

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除