1. 字节流,字符流基本概念File类不支持文件内容处理,如果要处理文件内容,必须要通过流的操作模式来完成在java.io包中,流分为两种:字节流与字符流字节流:读写数据以字节为基本单位(处理二进制文件/数据的时候使用) 字符流:独写数据以字符为基本单位(处理文本文档/数据的时候使用)2. 字节流1)InputStream:(输入)把输入设备读取到内存中 2 ......
283
0
0
2022-11-28
线程的核心操作1.execute:把一个任务加到线程池中 2.shutdown:销毁线程池中的所有线程线程池的组成部分1.先有一个类,来描述具体线程的要做的工作是啥(借助Runnable接口) 2.还需要一个数据结构来组织若干个任务,BlockingQueue 3.需要有一个类,表示工作线程 4.还需要有一个数据结构,来组织若干个线程,LIst线程池代码im ......
318
0
0
2022-11-28
定时器可以强制终止请求:浏览器内部都有一个定时器,发送了请求之后,定时器就开始计时。如果在打开浏览界面的时候,浏览器的响应时间过了响应时间,就会强制终止请求。1.定时器的构成1.使用一个类来描述“一个逻辑”,也就是要执行的任务,同时也要记录这个任务啥时候来执行 2.使用一个 阻塞优先队列(既支持阻塞的特性,又支持按优先级的“先进先出”,实际上是堆) 来组织若 ......
312
0
0
2022-11-28
生产者消费者模型 生产者消费者模式就是通过一个容器来解决生产者和消费者的强耦合问题。生产者和消费者彼此之间不直接通讯,而通过阻塞队列来进行通讯,所以生产者生产完数据之后不用等待消费者处理,直接扔给阻塞队列,消费者不找生产者要数据,而是直接从阻塞队列里取,阻塞队列就相当于一个缓冲区,平衡了生产者和消费者的处理能力。这个阻塞队列就是用来给生产者和消费者解耦的。阻 ......
269
0
0
2022-11-28
1. wait方法当条件不成熟时就等待运行分为三步: 1.释放锁 2.等到通知 3.收到通知后尝试重新获取锁继续往下执行wait两种使用方法 1.wait()死等,一直等待notify的通知来 2.wait(time) :等待有上限,如果有notify就会被提前唤醒,如果没有notify那么时间到了就会被唤醒wait方法必须在synchronized代码内部 ......
282
0
0
2022-11-28
1. volatile作用保持内存可见性2. 没有用volatile时,代码出现的问题import java.util.Scanner; public class ThreadDemo1 { public static int flag = 0; public static void main(String[] args) thro ......
375
0
0
2022-11-28
1. 线程不安全线程不安全代码:public class ThreadDemo13 { static class Counter{ public static int count = 0; public void increase(){ count++; } ......
399
0
0
2022-11-28
启动一个线程调用start()方法,才能正式启动一个线程中断一个线程中断就是让一个线程结束,结束可能有两种情况:1.已经把任务执行完了以下代码为例:public class ThreadDemo7 { private static boolean isQuit = false; public static void main(Stri ......
291
0
0
2022-11-28
代码示例://Thread里面的常见属性 public class ThreadDemo6 { public static void main(String[] args) throws InterruptedException { Thread t = new Thread("xc"){ @Overr ......
322
0
0
2022-11-28
以下代码为例:public class ThreadDemo3 { static class MyThread extends Thread{ @Override public void run() { System.out.println("线程"); } ......
334
0
0
2022-11-28
并发执行利用了线程的手段,可以提高执行效率,这里用一个简单的例子来进行简单对比1.串行执行public class ThreadDemo2 { private static long count = 100_0000_0000L; public static void main(String[] args) { // ......
325
0
0
2022-11-28
1.先从一下网站中下载jar包Maven仓库入链接2.在idea工程中,创建一个目录,然后将jar包导入3.配置项目的属性,让项目能够找到jar包到此为止就导入成功了 ......
270
0
0
2022-11-28
/** * 单链表 */ class Node{ public int data; public Node next; public Node(int data){ this.data = data; this.next = null; } } public cla ......
382
0
0
2022-11-27
class Animal { public String name; public int age; public Animal(){ this("dog",4); System.out.println("这是一个默认构造方法"); } public Animal( ......
300
0
0
2022-11-27
思路分析归并排序:是建立在归并操作上的一种有效的排序算法,该算法是采用分治法的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使 子序列段间有序。图解代码示例1)递归方法//有两个重要的特点,可以适用于外部排序(数据在磁盘上),也可以适用于链表排序 // (希尔,堆排序,快速排序依赖随机访问能力,都不适合链表排序) ......
296
0
0
2022-11-27