08 2020 档案

摘要:7.1 守护线程 java语言中线程分为两大类: 一类是:用户线程。 一类是:守护线程(后台线程) 其中具有代表行的就是:垃圾回收线程(守护线程)。 守护线程的特点: 一般守护线程是一个死循环,所有的用户线程只要结束,守护线程自动结束。 注意:主线程main方法是一个用户线程。 守护线程用在什么地方 阅读全文
posted @ 2020-08-28 12:58 xlwu丶lz 阅读(180) 评论(0) 推荐(0) 编辑
摘要:7.3 实现线程的第三种方式:FutureTask方式,实现Callable接口。(JDK8新特性。) 这种方式实现的线程可以获取线程的返回值。 之前讲解的那两种方式是无法获取线程返回值的,因为run方法返回void。 思考: 系统委派一个线程去执行一个任务,该线程执行完任务之后,可能会有一个执行结 阅读全文
posted @ 2020-08-28 12:57 xlwu丶lz 阅读(684) 评论(0) 推荐(0) 编辑
摘要:7.2 定时器 定时器的作用: 间隔特定的时间,执行特定的程序。 每周要进行银行账户的总账操作。 每天要进行数据的备份操作。 在实际的开发汇总,没隔多久执行一段特定的程序,这种需求是很常见的,那么在java中其实可以采用多种睡眠方式实现: 可以使用sleep方法,睡眠,设置睡眠时间,每到这个时间醒来 阅读全文
posted @ 2020-08-28 12:56 xlwu丶lz 阅读(442) 评论(0) 推荐(0) 编辑
摘要:7.4 关于Object类中的wait和notify方法。(生产者和消费者模式。) 第一:wait和notify方法不是线程对象的方法,是java中任何一个java对象都有的方法,因为这两个方式是Object类中自带的。 wait方法和notify方法不是通过线程对象调用的, 不是这样的:t.wai 阅读全文
posted @ 2020-08-28 12:54 xlwu丶lz 阅读(432) 评论(0) 推荐(0) 编辑
摘要:案例: package com.javaSe.DeadLock; /* 死锁代码要会写。 一般面试官会要求你会写。 只有会写的,才会在以后的开发中注意这个事情。 因为死锁很难调试。 */ public class DeadfLock { public static void main(String[ 阅读全文
posted @ 2020-08-28 12:52 xlwu丶lz 阅读(534) 评论(0) 推荐(0) 编辑
摘要:面试题1: doOther方法执行的时候需要等待doSome方法的结束吗? 相同对象单个方法锁 package com.javaSe.exam1; // 面试题:doOther方法执行的时候需要等待doSome方法的结束吗? // 不需要 因为doOther方法没有synchronized。 pub 阅读全文
posted @ 2020-08-26 21:52 xlwu丶lz 阅读(470) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2020-08-26 21:51 xlwu丶lz 阅读(80) 评论(0) 推荐(0) 编辑
摘要:1 多线程 1.1 什么是进程?什么是线程? 进程是一个应用程序。(一个进程是一个软件) 线程是一个进程中的执行场景/执行单元。 一个进程可以启动多个线程。 1.2 对于java程序来说,当在DOS命令窗口中输入: java HelloWorld 回车之后。 回先启动JVM,而JVM就是一个进程。 阅读全文
posted @ 2020-08-26 21:50 xlwu丶lz 阅读(170) 评论(0) 推荐(0) 编辑
摘要:用标准输出流写 logger日志文件 package com.javaSe.LogUtil; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java 阅读全文
posted @ 2020-08-09 20:23 xlwu丶lz 阅读(442) 评论(0) 推荐(0) 编辑
摘要:PrintStream标准字节输出流 package com.javaSe.PrintStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.PrintStream; 阅读全文
posted @ 2020-08-09 20:21 xlwu丶lz 阅读(192) 评论(0) 推荐(0) 编辑
摘要:DataInputStream:数据字节输入流。 DataOutputStream写的文件,只能用DataInputStream去读。并且读的时候你需要提前知道写入的顺序。 读的顺序需要和写的顺序一致。才可以正常取出数据。 DataInputStream: package com.javaSe.Da 阅读全文
posted @ 2020-08-09 20:19 xlwu丶lz 阅读(584) 评论(0) 推荐(0) 编辑
摘要:java.io.DateOutputStream:数据专属流。 这个流可以将数据连同数据的类型一并写入文件。 注意:这个文件不是普通文本文档。(这个用记事本打不开) DataOutputStream数据专属流 package com.javaSe.DateOutputStream; import j 阅读全文
posted @ 2020-08-09 20:18 xlwu丶lz 阅读(239) 评论(0) 推荐(0) 编辑
摘要:BufferedWriter:带有缓冲的字符输出流。 BufferedWriter package com.javaSe.BufferedWriter; import java.io.*; /* BufferedWriter:带有缓冲的字符输出流。 */ public class BufferedW 阅读全文
posted @ 2020-08-09 20:17 xlwu丶lz 阅读(511) 评论(0) 推荐(0) 编辑
摘要:BufferedReader: 带有缓冲区的字符输入流。 使用这个流的时候不需要自定义char数组,或者说不需要自定义byte数组,自带缓冲区。 BufferedRreader: package com.javaSe.BufferedReader; import java.io.BufferedRe 阅读全文
posted @ 2020-08-09 20:15 xlwu丶lz 阅读(590) 评论(0) 推荐(0) 编辑
摘要:FileWriter案例: package com.javaSe.FileWriter; import java.io.FileWriter; import java.io.IOException; /* FileWriter: 文件字符输出流。写。 只能输出普通文本。 */ public clas 阅读全文
posted @ 2020-08-09 20:14 xlwu丶lz 阅读(218) 评论(0) 推荐(0) 编辑
摘要:FileReader案例: package com.javaSe.FileReader; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; /* FileReade 阅读全文
posted @ 2020-08-09 20:13 xlwu丶lz 阅读(109) 评论(0) 推荐(0) 编辑
摘要:使用FileInputStream 和 FileOutputStream 进行copy流案例: package com.javaSe.Copy; import java.io.FileInputStream; import java.io.FileNotFoundException; import 阅读全文
posted @ 2020-08-09 20:11 xlwu丶lz 阅读(341) 评论(0) 推荐(0) 编辑
摘要:FileOutputStream案例1: package com.javaSe.FileOutputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOExce 阅读全文
posted @ 2020-08-09 20:10 xlwu丶lz 阅读(302) 评论(0) 推荐(0) 编辑
摘要:java.io.FileInputStream 1 文件字节输入流,万能的,任何类型的文件都可以采用这个流来读。 2 字节的方式,完成输入的操作,完成读的操作(是从硬盘到内存的一个过程。) FileInputStream流案例1: package com.javaSe.FileInputStream 阅读全文
posted @ 2020-08-09 20:09 xlwu丶lz 阅读(229) 评论(0) 推荐(0) 编辑
摘要:IO的理解 文件的复制原理: 1 IO流,什么是IO? I :Input O : Output 通过IO可以完成硬盘文件的读和写。 2 IO流的分类? 有多种分类方式: 一种方式是按照流的方向进行分类: 以内存作为参照物, 往内存中去,叫做输入(Input)。或者叫做读(Read)。 从内存中出来, 阅读全文
posted @ 2020-08-09 20:07 xlwu丶lz 阅读(214) 评论(0) 推荐(0) 编辑
摘要:java.util.Collection 集合接口 java.util.Collections 集合工具类,方便集合操作。 案例: package com.javaSe.TreeSet; import java.util.*; /* java.util.Collection 集合接口 java.ut 阅读全文
posted @ 2020-08-06 22:22 xlwu丶lz 阅读(103) 评论(0) 推荐(0) 编辑
摘要:目前只需要掌握Properties属性类对象的相关方法即可 Properties是一个Map集合,继承Hashtable。Properties的key和value都是String类型。 Properties被称为属性类对象。 Properties是线程安全的。 案例1: package com.ja 阅读全文
posted @ 2020-08-06 22:21 xlwu丶lz 阅读(340) 评论(0) 推荐(0) 编辑
摘要:案例: package com.javaSe.Map; import java.util.Hashtable; import java.util.Map; /* Hashtable 可以为null吗? Hashtable 的 key和value都是不能为null的。 HashMap 的 key和va 阅读全文
posted @ 2020-08-06 22:20 xlwu丶lz 阅读(111) 评论(0) 推荐(0) 编辑
摘要:HashMap集合: 1 HashMap集合底层是哈希表/散列表的数据结构。 2 哈希表是一个怎样的数据结构呢? 哈希表是一个数组和单向链表的结合体。 数组:在查询方面效率很高,随机增删方面效率较低。 单向链表:在随机增删方面效率较高,在查询方面效率较低。 哈希表将以上的两种数据结构融合在一起,充分 阅读全文
posted @ 2020-08-06 22:18 xlwu丶lz 阅读(128) 评论(0) 推荐(0) 编辑
摘要:java.util.Map接口中常用方法: 1 Map和Collection没有继承关系 2 Map集合以key和value的方式存储数据:键值对 key和value都是引用数据类型。 key和value都是存储对象的内存地址。 key起到主导的地位,value是key的一个附属品。 3 Map接口 阅读全文
posted @ 2020-08-06 22:16 xlwu丶lz 阅读(181) 评论(0) 推荐(0) 编辑
摘要:中序排列内存图: 阅读全文
posted @ 2020-08-06 22:14 xlwu丶lz 阅读(140) 评论(0) 推荐(0) 编辑
摘要:TreeSet集合存储元素特点: 1 无序不可重复,但是储存的元素可以按照大小顺序排序!称为可排序集合。 2 无序:这里的无序指的是存进去的顺序和取出来的顺序不同。并且没有下标。 1 TreeSet集合底层实际上是一个TreeMap 2 TreeMap集合底层是一个二叉树 3 放到TreeSet中的 阅读全文
posted @ 2020-08-06 22:12 xlwu丶lz 阅读(229) 评论(0) 推荐(0) 编辑
摘要:HashSet集合特点: 无序不可重复 package com.javaSe.HashSet; import java.util.HashSet; import java.util.Set; /* HashSet集合: 无序不可重复 */ public class HashSetTest01 { p 阅读全文
posted @ 2020-08-06 22:10 xlwu丶lz 阅读(107) 评论(0) 推荐(0) 编辑
摘要:案例1: package com.javaSe.foreach; public class ForEachTest01 { public static void main(String[] args) { // int类型数组 int[] arr = {111,222,333,444,555,666 阅读全文
posted @ 2020-08-01 17:32 xlwu丶lz 阅读(135) 评论(0) 推荐(0) 编辑
摘要:什么是泛型: 1 JDK5.0之后推出的新特性:泛型 2 泛型这种语法机制,只在程序编译阶段起作用,只是给编译器作参考的。(运行阶段泛型没用!) 3 使用了泛型的好处是什么? 第一:集合中存储的元素类型统一了。 第二:从集合中取出的元素类型是泛型指定的类型,不需要进行大量的“向下转型”! 4 泛型的 阅读全文
posted @ 2020-08-01 17:31 xlwu丶lz 阅读(397) 评论(0) 推荐(0) 编辑
摘要:案例: package com.javaSe.List; import java.util.*; /* Vector: 1 底层也是一个数组。 2 初始化容量: 10 3 怎么扩容的? 扩容之后是原容量的2倍。 10 --> 20 --> 40 --> 80 4 ArrayList集合的扩容特点 1 阅读全文
posted @ 2020-08-01 17:30 xlwu丶lz 阅读(103) 评论(0) 推荐(0) 编辑
摘要:双向链表结构图: 就是他包含上一个节点的内存地址。并且还包含下一个节点的内存地址。 案例: package com.javaSe.List; import java.util.ArrayList; import java.util.LinkedList; import java.util.List; 阅读全文
posted @ 2020-08-01 17:29 xlwu丶lz 阅读(240) 评论(0) 推荐(0) 编辑
摘要:ArrayList集合: 1 默认初始化容量10(底层县创建了一个长度为0的数组,当添加第一个元素的时候,初始化容量10。) 2 集合底层是一个Object[]数组 3 构造方法: new ArrayList(); new ArrayList(20); 4 ArrayList集合的扩容: 原容量的1 阅读全文
posted @ 2020-08-01 17:28 xlwu丶lz 阅读(320) 评论(0) 推荐(0) 编辑
摘要:模拟链表: Node(节点): package com.javaSe.List; /* 单链表中的节点。 节点是单向链表中的基本单元。 每一个节点Node都有两个属性: 一个属性:是存储的数据 另一个属性:是下一个节点的内存地址 */ public class Node { // 存储的数据 Obj 阅读全文
posted @ 2020-08-01 17:27 xlwu丶lz 阅读(198) 评论(0) 推荐(0) 编辑
摘要:计算机英语: 增删改查这几个单词要知道: 增:add、save、new 删:delete、drop、remove 改:update、set、modify 查:select、find、get、query 测试List接口中常用方法: package com.javaSe.List; import ja 阅读全文
posted @ 2020-08-01 17:26 xlwu丶lz 阅读(164) 评论(0) 推荐(0) 编辑