07 2022 档案

摘要:常用函数式接口 JDK提供了大量常用的函数式接口以丰富Lambda的典型使用场景,它们主要在`java.util.function包中被提供。下面是最简单的几个接口乃使用示例 Supplier接口 java.util.function.Supplier<T> 接口仅包含一个无参的方法︰T get() 阅读全文
posted @ 2022-07-21 09:12 zj勇敢飞,xx永相随 阅读(33) 评论(0) 推荐(0) 编辑
摘要:函数式接口作为方法的参数案例 使用Lambda作为参数和返回值 如果抛开实现原理不说,Java中的Lambda表达式可以被当作是匿名内部类的替代品。如果方法的参数是一个函数式接口类型,那么就可以使用Lambda表达式进行替代。使用Lambda表达式作为方法参数,其实就是使用函数式接口作为方法参数。 阅读全文
posted @ 2022-07-20 11:14 zj勇敢飞,xx永相随 阅读(48) 评论(0) 推荐(0) 编辑
摘要:Lambda的延迟执行 有些场景的代码执行后,结果不一定会被使用,从而造成性能浪费。而Lambda表达式是延迟执行的,这正好可以作为解决方案,提升性能 性能浪费的日志案例 注:日志可以帮助我们快速的定位问题,记录程序运行过程中的情况,以便项目的监控和优化。一种典型的场景就是对参数进行有条件使用,例如 阅读全文
posted @ 2022-07-20 10:51 zj勇敢飞,xx永相随 阅读(43) 评论(0) 推荐(0) 编辑
摘要:函数式接口的概念&函数式接口的定义 函数式接口在Java中是指:有且仅有一个抽象方法的接口。函数式接口,即适用于函数式编程场景的接口。而Java中的函数式编程体现就是Lambda,所以函数式接口就是可以适用于Lambda使用的接口。只有确保接口中有且仅有一个抽象方法,Java中的Lambda才能顺利 阅读全文
posted @ 2022-07-19 11:38 zj勇敢飞,xx永相随 阅读(198) 评论(0) 推荐(0) 编辑
摘要:模拟BS服务器分析 模拟BS服务器代码实现 package DemoThreadPool01; import java.io.*; import java.net.ServerSocket; import java.net.Socket; public class TCP { public stat 阅读全文
posted @ 2022-07-19 10:13 zj勇敢飞,xx永相随 阅读(40) 评论(0) 推荐(0) 编辑
摘要:综合案例_文件上传案例阻塞问题 void shutdownOutput()禁用此套接字的输出流用了之前的 void shutdownOutput()禁用此套接字的输出流用了之后的 综合案例_文件上传案例优化(文件命名&循环接收&多线程提高效率) package Demo2Proer; import 阅读全文
posted @ 2022-07-19 09:21 zj勇敢飞,xx永相随 阅读(45) 评论(0) 推荐(0) 编辑
摘要:TCP通信的文件上传案例原理:客户端读取本地的文件,把文件上传到服务器,服务器在把上传的文件保存到服务器的硬盘上1.客户端使用本地的字节输入流,读取要上传的文件⒉客户端使用网络字节输出流,把读取到的文件上传到服务器3.服务器使用网络字节输入流读取客户端上传的文件4.服务器使用本地字节输出流,把读取到 阅读全文
posted @ 2022-07-18 13:54 zj勇敢飞,xx永相随 阅读(32) 评论(0) 推荐(0) 编辑
摘要:通信的客户端代码实现 package demo01_File; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.Socket; /* TCP通信的 阅读全文
posted @ 2022-07-18 10:40 zj勇敢飞,xx永相随 阅读(55) 评论(0) 推荐(0) 编辑
摘要:TCP通信能实现两台计算机之间的数据交互,通信的两端,要严格区分为客户端(Client )与服务端(Server ) 。 两端通信时步骤∶1.服务端程序,需要事先启动,等待客户端的连接。⒉.客户端主动连接服务器端,连接成功才能通信。服务端不可以主动连接客户端。 在Java中,提供了两个类用于实现TC 阅读全文
posted @ 2022-07-18 09:17 zj勇敢飞,xx永相随 阅读(29) 评论(0) 推荐(0) 编辑
摘要:IP地址 协议∶计算机网络通信必须遵守的规则,已经介绍过了,不再熬述。 IP地址:指互联网协议地址 ( lnternet Protocol Address ),俗称IP。IP地址用来给一个网络中的计算机设 备做唯一的编号。假如我们把“个人电脑"比作"一台电话′的话,那么"IP地址"就相当于"电话号码 阅读全文
posted @ 2022-07-18 08:58 zj勇敢飞,xx永相随 阅读(1784) 评论(0) 推荐(0) 编辑
摘要:网络通信协议 网络通信协议︰通过计算机网络可以使多台计算机实现连接,位于同一个网络中的计算机在进行连接和通信时需要遵守一定的规则,这就好比在道路中行驶的汽车一定要遵守交通规则一样。在计算机网络中,这些连接和通信的规则被称为网络通信协议,它对数据的传输格式、传输速率、传输步骤等做了统一规定,通信双方必 阅读全文
posted @ 2022-07-14 11:41 zj勇敢飞,xx永相随 阅读(280) 评论(0) 推荐(0) 编辑
摘要:打印流_概述和使用 PrintStream: java.io.PrintStream PrintStream 为其他输出流添加了功能,使它们能够方便地打印各种数据值表示形式。它还提供其他两项功能。与其他输出流不同,PrintStream 不会抛出 IOException;而是,异常情况仅设置可通过 阅读全文
posted @ 2022-07-14 11:25 zj勇敢飞,xx永相随 阅读(108) 评论(0) 推荐(0) 编辑
摘要:InvalidClassException异常_原理和解决方案 当JVM反序列化对象时,能找到class文件,但是class文件在序列化对象之后发生了修改,那么反序列化操作也会失败,抛出一个InvalidClassException异常。发生这个异常的原因如下: 该类的序列版本号与从流中读取的类描述 阅读全文
posted @ 2022-07-14 10:09 zj勇敢飞,xx永相随 阅读(308) 评论(0) 推荐(0) 编辑
摘要:对象的反序列化流_ObjectInputStream package DemoThreadPool; import java.io.*; /* java.io.0bjectInputstream extends InputstreamobjectInputstream:对象的反序列化流 作用:把文件 阅读全文
posted @ 2022-07-14 09:50 zj勇敢飞,xx永相随 阅读(24) 评论(0) 推荐(0) 编辑
摘要:Java 提供了一种对象序列化的机制。用一个字节序列可以表示一个对象,该字节序列包含该 对象的数据 、 对象的类型 和 对象中存储的属性 等信息。字节序列写出到文件之后,相当于文件中持久保存了一个对象的信息。反之,该字节序列还可以从文件中读取回来,重构对象,对它进行反序列化。对象的数据 、 对象的类 阅读全文
posted @ 2022-07-14 09:16 zj勇敢飞,xx永相随 阅读(25) 评论(0) 推荐(0) 编辑
摘要:InputStreamReader类: java.io.InputStreamReader extends ReaderInputStreamReader:是字节流通向字符流的桥梁:他使用指定的charset读取字节并将其解码为字符。 继承自父类的共性成员方法: int read() 读取单个字符并 阅读全文
posted @ 2022-07-13 14:08 zj勇敢飞,xx永相随 阅读(43) 评论(0) 推荐(0) 编辑
摘要:转换流的原理-InputStreamReader-OutputStreamWriter 编码引出的问题 --FileReader读取GBK格式的文件 会乱码 相当于ide默认的utf-8读取GBK编码的汉字 表示的字节不同会报错 FileReader可以读取IDE默认编码格式UTF-8的文件,但是F 阅读全文
posted @ 2022-07-13 11:55 zj勇敢飞,xx永相随 阅读(70) 评论(0) 推荐(0) 编辑
摘要:字符编码和字符集 字符集是多个字符的集合,可以理解为二进制数,与字符的映射关系,唯一的一个编号就代表一个字。字符编码是计算机中对字符的表示方式。字符集与字符编码可以这样区分:1.字符集是书写系统字母与符号的集合。2.字符编码则是将字符映射为一特定的字节或字节序列,是一种规则。 字符编码计算机中储存的 阅读全文
posted @ 2022-07-13 10:40 zj勇敢飞,xx永相随 阅读(368) 评论(0) 推荐(0) 编辑
摘要:BufferedReader_字符缓冲输入流 一、BufferedReader类概念 API文档描述: BufferedReader类从字符输入流中读取文本并缓冲字符,以便有效地读取字符,数组和行 可以通过构造函数指定缓冲区大小也可以使用默认大小。对于大多数用途,默认值足够大 由Reader构成的每 阅读全文
posted @ 2022-07-13 10:25 zj勇敢飞,xx永相随 阅读(109) 评论(0) 推荐(0) 编辑
摘要:缓冲流的效率测试_复制文件 效率测试 查询API,缓冲流读写方法与基本的流是一致的,我们通过复制大文件( 375MB),测试它的效率。 package DemoThreadPool; import java.io.FileInputStream; import java.io.FileOutputS 阅读全文
posted @ 2022-07-13 10:07 zj勇敢飞,xx永相随 阅读(43) 评论(0) 推荐(0) 编辑
摘要:BufferedOutputStream——字节缓冲输出流 java.io.BufferedOutputStream extends OutputStream 继承自父类的共性方法: public void close() :关闭此输出流并释放与此流相关联的任何系统资源。 public void f 阅读全文
posted @ 2022-07-12 13:31 zj勇敢飞,xx永相随 阅读(70) 评论(0) 推荐(0) 编辑
摘要:Properties集合中的方法load package Demo_Properties; import java.io.*; import java.util.Properties; import java.util.Set; /* java.util.Properties集合extends Ha 阅读全文
posted @ 2022-07-09 16:41 zj勇敢飞,xx永相随 阅读(57) 评论(0) 推荐(0) 编辑
摘要:使用Properties集合存储数据,遍历取出Properties集合中的数据 概述java.util. Properties继承于Hashtable,来表示一个持久的属性集。它使用键值结构存储数据,每对应值都是一个字符串。该类也被许多Java类使用,比如获取系统属性时,system.getProp 阅读全文
posted @ 2022-07-09 16:07 zj勇敢飞,xx永相随 阅读(34) 评论(0) 推荐(0) 编辑
摘要:IO异常的处理 JDK7前处理 之前的入门练习,我们一直把异常抛出,而实际开发中并不能这样处理,建议使用try . .catch...finally代码块,处理异常部分,代码使用演示∶ package DemoOutputStream; import java.io.FileWriter; impo 阅读全文
posted @ 2022-07-09 15:01 zj勇敢飞,xx永相随 阅读(68) 评论(0) 推荐(0) 编辑
摘要:写出其他数据 1.写出字符数组:write(char[] cbuf)|和(write(char[] cbuf,int off,int len),每次可以写出字符数组中的数据,用法类似FileOutputStream,代码使用演示: package DemoOutputStream; import j 阅读全文
posted @ 2022-07-09 14:44 zj勇敢飞,xx永相随 阅读(108) 评论(0) 推荐(0) 编辑
摘要:字符输出流的基本使用_写出单个字符到文件 package DemoOutputStream; import java.io.FileWriter; import java.io.IOException; /* java.io.writer :字符输出流,是所有字符输出流的最顶层的父类,是一个抽象类 阅读全文
posted @ 2022-07-09 14:12 zj勇敢飞,xx永相随 阅读(70) 评论(0) 推荐(0) 编辑
摘要:字符输入流读取字符数据 字符输入流的使用步骤:1.创建FiLeReader对象,构造方法中绑定要读取的数据源 2.使用FileReader对象中的方法read读取文件 3.释放资源 package DemoOutputStream; import java.io.FileInputStream; i 阅读全文
posted @ 2022-07-09 13:54 zj勇敢飞,xx永相随 阅读(61) 评论(0) 推荐(0) 编辑
摘要:练习_文件复制 图片复制复制原理图解 原理:从已有文件中读取字节,将该字节写出到另一个文件中 明确:数据源:c:\a.jpg数据目的地:d:\a.jpg 文件复制的步骤: 1.创建一个字节输入流对象,构造方法中绑定要读取的数据源2.创建一个字节输出流对象,构造方法中绑定要写入的目的地3.使用字节输入 阅读全文
posted @ 2022-07-09 11:15 zj勇敢飞,xx永相随 阅读(58) 评论(0) 推荐(0) 编辑
摘要:字节输入流一次读取一个字节的原理 1.新建new FileInputStream对象会指向要读取的文件 指向的是文件中的第一个字节 2.read();读取一个字节并返回 读取 read找JVM再OS再读取数据来 3.read方法读完一位会自动向后移动一位 先a 再 b 再移动一位c 再移动一位到结束 阅读全文
posted @ 2022-07-09 10:50 zj勇敢飞,xx永相随 阅读(123) 评论(0) 推荐(0) 编辑
摘要:字节输入流_InputStream类&FileInputStream类介绍 package DemoOutputStream; /* java.io.Inputstream:字节输入流 此抽象类是表示字节输入流的所有类的超类。 定义了所有子类共性的方法: int read()从输入流中读取数据的下一 阅读全文
posted @ 2022-07-09 10:23 zj勇敢飞,xx永相随 阅读(103) 评论(0) 推荐(0) 编辑
摘要:字节输出流写多个字节的方法 1. 写出字节: write(int b) 方法,每次可以写出一个字节数据,代码使用演示: //创建FileOutpuStream对象,构造方法中绑定要写入数据的目的地 FileOutputStream flie = new FileOutputStream(new Fi 阅读全文
posted @ 2022-07-09 08:59 zj勇敢飞,xx永相随 阅读(150) 评论(0) 推荐(0) 编辑
摘要:字节输出流写入数据到文件 package Demo2Proer; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; /* java.io.OutputS 阅读全文
posted @ 2022-07-09 08:58 zj勇敢飞,xx永相随 阅读(243) 评论(0) 推荐(0) 编辑
摘要:一、Java流的概述 java.io.OutputStream:字节输出流 此抽象类是表示输出字节流的所有类的超类。 定义了一些子类共性的成员方法: - public void close() :关闭此输出流并释放与此流相关联的任何系统资源。 - public void flush() :刷新此输出 阅读全文
posted @ 2022-07-08 21:18 zj勇敢飞,xx永相随 阅读(139) 评论(0) 推荐(0) 编辑
摘要:IO概述(概念&分类) 概念 一、IO流概述IO:输入/输出(Input/Output) 流:是一个种抽象的概念,是对数据传输的总称。也就是说数据在设备间的传输称为流,流的本质是数据传输。 IO中的流就相当与我们日常生活中的管道,我们通过管道来把水引到用户,通过管道把石油输送到大罐.同样,我们利用流 阅读全文
posted @ 2022-07-08 21:15 zj勇敢飞,xx永相随 阅读(1002) 评论(0) 推荐(0) 编辑
摘要:FileFilter过滤器的原理和使用 、 package Demo_Recurison; /* 在File类中有两个和ListFiLes重载的方法,方法的参数传递的就是过滤器File[j listFiles(FiLeFiLter filter) java.io.FiLeFiLter接口| File 阅读全文
posted @ 2022-07-08 21:12 zj勇敢飞,xx永相随 阅读(62) 评论(0) 推荐(0) 编辑
摘要:2.3 递归打印多级目录 代码实现: package Demo_Recurison; import java.io.File; public class Demo { public static void main(String[] args) { // 创建File对象 File dir = ne 阅读全文
posted @ 2022-07-08 20:51 zj勇敢飞,xx永相随 阅读(35) 评论(0) 推荐(0) 编辑
摘要:练习_使用递归计算1-n之间的和 package Demo_Recurison; public class DiGuiDemo { public static void main(String[] args) { //计算1~num的和,使用递归完成 int num = 5; // 调用求和的方法 阅读全文
posted @ 2022-07-08 20:45 zj勇敢飞,xx永相随 阅读(125) 评论(0) 推荐(0) 编辑
摘要:遍历(文件夹)目录功能: Public String [] list(); 返回一个String数组,表示该File目录中的所有子文件或目录 Public File [] listFiles() 返回一个File数组,表示该File目录中的所有的子文件或目录 注意:list方法 和listFiles 阅读全文
posted @ 2022-07-08 20:33 zj勇敢飞,xx永相随 阅读(169) 评论(0) 推荐(0) 编辑
摘要:File判断功能的方法: boolean exists(); 此file表示的文件或目录是否实际存在boolean isDirector();此file表示的是否为目录boolean isFile();此file表示的是否为文件 package demo01_File; import java.io 阅读全文
posted @ 2022-07-08 19:40 zj勇敢飞,xx永相随 阅读(34) 评论(0) 推荐(0) 编辑
摘要:File类的构造方法 File类概述和构造方法:1、File类概述:File:文件和目录路径名的抽象表达形式;确切的说File更应该叫做一个路径;2、构造方法:File(String pathname):根据一个路径得到File对象File(String parent, String child): 阅读全文
posted @ 2022-07-08 16:48 zj勇敢飞,xx永相随 阅读(139) 评论(0) 推荐(0) 编辑
摘要:File类的静态成员变量 package Demo_Proer; import java.io.File; /* java.io.FiLe类 文件和目录路径名的抽象表示形式。 java把电脑中的文件和文件夹(目录)封装为了一个File类,我们可以使用FiLe类对文件和文件夹进行操作我们可以使用Fil 阅读全文
posted @ 2022-07-08 16:08 zj勇敢飞,xx永相随 阅读(38) 评论(0) 推荐(0) 编辑
摘要:Lambda省略格式 可推导即可省略 Lambda强调的是“做什么"而不是“怎么做”,所以凡是可以根据上下文推导得知的信息,都可以省略。例如上例还可以使用Lambda的省略写法∶ public static void main(String[ ] args) { invokeCalc(120,130 阅读全文
posted @ 2022-07-08 15:39 zj勇敢飞,xx永相随 阅读(67) 评论(0) 推荐(0) 编辑
摘要:Lambda表达式有参数有返回值的练习 操作步骤:1定义一个接口(Addable),里面定义一个抽象方法:int add(int x,int y)2定义一个测试类(AddableDemo),在测试类中提供两个方法:一个方法是:useAddable(Addable a)一个方法是主方法,在主方法中调用 阅读全文
posted @ 2022-07-08 15:18 zj勇敢飞,xx永相随 阅读(62) 评论(0) 推荐(0) 编辑
摘要:Lambda标准格式 匿名内部类的好处与弊端一方面,匿名内部类可以帮我们省去实现类的定义;另一方面,匿名内部类的语法――确实太复杂了! 语义分析 仔细分析该代码中的语义,Runnable接口只有一个run方法的定义︰public abstract void run( );即制定了一种做事情的方案(其 阅读全文
posted @ 2022-07-08 14:49 zj勇敢飞,xx永相随 阅读(169) 评论(0) 推荐(0) 编辑
摘要:冗余的Runnable代码 传统写法 当需要启动一个线程去完成任务时,通常会通过java.lang.Runnable接口来定义任务内容,并使用java.lang.Thread类来启动该线程。代码如下: public class Demo01Runnable { public static void 阅读全文
posted @ 2022-07-08 14:18 zj勇敢飞,xx永相随 阅读(43) 评论(0) 推荐(0) 编辑
摘要:函数式编程思想概述 线程池的使用 Java里面线程池的顶级接口是java.util.concurrent.Executor,但是严格意义上讲 Executor并不是一个线程 池,而只是一个执行线程的工具。真正的线程池接口是java.util.concurrent. Executorservice。要 阅读全文
posted @ 2022-07-08 13:50 zj勇敢飞,xx永相随 阅读(34) 评论(0) 推荐(0) 编辑
摘要:消费者(吃货)类:是一个线程类,可以继承Thread设置线程任务(run):吃包子 对包子的状态进行判断false:没有包子吃货线程调用wait方法进入等待状态true:有包子吃货吃包子 吃货吃完包子修改包子的状态为false没有吃货唤醒包子铺线程 package com.Thread.WaitAn 阅读全文
posted @ 2022-07-08 11:26 zj勇敢飞,xx永相随 阅读(27) 评论(0) 推荐(0) 编辑
摘要:等待唤醒机制需求分析 资源类: 包子类设置包子的属性皮馅包子的状态:有true,没有false package com.Thread.WaitAndNotify; /* 设置包子的属性 皮 馅 包子的状态:有true,没有false */ public class BaoZi { //皮 Strin 阅读全文
posted @ 2022-07-08 11:04 zj勇敢飞,xx永相随 阅读(25) 评论(0) 推荐(0) 编辑
摘要:线程间通信 什么是等待唤醒机制这是多个线程间的一种协作机制。谈到线程我们经常想到的是线程间的竞争( race ),比如去争夺锁,但这并不是故事的全部,线程间也会有协作机制。就好比在公司里你和你的同事们,你们可能存在在晋升时的竞争,但更多时候你们更多是一 起合作以完成某些任务。 就是在一个线程进行了规 阅读全文
posted @ 2022-07-08 10:46 zj勇敢飞,xx永相随 阅读(36) 评论(0) 推荐(0) 编辑
摘要:等待唤醒案例代码实现 package Synchronized_demo; /** * @Description: java类作用描述 * @Author: Zhiwen.Li【 * @CreateDate: 2019/10/5 16:02 * @UpdateUser: Zhiwen.Li * @U 阅读全文
posted @ 2022-07-08 10:00 zj勇敢飞,xx永相随 阅读(22) 评论(0) 推荐(0) 编辑
摘要:线程状态概述 线程从创建到运行到结束是一个线程的生命周期,当线程被创建到结束过程中,不是一直处于运行状态的,下面来介绍一下线程从运行到结束所有的状态. 接下来看一下详细图解: sleep与waitsleep(time):线程睡眠,让线程睡眠指定的毫秒数,在线程睡眠过程中,该线程是不会释放锁对象的,也 阅读全文
posted @ 2022-07-08 09:39 zj勇敢飞,xx永相随 阅读(101) 评论(0) 推荐(0) 编辑
摘要:静态同步方法 Java提供了synchronized关键字用于修饰方法,使用synchronized修饰的方法被称为同步方法。当然,synchronized关键字除了修饰方法之外,还可以修饰普通代码块,使用synchronized修饰的代码块被称为同步代码块。 Java语法规定,任何线程进入同步方法 阅读全文
posted @ 2022-07-08 09:07 zj勇敢飞,xx永相随 阅读(227) 评论(0) 推荐(0) 编辑
摘要:线程安全产生的原因什么是线程安全在操作系统中,因为线程的调度是随机的(抢占式执行),正是因为这中随机性,才会让代码中产生很多bug 如果认为是因为这样的线程调度才导致代码产生了bug,则认为线程是不安全的, 如果这样的调度,并没有让代码产生bug,我们则认为线程是安全的这里的安全指代的是代码中有没有 阅读全文
posted @ 2022-07-07 21:14 zj勇敢飞,xx永相随 阅读(96) 评论(0) 推荐(0) 编辑
摘要:线程安全 如果有多个线程在同时运行,而这些线程可能会同时运行这段代码。程序每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的。我们通过一个案例,演示线程的安全问题:电影院要卖票,我们模拟电影院的卖票过程。假设要播放的电影是“葫芦娃大战奥特曼”,本次电影的座位 阅读全文
posted @ 2022-07-07 21:00 zj勇敢飞,xx永相随 阅读(34) 评论(0) 推荐(0) 编辑
摘要:Thread和Runnable的区别 如果非要说区别的话,那么就有一下几点 Runnable 和 Thread 创建线程的方式不一样 Runnable 是接口,Thread 是实体类,Thread 和 Runnable 的关系就是实体与实现的关系。 在使用上,如果有复杂的线程操作需求,那就选择继承T 阅读全文
posted @ 2022-07-07 20:53 zj勇敢飞,xx永相随 阅读(282) 评论(0) 推荐(0) 编辑
摘要:Thread类的常用方法_sleep sleep介绍 sleep() 定义在Thread.java中,sleep() 的作用是让当前线程休眠,即当前线程会从“运行状态”进入到“休眠(阻塞)状态”。sleep()会指定休眠时间,线程休眠的时间会大于/等于该指定休眠时间;在线程重新被唤醒时,它会由“阻塞 阅读全文
posted @ 2022-07-07 20:32 zj勇敢飞,xx永相随 阅读(61) 评论(0) 推荐(0) 编辑
摘要:Thread类的常用方法_获取线程名称的方法 线程创建 在上一天内容中我们已经可以完成最基本的线程开启,那么在我们完成操作过程中用到了java.lang.Thread类,API中该类中定义了有关线程的一些方法,具体如下∶ 构造方法 public Thread():分配一个新的线程对象。 public 阅读全文
posted @ 2022-07-07 17:56 zj勇敢飞,xx永相随 阅读(62) 评论(0) 推荐(0) 编辑
摘要:多线程原理_随机性打印结果 多线程的基础原理 · 多线程是为了同步完成多项任务,不是为了提高运行效率,而是为了提高资源使用效率来提高系统的效率。线程是在同一时间需要完成多项任务的时候实现的。 多线程有什么好处 · 使用线程可以把占据时间长的程序中的任务放到后台去处理· 用户界面可以更加吸引人,这样比 阅读全文
posted @ 2022-07-07 17:05 zj勇敢飞,xx永相随 阅读(21) 评论(0) 推荐(0) 编辑
摘要:主线程 前段时间有同事提到了主线程这个名词,但当时我们说的主线程是指Java Web程序中每一个请求进来时处理逻辑的线程。当时感觉这个描述很奇怪,所以就来研究下这个主线程的确切语义。 Java提供了内置的多线程编程支持,多线程包括两个或多个可并发执行的部分,每一部分叫做线程,每个线程定义了单独的执行 阅读全文
posted @ 2022-07-07 16:30 zj勇敢飞,xx永相随 阅读(48) 评论(0) 推荐(0) 编辑
摘要:线程概念 线程∶线程是进程中的一个执行单元,负责当前进程中程序的执行,一个进程中至少有一个线程。一个进程中是可以有多个线程的,这个应用程序也可以称之为多线程程序。简而言之:一个程序运行后至少有一个进程,一个进程中可以包含多个线程 我们可以再电脑底部任务栏,右键 >打开任务管理器,可以查看当前任务的进 阅读全文
posted @ 2022-07-07 15:39 zj勇敢飞,xx永相随 阅读(33) 评论(0) 推荐(0) 编辑
摘要:摘要:并发与并行是两个既相似而又不相同的概念:并发性,又称共行性,是指能处理多个同时性活动的能力;并行是指同时发生的两个并发事件,具有并发的含义,而并发则不一定并行,也亦是说并发事件之间不一定要同一时刻发生。 并行介绍 并行在操作系统中是指,一组程序按独立异步的速度执行,不等于时间上的重叠(同一个时 阅读全文
posted @ 2022-07-07 15:28 zj勇敢飞,xx永相随 阅读(287) 评论(0) 推荐(0) 编辑
摘要:自定义异常类 为什么需要自定义异常类: 我们说了Java中不同的异常类,分别表示着某一种具体的异常情况,那么在开发中总是有些异常情况是SUN没有定义好的,此时我们根据自己业务的异常情况来定义异常类。例如年龄负数问题,考试成绩负数问题等等。 在上述代码中,发现这些异常都是JDK内部定义好的,但是实际开 阅读全文
posted @ 2022-07-07 15:13 zj勇敢飞,xx永相随 阅读(48) 评论(0) 推荐(0) 编辑
摘要:异常注意事项_多异常的捕获处理 1.多个异常使用捕获该如何处理呢? 1)多个异常分别处理 2)多个异常一次捕获,多次处理 3)多个异常一次捕获一次处理 一般我们是使用一次捕获多次处理方式,格式如下: 1)多个异常分别处理 后续代码能够执行 2)多个异常一次捕获,多次处理 一个try多个catch注意 阅读全文
posted @ 2022-07-07 14:55 zj勇敢飞,xx永相随 阅读(39) 评论(0) 推荐(0) 编辑
摘要:Throwable类中3个异常处理的方法 package Demo_Exception; import java.io.IOException; /* try...catch:异常处理的第二种方式,自己处理异常 格式: try{ 可能产生异常的代码 }catch(定义一个异常的变量,用来接收try中 阅读全文
posted @ 2022-07-07 14:30 zj勇敢飞,xx永相随 阅读(98) 评论(0) 推荐(0) 编辑
摘要:throws关键字_异常处理的第一种方式,交给别人处理 1.抛出异常throw 在编写程序时,我们必须要考虑程序出现问题的情况。比如,在定义方法时,方法需要接收参数。那么,当调用方法使用接收到的参数时,首先需要先对参数数据进行合法的判断,数据若不合法,就应该告诉调用者,传递合法的数据进来。这时需要使 阅读全文
posted @ 2022-07-07 14:12 zj勇敢飞,xx永相随 阅读(71) 评论(0) 推荐(0) 编辑
摘要:throw关键字 异常的处理 Java异常处理的五个关键字:try.catch、finally.throw、throws 抛出异常throw 在编写程序时,我们必须要考虑程序出现问题的情况。比如,在定义方法时,方法需要接受参数。那么,当调用方法使用接受到的参数时,首先需要先对参数数据进行合法的判断, 阅读全文
posted @ 2022-07-07 13:44 zj勇敢飞,xx永相随 阅读(42) 评论(0) 推荐(0) 编辑
摘要:异常分类 我们平常说的异常就是指Exception,因为这类异常一旦出现,我们就要对代码进行更正,修复程序。 异常(Exception)的分类:根据在编译时期还是运行时期去检查异常? 编译时期异常:checked异常。在编译时期,就会检查,如果没有处理异常,则编译失败。(如日期格式化异常)运行时期异 阅读全文
posted @ 2022-07-07 11:29 zj勇敢飞,xx永相随 阅读(67) 评论(0) 推荐(0) 编辑
摘要:斗地主案例的代码实现 package Date; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.List; /** * 实现模拟斗地主功能 * 阅读全文
posted @ 2022-07-07 10:16 zj勇敢飞,xx永相随 阅读(85) 评论(0) 推荐(0) 编辑
摘要:Debug追踪 使用IDEA的断点调试功能,查看程序的运行过程 在有效代码行,点击行号右边的空白区域,设置断点,程序执行到断点将停止,我们可以手动来运行程序 2. 点击Debug运行模式 程序停止在断点上不再执行,而IDEA最下方打开了Debug调试窗口 Debug调试窗口介绍 快捷键F8,代码向下 阅读全文
posted @ 2022-07-07 10:08 zj勇敢飞,xx永相随 阅读(50) 评论(0) 推荐(0) 编辑
摘要:需求︰计算一个字符串中每个字符出现次数。 分析:1.获取一个字符串对象 2.创建一个Map集合,键代表字符,值代表次数。 3.遍历字符串得到每个字符。 4.判断Map中是否有该键。 5.如果没有,第一次出现,存储次数为1;如果有,则说明已经出现过,获取到对应的值进行++,再次存储。 6.打印最终结果 阅读全文
posted @ 2022-07-07 09:46 zj勇敢飞,xx永相随 阅读(38) 评论(0) 推荐(0) 编辑
摘要:LinkedHashMap集合 我们知道HashMap保证成对元素唯一,并且查询速度很快,可是成对元素存放进去是没有顺序的,那么我们要保证有序,还要速度快这么办 package Demo_Map; import java.util.HashMap; import java.util.LinkedHa 阅读全文
posted @ 2022-07-07 09:22 zj勇敢飞,xx永相随 阅读(23) 评论(0) 推荐(0) 编辑
摘要:LinkedHashMap集合 我们知道HashMap保证成对元素唯一,并且查询速度很快,可是成对元素存放进去是没有顺序的,那么我们要保证有序,还要速度快这么办 package Demo_Map; import java.util.HashMap; import java.util.LinkedHa 阅读全文
posted @ 2022-07-07 09:21 zj勇敢飞,xx永相随 阅读(14) 评论(0) 推荐(0) 编辑
摘要:LinkedHashMap集合 我们知道HashMap保证成对元素唯一,并且查询速度很快,可是成对元素存放进去是没有顺序的,那么我们要保证有序,还要速度快这么办 package Demo_Map; import java.util.HashMap; import java.util.LinkedHa 阅读全文
posted @ 2022-07-07 09:20 zj勇敢飞,xx永相随 阅读(23) 评论(0) 推荐(0) 编辑
摘要:Map集合遍历键值对方式 Set<Map.Entry<K, V>> entrySet() 返回此映射中包含的映射关系的Set视图 1、使用Map集合中的方法entrySet(),把Map集合中多个Entry对象取出来,存储到一个Set集合中2、遍历Set集合,获取每一个Entry对象3、使用Entr 阅读全文
posted @ 2022-07-06 21:10 zj勇敢飞,xx永相随 阅读(36) 评论(0) 推荐(0) 编辑
摘要:Map集合遍历键找值方式键找值方式:即通过元素中的键,获取键所对应的值分析步骤︰ 1.获取Map中所有的键,由于键是唯一的,所以返回一个Set集合存储所有的键。方法提示: keyset() 2.遍历键的Set集合,得到每一个键。 3.根据键,获取键所对应的值。方法提示: get(K key) Map 阅读全文
posted @ 2022-07-06 21:01 zj勇敢飞,xx永相随 阅读(49) 评论(0) 推荐(0) 编辑
摘要:Map常用子类通过查看Map接口描述,看到Map有多个子类,这里我们主要讲解常用的HashMap集合、LinkedHashMap集合。HashMap<K,V>∶存储数据采用的哈希表结构,元素的存取顺序不能保证一致。由于要保证键的唯一、不重复,需要重写键的hashCode()方法、equals()方法 阅读全文
posted @ 2022-07-06 20:53 zj勇敢飞,xx永相随 阅读(68) 评论(0) 推荐(0) 编辑
摘要:Collections 常用功能 public static <T> void sort(List<T> list , Comparator<? siper T> )':将集合中元素按照指定规则排序。 package Demo_Collecllectiionws; import java.util. 阅读全文
posted @ 2022-07-06 20:35 zj勇敢飞,xx永相随 阅读(73) 评论(0) 推荐(0) 编辑
摘要:Collections 常用功能java.utils.collections是集合工具类,用来对集合进行操作。部分方法如下:public static <T> boolean addAll(Collection<T> c,T... elements) :往集合中添加一些元素。public stati 阅读全文
posted @ 2022-07-06 20:08 zj勇敢飞,xx永相随 阅读(31) 评论(0) 推荐(0) 编辑
摘要:LinkedHashSet我们知道HashSet保证元素唯一,可是元素存放进去是没有顺序的,那么我们要保证有序,怎么办呢?在HashSet下面有一个子类 java.util.LinkedHashSet,它是链表和哈希表组合的一个数据存储结构。 LinkedHashSet 具有可预知迭代顺序的 set 阅读全文
posted @ 2022-07-06 19:40 zj勇敢飞,xx永相随 阅读(33) 评论(0) 推荐(0) 编辑
摘要:HashSet存储自定义类型元素 给HashSet中存放自定义类型元素时,需要重写对象中的hashCode和equals方法,建立自己的比较方式,才能保证HashSet集合中的对象唯一 Set集合在调用add方法的时候,add方法会调用元素的hashCode方法和equals方法,判断元素是否重复 阅读全文
posted @ 2022-07-06 17:47 zj勇敢飞,xx永相随 阅读(37) 评论(0) 推荐(0) 编辑
摘要:HashSet集合存储数据的结构(哈希表) 什么是哈希表呢? 在JDK1.8之前,哈希表底层采用数组+链表实现,即使用链表处理冲突,同一hash值的链表都存储在一个链表里 但是当位于一个桶中的元素较多,即hash值相等的元素较多时,通过key值依次查找的效率较低。而JDK1.8中,哈 希表存储采用数 阅读全文
posted @ 2022-07-06 17:35 zj勇敢飞,xx永相随 阅读(87) 评论(0) 推荐(0) 编辑
摘要:Vector集合 Vector是线程安全的,所以速度慢,已经被ArryList所取代。 Vector中 几个重要的方法 package cn.itcast.p1.vector.demo; import java.util.Enumeration; import java.util.Iterator; 阅读全文
posted @ 2022-07-06 17:12 zj勇敢飞,xx永相随 阅读(36) 评论(0) 推荐(0) 编辑
摘要:List的子类 ArrayList集合 java.util.ArrayList 集合数据存储的结构是数组结构。元素增删慢,查找快,由于日常开发中使用最多的功能 为查询数据、遍历数据,所以ArrayList是最常用的集合。 许多程序员开发时非常随意地使用ArrayList完成任何需求,并不严谨,这种用 阅读全文
posted @ 2022-07-06 16:52 zj勇敢飞,xx永相随 阅读(55) 评论(0) 推荐(0) 编辑
摘要:红黑树二叉树:binary tree ,是每个结点不超过2的有序树( tree ) 。简单的理解,就是一种类似于我们生活中树的结构,只不过每个结点上都最多只能有两个子结点。二叉树是每个节点最多有两个子树的树结构。顶上的叫根结点,两边被称作"左子树"和“右子树”。 生活中的树 计算机中的树(倒着) 二 阅读全文
posted @ 2022-07-06 15:57 zj勇敢飞,xx永相随 阅读(37) 评论(0) 推荐(0) 编辑
摘要:数组数组:Array,是有序的元素序列,数组是在内存中开辟一段连续的空间,并在此空间存放元素。就像是一排出 租屋,有100个房间,从001到100每个房间都有固定编号,通过编号就可以快速找到租房子的人。 简单的说,采用该结构的集合,对元素的存取有如下的特点︰ ·查找元素快︰通过索引,可以快速访问指定 阅读全文
posted @ 2022-07-06 15:19 zj勇敢飞,xx永相随 阅读(48) 评论(0) 推荐(0) 编辑
摘要:数据结构 数据结构有什么用? 当你用着java里面的容器类很爽的时候,你有没有想过,怎么ArrayList就像一个无限扩充的数组,也好像链表之类 的。好用吗?好用,这就是数据结构的用处,只不过你在不知不觉中使用了。 现实世界的存储,我们使用的工具和建模。每种数据结构有自己的优点和缺点,想想如果Goo 阅读全文
posted @ 2022-07-06 14:57 zj勇敢飞,xx永相随 阅读(28) 评论(0) 推荐(0) 编辑
摘要:斗地主案例的需求分析 准备牌 54张,存储到一个集合中 特殊牌:大王 小王 其他52张牌: 定义一个数组 V 集合,存储4张花色:♣ ♠ ♥ ♦ 定义一个数组 V 集合,存储13个序号:2 A K Q .....3 循环嵌套遍历两个 数组 V 集合,组装52张牌:♠2 ♣4...... 洗牌 使用集 阅读全文
posted @ 2022-07-06 14:38 zj勇敢飞,xx永相随 阅读(100) 评论(0) 推荐(0) 编辑
摘要:泛型通配符当使用泛型类或者接口时,传递的数据中,泛型类型不确定,可以通过通配符<?>表示。但是一旦使用泛型的通符后,只能使用Object类中的共性方法,集合中元素自身方法无法使用。通配符基本使用泛型的通配符:不知道使用什么类型来接收的时候,此时可以使用?,?表示未知通配符。此时只能接受数据,不能往该 阅读全文
posted @ 2022-07-06 14:27 zj勇敢飞,xx永相随 阅读(66) 评论(0) 推荐(0) 编辑
摘要:定义和使用含有泛型的方法 GenericMethod package Generic01_Demo01; /* 定义含有泛型的方法:泛型定义在方法的修饰符和返回值类型之间格式: 修饰符<泛型>返回值类型方法名(参数列表(使用泛型)){ 方法体; } 含有泛型的方法,在调用方法的时候确定泛型的数据类型 阅读全文
posted @ 2022-07-06 13:36 zj勇敢飞,xx永相随 阅读(26) 评论(0) 推荐(0) 编辑
摘要:使用泛型的好处 创建集合对象,使用泛型好处:1.避免了类型转换的麻烦,存储的是什么类型,取出的就是什么类型2.把运行期异常(代码运行之后会抛出的异常),提升到了编译期(写代码的时候会报错)弊端:泛型是什么类型,只能存储什么类型的数据 package Collection_Demo01; import 阅读全文
posted @ 2022-07-06 10:40 zj勇敢飞,xx永相随 阅读(49) 评论(0) 推荐(0) 编辑
摘要:增强for增强for循环(也称for each循环)是JDK1.5以后出来的一个高级for循环,专门用来遍历数组和集合的。它的内部原理其实是个lterator迭代器,所以在遍历的过程中,不能对集合中的元素进行增删操作。格式︰ for(元素的数据类型变量: collection集合or数组){ /写操 阅读全文
posted @ 2022-07-06 10:39 zj勇敢飞,xx永相随 阅读(54) 评论(0) 推荐(0) 编辑
摘要:迭代器的代码实现 package Collection_Demo01; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; /* java.util.Iterator接口:迭代器(对集 阅读全文
posted @ 2022-07-06 10:23 zj勇敢飞,xx永相随 阅读(96) 评论(0) 推荐(0) 编辑
摘要:Collection常用功能 Collection是所有单列集合的父接口,因此在Collection中定义了单列集合(List和Set)通用的一些方法,这些方法可用于操作所有的单列集合。方法如下: public boolean add(E e):把给定的对象添加到当前集合中。public void 阅读全文
posted @ 2022-07-06 09:40 zj勇敢飞,xx永相随 阅读(38) 评论(0) 推荐(0) 编辑
摘要:集合框架 JAVASE提供了满足各种需求的APl,在使用这些API前,先了解其继承与接口操作架构,才能了解何时采用哪个类,以及类之间如何彼此合作,从而达到灵活应用。 集合按照其存储结构可以分为两大类,分别是单列集合java.util.collection和双列集合java.util.Nap,今天我们 阅读全文
posted @ 2022-07-05 20:43 zj勇敢飞,xx永相随 阅读(78) 评论(0) 推荐(0) 编辑
摘要:包装类1.基本数据类型对应的包装类 byte Byte short Short int lnteger long Long float Float double Double char Character boolean Boolean ⒉数字转为字符串 int num =50; String a 阅读全文
posted @ 2022-07-05 19:59 zj勇敢飞,xx永相随 阅读(30) 评论(0) 推荐(0) 编辑
摘要:自动装箱与自动拆箱由于我们经常要做基本类型与包装类之间的转换,从Java 5 ( JDK 1.5)开始,基本类型与包装类的装箱、拆箱动作可以自动完成。例如︰ Integer i - 4;//自动装箱。相当于Integer i - Integer.valueOf(4); i = i + 5;//等号右 阅读全文
posted @ 2022-07-05 19:49 zj勇敢飞,xx永相随 阅读(41) 评论(0) 推荐(0) 编辑
摘要:包装类 概述 Java提供了两个类型系统,基本类型与引用类型,使用基本类型在于效率,然而很多情况,会创建对象使用,因为对象可以做更多的功能,如果想要我们的基本类型像对象一样操作,就可以使用基本类型对应的包装类,如下: 包装类: 基本数据类型的数据,使用起来非常的方便但是没有对应的方法来操作这些数据所 阅读全文
posted @ 2022-07-05 19:30 zj勇敢飞,xx永相随 阅读(216) 评论(0) 推荐(1) 编辑
摘要:System类 currentTimeMillisO方法 作用:获取当前系统毫秒值时间 arraycopy0方法 作用:复制数组 package StringBuilder_Demo01; public class Demo03_Test { public static void main(Stri 阅读全文
posted @ 2022-07-05 17:39 zj勇敢飞,xx永相随 阅读(38) 评论(0) 推荐(0) 编辑
摘要:StringBuilder类 java.lang类String String类代表字符串。Java程序中的所有字符串字面值(如“abc”)都作为此类的实例实现。 字符串是常量﹔它们的值在创建之后不能更改。字符串缓冲区支持可变的字符串。因为String 对象是不可变的,所以可以共享 构造方法根据Str 阅读全文
posted @ 2022-07-05 16:57 zj勇敢飞,xx永相随 阅读(146) 评论(0) 推荐(0) 编辑
摘要:时间日期相关类总结 三、日期相关类1.Date类A.构造方法Date();根据当前系统时间创建日期对象Date(long time);根据传入的毫秒值时间创建日期对象B.成员方法long getTime();获取当前日期对象的毫秒值时间String toLocaleString();根据本地格式转换 阅读全文
posted @ 2022-07-05 16:24 zj勇敢飞,xx永相随 阅读(30) 评论(0) 推荐(0) 编辑
摘要:练习_请使用日期时间相关的API,计算出一个人已经出生了多少天 请使用日期时间相关的API,计算出一个人已经出生了多少天。 思路:1.获取当前时间对应的毫秒值2.获取自己出生日期对应的毫秒值3.两个时间相减(当前时间-出生日期) 1. package Date; /* //练习:请使用时间相关的AP 阅读全文
posted @ 2022-07-05 15:50 zj勇敢飞,xx永相随 阅读(94) 评论(0) 推荐(0) 编辑
摘要:DateFormat类java.text .DateFormat|是日期/时间格式化子类的抽象类,我们通过这个类可以帮我们完成日期和文本之间的转换,也就是可以在Date对象与String对象之间进行来回转换。格式化∶按照指定的格式,从Date对象转换为String对象。 解析:按照指定的格式,从St 阅读全文
posted @ 2022-07-05 15:13 zj勇敢飞,xx永相随 阅读(103) 评论(0) 推荐(0) 编辑
摘要:日期时间类 Date类概述java.util.Date类表示特定的瞬间,精确到毫秒。继续查阅Date类的描述,发现Date拥有多个构造函数,只是部分已经过时,但是其中有未过时的构造函数可以把毫秒值转成日期对象。public Date():分配Date对象并初始化此对象,以表示分配它的时间(精确到毫秒 阅读全文
posted @ 2022-07-05 14:46 zj勇敢飞,xx永相随 阅读(341) 评论(0) 推荐(0) 编辑
摘要:重写Object类的equals方法 package Object_demo01; import java.util.Objects; public class Person { private String name; private int age; public Person() { } pu 阅读全文
posted @ 2022-07-05 14:25 zj勇敢飞,xx永相随 阅读(80) 评论(0) 推荐(0) 编辑
摘要:java.lang.object类是Java语言中的根类,即所有类的父类。它中描述的所有方法子类都可以使用。在对象实例化的时候,最终找的父类就是Object。如果一个类没有特别指定父类,那么默认则继承自Object类。例如∶ public class Myclass /*extends object 阅读全文
posted @ 2022-07-05 13:42 zj勇敢飞,xx永相随 阅读(25) 评论(0) 推荐(0) 编辑
摘要:发红包案例_普通红包平均分发 首先得有最基本的姓名和余额两个属性,这里面有两个角色,打个比方就只能群主能发红包,还有就是群成员收红包。这里面的两个角色一个是群主发红包,还有一个就是收红包的群成员角色。不管是群主还是群成员都有共同的属性。就是姓名和余额,所以在这里可以定义一个父类,父类里面定义两个私有 阅读全文
posted @ 2022-07-05 11:40 zj勇敢飞,xx永相随 阅读(388) 评论(0) 推荐(0) 编辑
摘要:interface作为方法参数和返回值类型 当接口作为方法的参数时,需要传递什么呢?当接口作为方法的返回值类型时,需要返回什么呢?对,其实都是它的 子类对象。 ArrayList 类我们并不陌生,查看API我们发现,实际上,它是 java.util.List 接口的实现类。所 以,当我们看见 Lis 阅读全文
posted @ 2022-07-05 11:21 zj勇敢飞,xx永相随 阅读(43) 评论(0) 推荐(0) 编辑
摘要:匿名内部类的注意事项 对格式“new 接口名称() {...}”进行解析:1. new代表创建对象的动作2. 接口名称就是匿名内部类需要实现哪个接口3. {...}这才是匿名内部类的内容 另外还要注意几点问题:1. 匿名内部类,在【创建对象】的时候,只能使用唯一一次。如果希望多次创建对象,而且类的内 阅读全文
posted @ 2022-07-05 10:41 zj勇敢飞,xx永相随 阅读(55) 评论(0) 推荐(0) 编辑
摘要:局部内部类的final问题 package demo02; /* 局部内部类,如果希望访问所在方法的局部变量,那么这个局部变量必须是【有效final的】。 备注:从Java 8+开始,只要局部变量事实不变,那么final关键字可以省略。 原因: 1. new出来的对象在堆内存当中。 2. 局部变量是 阅读全文
posted @ 2022-07-05 10:13 zj勇敢飞,xx永相随 阅读(29) 评论(0) 推荐(0) 编辑
摘要:内部类的同名变量访问 package demo02; //如果出现了重名现象,那么格式是:外部类名称.this.外部类成员变量名 public class Outer { int num = 10; public class Inner{ int num = 20; public void meth 阅读全文
posted @ 2022-07-05 09:53 zj勇敢飞,xx永相随 阅读(38) 评论(0) 推荐(0) 编辑
摘要:成员内部类 成员内部类:定义在类中方法外的类 定义格式 class 外部类 { class 内部类{ } } 在描述事物时,若一个事物内部还包含其他事物,就可以使用内部类这种结构。比如,汽车类 Car 中包含发动机 类 Engine ,这时, Engine 就可以使用内部类来描述,定义在成员位置。 阅读全文
posted @ 2022-07-05 09:23 zj勇敢飞,xx永相随 阅读(67) 评论(0) 推荐(0) 编辑
摘要:权限修饰符 概述 在Java中提供了四种访问权限,使用不同的访问权限修饰符修饰时,被修饰的内容会有不同的访问权限, public:公共的。 protected:受保护的 default:默认的 private:私有的 不同权限的访问能力 可见,public具有最大权限。private则是最小权限。 阅读全文
posted @ 2022-07-04 20:37 zj勇敢飞,xx永相随 阅读(49) 评论(0) 推荐(0) 编辑
摘要:final关键字用于修饰成员方法 局部变量——基本类型 基本类型的局部变量,被fifinal修饰后,只能赋值一次,不能再更改。代码如下: package demo01; /* /* 当final关键字用来修饰一个方法的时候,这个方法就是最终方法,也就是不能被覆盖重写。格式: 修饰符final返回值类 阅读全文
posted @ 2022-07-04 20:32 zj勇敢飞,xx永相随 阅读(51) 评论(0) 推荐(0) 编辑
摘要:fifinal关键字 概述 学习了继承后,我们知道,子类可以在父类的基础上改写父类内容,比如,方法重写。那么我们能不能随意的继承 API中提供的类,改写其内容呢?显然这是不合适的。为了避免这种随意改写的情况,Java提供了 final 关键字, 用于修饰不可改变内容。 fifinal: 不可改变。可 阅读全文
posted @ 2022-07-04 17:46 zj勇敢飞,xx永相随 阅读(212) 评论(0) 推荐(0) 编辑
摘要:接口多态的综合案例 笔记本USB接口案例 笔记本电脑(laptop)通常具备使用USB设备的功能。在生产时,笔记本都预留了可以插入USB设备的USB接口, 但具体是什么USB设备,笔记本厂商并不关心,只要符合USB规格的设备都可以。 定义USB接口,具备最基本的开启功能和关闭功能。鼠标和键盘要想能在 阅读全文
posted @ 2022-07-04 17:19 zj勇敢飞,xx永相随 阅读(92) 评论(0) 推荐(0) 编辑
摘要:向下转型 向下转型:父类类型向子类类型向下转换的过程,这个过程是强制的。 一个已经向上转型的子类对象,将父类引用转为子类引用,可以使用强制类型转换的格式,便是向下转型。 使用格式: 子类类型 变量名 = (子类类型) 父类变量名; 如:Cat c =(Cat) a; 为什么要转型 当使用多态方式调用 阅读全文
posted @ 2022-07-04 17:12 zj勇敢飞,xx永相随 阅读(88) 评论(0) 推荐(0) 编辑
摘要:使用多态的好处 如果不用多态,只用子类,那么写法是::Teacher one = new TeacherO;one.workO; 1/讲课Assistant two = new AssistantO:,two.workO;1/辅导;我现在唯一要做的事情,就是调用work方法,其他的功能不关心。如果使 阅读全文
posted @ 2022-07-04 15:34 zj勇敢飞,xx永相随 阅读(94) 评论(0) 推荐(0) 编辑
摘要:多态的好处 实际开发的过程中,父类类型作为方法形式参数,传递子类对象给方法,进行方法的调用,更能体现出多态的扩展 性与便利。代码如下: 定义父类: package day01.quanbu; public abstract class Animal { public abstract void ea 阅读全文
posted @ 2022-07-04 15:23 zj勇敢飞,xx永相随 阅读(84) 评论(0) 推荐(0) 编辑
摘要:多态的概述 引入 多态是继封装、继承之后,面向对象的第三大特性。 生活中,比如跑的动作,小猫、小狗和大象,跑起来是不一样的。再比如飞的动作,昆虫、鸟类和飞机,飞起来也 是不一样的。可见,同一行为,通过不同的事物,可以体现出来的不同的形态。多态,描述的就是这样的状态 定义 多态: 是指同一行为,具有多 阅读全文
posted @ 2022-07-04 15:12 zj勇敢飞,xx永相随 阅读(82) 评论(0) 推荐(0) 编辑
摘要:继承父类并实现多个接口 接口的多实现 之前学过,在继承体系中,一个类只能继承一个父类。而对于接口而言,一个类是可以实现多个接口的,这叫做接 口的多实现。并且,一个类能继承一个父类,同时实现多个接口。 实现格式: package day01.quanbu; /* 使用接口的时候,需要注意: 1. 接口 阅读全文
posted @ 2022-07-04 14:59 zj勇敢飞,xx永相随 阅读(357) 评论(0) 推荐(0) 编辑
摘要:接口的常量定义和使用 定义一个接口 package day01.quanbu; /* 接口当中可以定义成员变量,但是必须使用public static final三个关键字进行修饰 从效果上,这其实就是接口的【常量】 格式: publuc static final 数据类型 常量名称 = 数据值 一 阅读全文
posted @ 2022-07-04 14:09 zj勇敢飞,xx永相随 阅读(94) 评论(0) 推荐(0) 编辑
摘要:接口的私有方法定义 私有方法的使用 私有方法:只有默认方法可以调用。 私有静态方法:默认方法和静态方法可以调用。 如果一个接口中有多个默认方法,并且方法中有重复的内容,那么可以抽取出来,封装到私有方法中,供默认方法 去调用。从设计的角度讲,私有的方法是对默认方法和静态方法的辅助。同学们在已学技术的基 阅读全文
posted @ 2022-07-04 13:35 zj勇敢飞,xx永相随 阅读(350) 评论(0) 推荐(0) 编辑
摘要:接口的静态方法定义 package day01.day04; /* /* 从Jova 8开始,接口当中允许定义静态方法。格式: public static返回值类型方法名称(参数列表){方法体 } 提示。就是将abstract或者default换成static即可,带上方法体。 */ public 阅读全文
posted @ 2022-07-04 13:08 zj勇敢飞,xx永相随 阅读(271) 评论(0) 推荐(0) 编辑
摘要:基本的实现 类与接口的关系为实现关系,即类实现接口,该类可以称为接口的实现类,也可以称为接口的子类。实现的动作类 似继承,格式相仿,只是关键字不同,实现使用 implements 关键字。 非抽象子类实现接口: 1. 必须重写接口中所有抽象方法。 2. 继承了接口的默认方法,即可以直接调用,也可以重 阅读全文
posted @ 2022-07-04 11:35 zj勇敢飞,xx永相随 阅读(496) 评论(0) 推荐(0) 编辑
摘要:接口概述与生活举例 接口,是Java语言中一种引用类型,是方法的集合,如果说类的内部封装了成员变量、构造方法和成员方法,那么 接口的内部主要就是封装了方法,包含抽象方法( JDK 7及以前),默认方法和静态方法( JDK 8),私有方法 ( JDK 9)。 接口的定义,它与定义类方式相似,但是使用 阅读全文
posted @ 2022-07-04 11:13 zj勇敢飞,xx永相随 阅读(144) 评论(0) 推荐(0) 编辑
摘要:继承的综合案例 综合案例:群主发普通红包 群主发普通红包。某群有多名成员,群主给成员发普通红包。普通红包的规则: 1. 群主的一笔金额,从群主余额中扣除,平均分成n等份,让成员领取。 2. 成员领取红包后,保存到成员余额中。 请根据描述,完成案例中所有类的定义以及指定类之间的继承关系,并完成发红包的 阅读全文
posted @ 2022-07-04 10:52 zj勇敢飞,xx永相随 阅读(68) 评论(0) 推荐(0) 编辑
摘要:抽象方法和抽象类的格式 使用 abstract 关键字修饰方法,该方法就成了抽象方法,抽象方法只包含一个方法名,而没有方法体。 定义格式: 修饰符 abstract 返回值类型 方法名 (参数列表); 代码举例: public abstract void run(); 抽象类 如果一个类包含抽象方法 阅读全文
posted @ 2022-07-04 10:28 zj勇敢飞,xx永相随 阅读(156) 评论(0) 推荐(0) 编辑
摘要:继承的特点 Java只支持单继承,不支持多继承 //一个类只能有一个父类,不可以有多个父类。 class C extends A{} //ok class C extends A,B... //error Java支持多层继承(继承体系)。 class A{} class B extends A{} 阅读全文
posted @ 2022-07-04 09:37 zj勇敢飞,xx永相随 阅读(124) 评论(0) 推荐(0) 编辑
摘要:this关键字的三种用法 package day01.demo05; public class Fu { int num = 30; } /* /* super关键字用来访问父类内容,而this关键字用来访问本类内容。用法也有三种: 1.在本类的成员方法中,访问本类的成员变量。 2.在本类的成员方法 阅读全文
posted @ 2022-07-04 09:19 zj勇敢飞,xx永相随 阅读(194) 评论(0) 推荐(0) 编辑
摘要:继承中方法的覆盖重写_应用场景 class Phone { public void sendMessage(){ System.out.println("发短信"); } public void call(){ System.out.println("打电话"); } public void sho 阅读全文
posted @ 2022-07-03 20:15 zj勇敢飞,xx永相随 阅读(31) 评论(0) 推荐(0) 编辑
摘要:成名方法重名--重写(Override) 如果子类父类中出现重名的成员方法,这时的访问是一种特殊情况,叫做方法重写 (Override)。 方法重写 :子类中出现与父类一模一样的方法时(返回值类型,方法名和参数列表都相同),会出现覆盖效 果,也称为重写或者复写。声明不变,重新实现。 代码如下 方法覆 阅读全文
posted @ 2022-07-03 20:02 zj勇敢飞,xx永相随 阅读(53) 评论(0) 推荐(0) 编辑
摘要:成员变量重名 如果子类父类中出现重名的成员变量,这时的访问是有影响的。代码如下: class Fu { // Fu中的成员变量。 int num = 5; } class Zi extends Fu { // Zi中的成员变量 int num = 6; public void show() { // 阅读全文
posted @ 2022-07-01 12:17 zj勇敢飞,xx永相随 阅读(33) 评论(0) 推荐(0) 编辑
摘要:继承的格式 class 父类 { ... } class 子类 extends 父类 { ... } package demox.demopro.day07Math; 定义子类的格式: public class子类名称 extends父类名称{ l ... */ /* * 定义员工类Employee 阅读全文
posted @ 2022-07-01 09:40 zj勇敢飞,xx永相随 阅读(58) 评论(0) 推荐(0) 编辑
摘要:Math练习:小学数学真题 练习 请使用 Math 相关的API,计算在 -10.8 到 5.9 之间,绝对值大于 6 或者小于 2.1 的整数有多少个? package demox.demopro.day07Math; /* /*题目: 计算在-10.8到5.9之间,绝对值大于6或者小于2.1的整 阅读全文
posted @ 2022-07-01 09:11 zj勇敢飞,xx永相随 阅读(50) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示