11 2020 档案
摘要:package com.chunzhi.Test05Consumer; import java.util.function.Consumer; /* 练习: 字符串数组中存有多条信息,请按照格式“姓名:XX。性别:XX。”的格式将信息打印出来。 要求将打印姓名的动作作为第一个Consumer接口的L
阅读全文
摘要:package com.chunzhi.Test05Consumer; import java.util.function.Consumer; /* Consumer接口的默认方法andThen 作用:需要两个Consumer接口,可以把两个Consumer接口组合到一起,再对数据进行消费 例如:
阅读全文
摘要:package com.chunzhi.Test05Consumer; import java.util.function.Consumer; /* java.util.function.Consumer<T>接口正好与Supplier接口相反 它不是生产一个数据,而是消费一个数据,其数据类型由泛型
阅读全文
摘要:package com.chunzhi.Test04Supplier; import java.util.function.Supplier; /* 练习:求数组元素最大值 使用Supplier接口作为方法参数类型,通过Lambda表达式求出int数组中的最大值 提示:接口的泛型请使用java.la
阅读全文
摘要:泛型传递什么类型数据,get方法就返回什么类型数据。所以Supplier被称之为生产型接口 package com.chunzhi.Test04Supplier; import java.util.function.Supplier; /* 常用的函数式接口 java.util.function.S
阅读全文
摘要:package com.chunzhi.Test03LambdaTest; import java.util.Arrays; import java.util.Comparator; /* 如果一个方法的返回值类型是一个函数式接口,那么就可以直接返回一个Lambda表达式 当需要通过一个方法获取一个
阅读全文
摘要:package com.chunzhi.Test03LambdaTest; /* 如果方法的参数是一个函数式接口,我们就可以使用Lambda表达式从而达到简便代码的效果 函数式接口:有且只有一个抽象方法的接口,称之为函数式接口 */ public class Test01Runnable { //
阅读全文
摘要:package com.chunzhi.Test02Lambda; /* 日志案例 使用Lambda优化日志案例 Lambda的特点:延迟加载 Lambda的使用前提,必须存在函数式接口 使用Lambda表达式作为参数传递,仅仅是把参数传递到methodLog方法中 只有满足条件:这里的条件是日志等
阅读全文
摘要:package com.chunzhi.Test02Lambda; /* 日志案例 发现一下代码存在着一些性能浪费问题 调用methodLog方法,传递的第二个参数是一个拼接后的字符串 先把字符串拼接好,然后才调用methodLog方法 methodLog方法中如果传递的日志等级不是1级 那么就不会
阅读全文
摘要:package com.chunzhi.Test04BSTCP; import java.io.*; import java.net.ServerSocket; import java.net.Socket; /* 创建BS版本TCP服务器 */ public class TCPServer { p
阅读全文
摘要:服务器端: package com.chunzhi.Test02FileUpload; import java.io.*; import java.net.ServerSocket; import java.net.Socket; import java.util.Random; public cl
阅读全文
摘要:服务器端: package com.chunzhi.Test01TCP; import java.io.*; import java.net.ServerSocket; import java.net.Socket; /* TCP通信的服务器端:接受客户端的请求,读取客户端发送的数据,给客户端回写数
阅读全文
摘要:package com.chunzhi.Test05PrintStream; import java.io.FileNotFoundException; import java.io.PrintStream; /* 可以改变输出语句的目的地(打印流的流向) 输出语句,默认在控制台输出 使用Syste
阅读全文
摘要:package com.chunzhi.Test05PrintStream; import java.io.FileNotFoundException; import java.io.PrintStream; /* java.io.PrintStream:打印流 PrintStream为其他输出流添
阅读全文
摘要:package com.chunzhi.Test04ObjectStream; import java.io.*; import java.util.ArrayList; /* 练习:序列化集合 当我们想在文件中保存多个对象的时候 可以把多个对象储存到一个集合中 对集合进行序列化和反序列化 */ p
阅读全文
摘要:注意: static关键字:静态关键字 静态优先于非静态加载到内存中(静态优先于对象进入到内存中) 被static修饰的成员变量不能被序列化,序列化的都是对象 transient关键字: 瞬态关键字 被transient修饰成员变量,也不能被序列化 InvalidClassException异常解决
阅读全文
摘要:package com.chunzhi.Test03ReverseStream; import java.io.*; /* 练习:转换文件编码 将GBK编码的文本文件,转换为UTF-8编码的文本文件。 注意:要确认一下被转化的文本文件是否是GBK文本文件 分析: 1.创建InputOutStream
阅读全文
摘要:package com.chunzhi.Test03ReverseStream; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; /* java.io.Inpu
阅读全文
摘要:package com.chunzhi.Test03ReverseStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStreamWriter; /* java.io.Ou
阅读全文
摘要:package com.chunzhi.Test01BufferedStream; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; /* java.io.BufferedRea
阅读全文
摘要:package com.chunzhi.Test01BufferedStream.Test05Writer; import java.io.FileWriter; import java.io.IOException; /* 续写和换行 续写,追加写:使用两个参数的构造方法 FileWriter(S
阅读全文
摘要:package com.chunzhi.Test01BufferedStream; import java.io.BufferedInputStream; import java.io.FileInputStream; import java.io.IOException; /* java.io.B
阅读全文
摘要:package com.chunzhi.Test01BufferedStream; import java.io.BufferedOutputStream; import java.io.FileOutputStream; import java.io.IOException; /* java.io
阅读全文
摘要:package com.chunzhi.Test07Prop; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.util.Properties; import
阅读全文
摘要:package com.chunzhi.Test06TryCatch; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; /* JDK 7的新特性 在try的后边可
阅读全文
摘要:package com.chunzhi.Test06TryCatch; import java.io.FileWriter; import java.io.IOException; /* 在jdk 1.7之前使用try catch finally处理流中的异常 格式: try { 可能会产生异常的代
阅读全文
摘要:package com.chunzhi.Test05Writer; import java.io.FileWriter; import java.io.IOException; /* 字符输出流写数据的其它方法: void write(char[] cbuf):写入字符数组 abstract voi
阅读全文
摘要:FileOutputStream字节输出流的续写和换行: package com.chunzhi.Test01OutputStream; import java.io.FileOutputStream; import java.io.IOException; /* 追加写/续写:使用两个参数的构造方
阅读全文
摘要:flush方法和close方法的区别: flush:刷新缓冲区,流对象可以继续使用。 close:先刷新缓冲区,然后通知系统释放资源。流对象不能再被使用了。
阅读全文
摘要:package com.chunzhi.Test05Writer; import java.io.FileWriter; import java.io.IOException; /* java.io.Writer:字符输出流,是所有字符输出流的最顶层的父类,是一个抽象类 共性的成员方法: void
阅读全文
摘要:package com.chunzhi.Test04Reader; import java.io.FileReader; import java.io.IOException; /* java.io.Reader:字符输入流,是字符输入流的最顶层的父类,定义了一些共性的成员方法,是一个抽象类 共性的
阅读全文
摘要:以InputStream、OutputStream结尾是字节流 以Reader、Writer结尾是字符流
阅读全文
摘要:当使用字节流读取文件文件时,可能会有一个小问题。 就是遇到中文字符时,可能会不显示完整的字符,那是因为一个中文字符可能占用多个字节储存。 所以Java提供一些字符流,以字符为单位读写数据,专门用于处理文本文件。
阅读全文
摘要:package com.chunzhi.Test03CopyFile; public class Time { public static void main(String[] args) { // 程序起始时间 long start = System.currentTimeMillis(); fo
阅读全文
摘要:package com.chunzhi.Test03CopyFile; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; /* 文件复制练习:一读一写 文件复制的步
阅读全文
摘要:传递过滤器对象,创建过滤器FileFilter实现类: package com.chunzhi.Test03Filter; import java.io.File; public class Test01Filter { public static void main(String[] args)
阅读全文
摘要:package com.chunzhi.Test02Recursion; import java.io.File; public class Test04Recursion { public static void main(String[] args) { File f = new File("C
阅读全文
摘要:package com.chunzhi.Test02Recursion; /* 递归:方法自己调用自己 递归的分类: 递归分为两种,直接递归和间接递归 直接递归称为方法自身调用自己。 间接递归可以A方法调用B方法,B方法调用C方法,C方法调用A方法。 注意事项: 1.递归一定要有条件限定,保证递归能
阅读全文
摘要:package com.chunzhi.Test01.File; import java.io.File; /* File类遍历(文件夹)目录功能 public String[] list():返回一个String数组,表示该File目录中的所有子文件或目录 Public File[] listFi
阅读全文
摘要:package com.chunzhi.Test01.File; import java.io.File; import java.io.IOException; /* File类创建删除功能的方法 public boolean createNewFile():当且仅当具有该名称的文件尚不存在时,创
阅读全文
摘要:已经解决了:Windows server 2008 R2 X64 此方法应该几乎通用,如果你有更好的办法记得分享给大家 解决办法如下: 1.关闭虚拟机 2.在虚拟机设置分别设置CD/DVD、CD/DVD2和软盘为自动检测三个步骤, 如果已经设置好了第一个CD/DVD,现在只需执行图中两步即可 3.再
阅读全文
摘要:package com.chunzhi.Test01.File; import java.io.File; /* File类获取功能的方法 public String getAbsolutePath():返回此File的绝对路径名字符串 public String getPath():将此File转
阅读全文
摘要:package com.chunzhi.Test01.File; import java.io.File; /* File类的构造方法 */ public class Test02File { public static void main(String[] args) { method03();
阅读全文
摘要:Lambda表达式的标准格式: 由三部分组成:一些参数、一个箭头、一段代码 格式: (参数列表)-> {一些重写方法的代码}; 解释说明格式: ():接口中抽象方法的参数列表,没有参数空着即可;有参数就写出参数,多个参数使用逗号分隔 ->:传递的意思,把参数传递给方法体{} {}:重写接口的抽象方法
阅读全文
摘要:package com.chunzhi.Test03Lambda; public class Test02Lambda { public static void main(String[] args) { // 使用实现Runnable接口的方式实现多线程 // 创建Runnable接口的实现类对象
阅读全文
摘要:package com.chunzhi.Test10WaitAndNotify; /* 等待唤醒案例:线程之间的通信 创建一个顾客线程:告知老板要的包子种类和数量,调用wait方法,放弃cpu执行权,进入到WAITING状态(无限等待) 创建一个老板线程:花了5秒做包子,做好包子之后,调用notif
阅读全文
摘要:package com.chunzhi.Test09Lock; /* 模拟卖票案例 创建3个线程,同时开启,对共享的票进行出售 */ public class Test01Ticket { public static void main(String[] args) { // 创建Runnable接
阅读全文
摘要:package com.chunzhi.Test08Synchronized; /* 模拟卖票案例 创建3个线程,同时开启,对共享的票进行出售 */ public class Test01Ticket { public static void main(String[] args) { // 创建R
阅读全文
摘要:package com.chunzhi.Test07Synchronized; /* 模拟卖票案例 创建3个线程,同时开启,对共享的票进行出售 */ public class Test01Ticket { public static void main(String[] args) { // 创建R
阅读全文
摘要:分时调度: 所有线程轮流使用CPU的使用权,平均分配每个线程占用CPU的时间。 抢占式调度: 优先让优先级高的线程使用CPU,如果线程的优先级相同,那么会随机选择一个(线程随机性),Java使用的为抢占式调度
阅读全文
摘要:什么是进程: 进程是指一个内存中运行的应用程序,每个进程都有一个独立的内存空间,一个应用程序可以同时运行多个进程; 进程也是程序的一次执行过程,是系统运行程序的基本单位;系统运行一个程序既是一个进程从创建、运行到消亡的过程。什么是线程: 线程是进程中的一个执行单元,负责当前进程中程序的执行,一个进程
阅读全文
摘要:package com.chunzhi.Test05InnerClassThread; /* 匿名内部类方式实现线程创建 匿名:没有名字 内部类:写在其它类内部的类 匿名内部类作用:简化代码 把子类继承父类,重写父类的方法,创建子类对象合成一步完成 把实现类实现类接口,重写接口中的方法,创建实现类对
阅读全文
摘要:package com.chunzhi.Test04Runnable; /* 创建多线程程序的第二种方式:实现Runnable接口 java.lang.Runnable Runnable 接口应该由哪些打算通过某一线程执行其实例的类来实现。类必须定义一个称为run的无参数方法。 java.lang.
阅读全文
摘要:并发:指两个或多个事件在同一个时间段内发生(交替执行) 并行:指两个或多个事件在同一时刻发生(同时执行)
阅读全文
摘要:1.避免了单继承的局限性 一个类只能继承一个类,类继承了Thread类就不能继承其他的类 实现了Runnable接口,还可以继承其它类,实现其它的接口 2.增强了程序的扩展性,降低了程序的耦合性(解耦) 实现Runnable接口的方式,把设置线程任务和开启新线程进行了分离(解耦) 实现类中,重写了r
阅读全文
摘要:package com.chunzhi; /* public static void sleep(long millis):使当前正在执行的线程以指定的毫秒数暂停(暂时停止执行); 毫秒结束后将会继续执行 */ public class Test03sleep { public static voi
阅读全文
摘要:package com.chunzhi.Test04MyException;import java.util.Scanner;/* 要求:模拟注册操作,如果用户名已存在,则抛出异常并提示:亲,该用户名已经被注册。 分析: 1.使用数组保存已经注册的用户 2.使用Scanner获取用户注册的昵称 3.
阅读全文
摘要:package com.chunzhi.Test04MyException;/* 自定义异常类: java提供的异常类,不够我们使用,需要自己自定义一些异常类 格式: public class XXXException extends Exception或者继承RuntimeException {
阅读全文
摘要:package com.chunzhi.Test03Exception;/* 子父类的异常: 如果父类抛出了多个异常,子类重写父类方法时,抛出和父类相同的异常或者是父类异常的子类或者不抛出异常。 父类方法没有抛出异常,子类重写父类该方法时也不可抛出异常。此时子类产生该异常,只能捕获处理,不能声明抛出
阅读全文
摘要:/* Throwable类中定义了3个异常处理的方法: String getMessage() 返回此 throwable 的简短描述。 String toString() 返回此 throwable 的详细消息字符串。 void printStackTrace() JVM打印异常对象,默认此方法,
阅读全文
摘要:package com.chunzhi.Test02Exception;import java.io.IOException;/* try...catch:异常处理的第二种方式,自己处理异常 格式: try{ 可能产生异常的代码 }catch(定义一个异常的变量,用来接收try中抛出的异常对象) {
阅读全文
摘要:package com.chunzhi.Test01Exception;import java.io.FileNotFoundException;import java.io.IOException;/* throws关键字:异常处理的第一种方式,交给别人处理 作用: 当方法内部抛出异常对象的时候,
阅读全文
摘要:package com.chunzhi.Test01Exception;/* throw关键字 作用: 可以使用throw关键字在指定的方法中抛出指定的异常 使用格式: throw new xxxException("这里写异常产生的原因"); 注意: 1.throw关键字必须写在方法的内部 2.t
阅读全文
摘要:/* java.lang.Throwable:类是Java语言中所有错误或异常的超类(父类)。 Exception:编译期异常,进行编译(写代码时)java程序出现的问题 RuntimeException:运行期异常,java程序运行过程中出现的问题 异常就相当于程序得了一个小毛病(感冒),把异常处
阅读全文
摘要:package com.chunzhi.Test03Map;import java.util.HashMap;import java.util.Scanner;/* 练习: 计算一个字符串中每个字符出现次数 */public class Test03MapTest { public static v
阅读全文
摘要:package com.chunzhi;import java.util.HashMap;import java.util.Hashtable;/* java.util.Hashtable<K,V>集合 implements Map<K,V>接口 Hashtable:底层也是一个哈希表,线程安全的集
阅读全文
摘要:LinkedHashMap集合是有序,不允许重复元素的。 与HashMap相比:HashMap是无序,不允许重复元素
阅读全文
摘要:构造方法作用就是对类进行初始化。 如果你没有定议任何构造方法的形式,程式会为你取一个不带任何参数的构造函数,那么你产生类的对像时只能用不带参数的方法,如:class a {}//没有任何构造函数。构造方法就是与类同名的那个方法,它的作用是可以用来初始化,例子如下class Person //人类{
阅读全文
摘要:package com.chunzhi.Test02Set;import java.util.HashSet;import java.util.LinkedHashSet;/* java.util.LinkedHashSet集合 extends HashSet集合 LinkedHashSet集合特点
阅读全文
摘要:IndexOutOfBoundsException:索引越界异常,集合会报此异常 ArrayIndexOutOfBoundsException:数组索引越界异常 StringIndexOutOfBoundsException:字符串索引越界异常
阅读全文
摘要:package com.chunzhi.Test01List;import java.util.ArrayList;import java.util.Iterator;import java.util.List;/* java.util.List接口 extends Collection接口 Lis
阅读全文
摘要:package com.chunzhi.Test04Poker;import java.util.ArrayList;import java.util.List;public class ListDemo { public static void main(String[] args) { //示例
阅读全文
摘要:package com.chunzhi.Test04Poker;import java.util.ArrayList;import java.util.Collections;/* 斗地主综合案例: 1.准备牌 2.洗牌 3.发牌 4.看牌 */public class DouDiZhu { pub
阅读全文
摘要:package com.chunzhi.Test03Generic;/* 泛型的通配符: ?:代表任意的数据类型 使用方式: 不能创建对象使用 只能作为方法的参数使用 */import java.util.ArrayList;import java.util.Iterator;public clas
阅读全文