![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JavaSE学习笔记
包含多个板块
Xzzz2020
个人博客地址:https://xzzz2020.gitee.io/,可以收藏一下,会第一时间发布文章
展开
-
Java反射--反射与代理模式
内容学习于:edu.aliyun.com1. 静态代理设计模式弊端 代理设计模式最为核心的意义在于,所有的操作业务接口都设置两个子类,一个子类负责真实的业务实现,另外一个子类负责代理业务操作,如果没有这个代理业务,真实业务也无法进行处理。 现在假设说希望可以实现一个数据的处理操作,在进行数据处理的时候,要求进行合理的事务控制,在数据库里面永远都会存在有一个事务的概念,利用事务可以保...原创 2020-02-06 21:15:37 · 547 阅读 · 0 评论 -
Java反射--ClassLoader类加载器
内容学习于:edu.aliyun.com1. 类加载器简介 所有的Java程序的执行流程: JVM进程加载字节码文件,随后进行字节码文件的虚拟机解析,并且得到一个结果。 经过分析可以发现,所有的“*.class"文件在磁盘上都会以二进制数据的形式保存(反射机制提供的就是二进制文件的解析能力),但是如果要想进行解析,那么首先要做到类的信息加载,于是在JDK之中针对于信息的加载提供有一...原创 2020-02-06 21:11:07 · 612 阅读 · 0 评论 -
Java反射--反射与简单Java类
内容学习于:edu.aliyun.com简介: 简单Java类已经在之前不断研究过了,而且在学习反射的时候针对于简单Java类之中的各个技术的使用与反射的结合也进行了良好的分析,但是这些只是表面上的情况,本次将针对于简单Java类在实际项目中的设计意义进行更加详细的说明(2005 年开始,Java 行业内开始大量的提出基于简单Java类的各种设计方案)。1. 传统属性赋值弊端 简...原创 2020-02-06 21:06:54 · 399 阅读 · 0 评论 -
Java反射--反射与类操作
内容学习于:edu.aliyun.com1. 反射获取类结构 使用Class实现了对象实例化,并且通过Class类反射构造了类的实例化对象,但是这并不意味着这些全部都属于反射机制的功能,如果认真去分析的话,实际上反射可以完整的实现Java允许规定的类的操作形式。 如果在日后的开发之中你突然发现需要对二进制文件做更深入的一层分析的时候,那么此时你有两个选择:选择一:通过Oracl...原创 2020-02-06 20:52:11 · 440 阅读 · 0 评论 -
Java反射--反射应用案例
内容学习于:edu.aliyun.com1. 反射实例化对象 通过分析之后实际,上可以发现,对于Class类的对象有三种实例化的方式,但是获取Class类的实例化对象不仅仅只是获取它对应类的信息,实际上它可以实现更加丰富的功能。 获取Class类对象之后最大用处在于可以直接利用反射提供的方法调用指定类的构造实现对象的实例化处理,而此操作方法:@Deprecated(since="...原创 2020-02-06 20:37:13 · 972 阅读 · 0 评论 -
反射与class类
内容学习于:edu.aliyun.com1. 认识反射机制 Java语言里面最为重要的特性之一就是反射机制了,正是因为反射机制的存在,才可以使得Java设计更加的灵活,如果你本身是一个完全不懂得反射编程的开发人员,那么你永远写不出高复用的代码,几乎所有Java中的开发框架全部都属于反射的应用实现的。既然要进行反射的讲解,那么首先就需要通过“反”来进行说明。 常规的做法是明确的知道了...原创 2020-02-03 20:36:13 · 214 阅读 · 0 评论 -
Java集合--Stream数据流
前言: 数据流是从JDK 1.8的时候提供的一种快速 的数据处理能力,其主要是工作在类集.上,在JDK 1.8开始之后Collection接口里面追加了两个新的方法:并行数据流计算: public default Stream parallelStream();数据流计算: public default Stream stream(); 所有的流计算都使用Stream进行描述。1...原创 2020-02-03 20:31:57 · 290 阅读 · 0 评论 -
Java集合--队列
1. 队列简介 Stack属于先进后出(First In Last Out、FILO), 而队列本质上指的是先进先出(First In First Out、FIFO), 从本质上来讲队列与栈是一组相对的存储结构,同时在许多实际的项目开发里面,队列都发挥着非常重要的作用,在java类集里面提供有两个队列: Queue、Deque (是Queue子接口)。public interface De...原创 2020-02-03 20:28:46 · 297 阅读 · 0 评论 -
Java集合--集合扩展
内容学习于:edu.aliyun.com1. Stack栈 在浏览器上存在有“后退”按钮,在Android手机上存在有一个“返回”,在开发工具上存在有“撤销"功能,会发现所有的操作都是最晚操作的功能永远都是最先恢复,而越早的操作越晚恢复,实际上这就属于一种栈的结构。public class Stack extends Vector Stack类是Vector 的子类,但是需要...原创 2020-02-03 20:22:58 · 416 阅读 · 0 评论 -
Java集合--Map集合
内容学习于:edu.aliyun.com引言 集合根据数据存储的不同分为两种形式:单值集合、二元偶对象集合,在之前所使用的Collection都属于单值集合,而本次所讲解的Map属于二元偶对象集合,所谓的二元偶对象指的是存储的数据为“key = value"结构对,在使用的时候可以根据key查询出相应的value的内容,所以Collection和Map存储数据的目的分别为: Colle...原创 2020-02-03 20:15:00 · 313 阅读 · 0 评论 -
Java集合--集合输出
内容学习于:edu.aliyun.com引言 至此为止已经实现了List 与Set两个集合数据的内容存储,但是对于所有的单值存储集合,其存储数据的核心目的在于“输出”,但是对于集合的输出并不是说将其转换为对象数组利用循环的形式完成,它有着自己的输出要求,在集合里面针对于输出的操作实际上有四种模式: Iterator (90%)、ListIterator ( 1%)、Enumeratio...原创 2020-02-02 21:43:22 · 2200 阅读 · 0 评论 -
Java集合--Set集合接口
内容学习于:edu.aliyun.com1. Set接口简介 Set接口与List接口一样都属于Collection子接口,但是Set接口里面最大特点在于不能够进行重复元素的数据保存,首先来观察Set接口定义:public interface Set extends Collection 在JDK 1.9以前,Set 接口并没有对Collection接口的方法进行任何的扩充,...原创 2020-02-02 21:29:21 · 197 阅读 · 0 评论 -
Java集合--List集合接口
内容学习于:edu.aliyun.com1. List接口简介 Collction接口中有许多的子接口,但是这些接口里面使用最多的就是List接口,List 实际上就是和之前实现的自定义链表的形式非常相似的一种结构, 此接口定义如下。 如下图所示:No.方法名称类型描述01boolean add(E e)普通在指定的索引位置上添加内容02E ...原创 2020-02-02 21:16:23 · 371 阅读 · 0 评论 -
Java集合--认识类集
内容学习于:edu.aliyun.com1. Java类集简介 如果说现在项目之中需要保存一组对象的时候,那么很明显对象数组是最为原始的基础支持,但是也必须清楚对象数组存在的最大问题在于:长度固定( 现实的开发之中很难确定具体的长度),而且对于数组内容的处理操作比较麻烦,例如:如果要进行对象数组中的内容删除,随后再将新的内容添加到空白的位置上,这样的实现也非常复杂了,正是因为如此,在实...原创 2020-02-01 20:56:11 · 151 阅读 · 0 评论 -
Java网络编程
内容学习于:edu.aliyun.com1. 网络编程简介 Java语言走到今天这一个层次上实际上其最大的技术发挥点就在于网络编程上,Java 拥有良好的性能,尤其是其优秀的多线程并发支持能力,更是其它语言所无法达到的一个高度。 网络的定义:把物理上分离的计算机通过某种途径连接在一起。 如下图所示: 但是如果要进行网络开发,并不一定非要去找到两台不同的电脑,在Java里面,...原创 2020-02-01 20:36:57 · 200 阅读 · 0 评论 -
JavaIO编程案例
内容学习于:edu.aliyun.com1. 数字大小比较 编写Java程序,输入3个整数,并求出3个整数的最大值和最小值。如果要想进行数字的输入处理,那么应该保证输入错误的时候可以重新输入,那么为了可以达到重用的设计,应该准备一个单独的输入数据类。a) 定义一个输入工作类:package com.xzzz.e20200114_chapter1;import java.uti...原创 2020-02-01 20:17:37 · 272 阅读 · 0 评论 -
java_IO--对象序列化
内容学习于:edu.aliyun.com1. 对象序列化基本概念 所谓的对象序列化指的是将内存中保存的对象以二进制数据流的形式进行处理,可以实现对象的保存或者是网络传输。如下图所示: 然而并不是所有的对象都可以被序列化,在Java里面有一个强制性的要求:如果要序列化的对象,那么对象所在的类一定要实现java.io.Serializable父接口,作为序列化的标记,这个接口并没有任...原创 2020-02-01 20:03:39 · 158 阅读 · 0 评论 -
java_IO--输入输出支持
内容学习于:edu.aliyun.com1. 打印流 在java.io包里面最为原始的输出支持的操作方法是: OutputStream.write()、 Writer.write(),但是这两个操作方法实际上都有问题,功能设计上不足,因为这两个操作只支持字符串或字节数组的输出,但是从实际的开发来讲,输出的操作可能有各种数据类型。现在假设说要求你设计一一个类,这个类可以实现各种数据类型的...原创 2020-01-31 12:58:09 · 289 阅读 · 0 评论 -
java_IO--IO深入操作
内容学习于:edu.aliyun.com1. 字符编码 在计算机的世界里面只认0、1的数据,如果要想描述一些文字的编码就需要对这些二进制的数据进行组合,所以才有了现在可以看见的中文,但是在进行编码的时候如果要想正确显示出内容则一定需要有解码,所以编码和解码肯定要采用统一的标准,那么如果不统一的时候就会出现乱码。 那么在实际的开发之中对于常用的编码有如下几种: GBK/GB23...原创 2020-01-31 12:45:59 · 205 阅读 · 0 评论 -
java_IO--综合案例:文件拷贝
内容学习于:edu.aliyun.com文件拷贝功能 在操作系统里面有一个copy命令,这个命令的主要功能是可以实现文件的拷贝处理,现在要求模拟这个命令,通过初始化参数输入拷贝的源文件路径与拷贝的目标路径实现文件的拷贝处理。 需求分析: 需要实现文件的拷贝操作,那么这种拷贝就有可能拷贝各种类型的文件,所以肯定使用字节流; 在进行拷贝的时候有可能需要考虑到大文件的拷贝问题;...原创 2020-01-27 17:52:00 · 224 阅读 · 0 评论 -
java_IO--字节流与字符流
内容学习于:edu.aliyun.com1. 流的基本概念 在java.io包里面File 类是唯一个与文件本身有关的程序处理类,但是File只能够操作文件本身而不能够操作文件的内容,或者说在实际的开发之中IO操作的核心意义在于:输入与输出操作。而对于程序而言,输入与输出可能来自子不同的环境,例如:通过电脑连接服务器上进行浏览的时候,实际上此时客户端发出了一个信息,而后服务器接收到此信...原创 2020-01-27 17:46:05 · 155 阅读 · 0 评论 -
java_IO--文件操作
内容学习于:edu.aliyun.com1. File类基本使用 在Java语言里面提供有对于文件操作系统操作的支持,而这个支持就在java.io.File类中进行了定义,也就是说在整个java.io包里面,File 类是唯一一个与文件本身操作(创建、删除、重命名等等)有关的类,而如果要想进行File 类的操作,必须要提供有完整的路径,而后可以调用相应的方法进行处理。 打开JDK...原创 2020-01-23 12:04:10 · 166 阅读 · 0 评论 -
Java基础类库--类库使用案例分析
内容学习于:edu.aliyun.com1. StringBuff类 定义一个StringBuffer类对象,然后通过append()方法向对象中添加26个小写字母,要求每次只添加一次,共添加26次,然后按照逆序的方式输出,并且可以删除前5个字符。 本操作主要是训练StringBuffer类中的处理方法,因为StringBuffer的主要特点是内容允许修改。代码:public ...原创 2020-01-21 19:56:19 · 370 阅读 · 0 评论 -
Java基础类库--比较器
内容学习于:edu.aliyun.com1. 比较器问题引出 所谓的比较器指的就是进行大小关系的确定判断,下面首先来分析一下比较器存在的意义。 如果要进行数组操作,肯定使用java.util.Arrays的操作类完成,这个类里面提供有绝大部分的数组操作支持,同时在这个类里面还提供有一种对象数组的排序支持: public static void sort(Object[] a);对...原创 2020-01-21 19:51:06 · 170 阅读 · 0 评论 -
Java基础类库--红黑树
内容学习于:edu.aliyun.com1. 原理简介 通过整个的二叉树的实现相信已经可以清楚二叉树的主要特点:数据查询的时候可以提供更好的查询性能,但是这种原始的二叉树的结构是有明显缺陷的,例如:当二叉树结构改变的时候(增加或删除)就有可能出现不平衡的问题。 如下图所示: 之前所谓的解决二叉树性能问题的方式最终全部都变为了null,也就是说如果要想达到最良好效果的二叉树,那么...原创 2020-01-21 15:45:35 · 942 阅读 · 0 评论 -
Java基础类库--二叉树
内容学习于:edu.aliyun.com1. 二叉树结构 在进行链表结构开发的过程之中会发现所有的数据按照收尾相连的状态进行保存,那么当要进行某一个数据查询的时候(判断该数据是否存在),这种情况下它所面对的时间复杂度是“O(n)”, 如果说现在它的数据量小(不超过30个)情况下,那么性能上是不会有太大差别的,而一旦保存的数据量很大,这个时候时间复杂度就会严重损耗程序的运行性能,那么现在...原创 2020-01-21 15:23:12 · 1265 阅读 · 0 评论 -
Java基础类库--开发支持类库
内容学习于:edu.aliyun.com1. Arrays类 数组排序: java.til.Arrays.sort()。 实际上Arrays类就是属于java.util 包中的一个类并且sort()方法是一个static方法,Arrays 类之中的全部方法都是static方法,所以这个类的构造方法肯定是被私有化了,在Arrays 类之中支持有如下的一些常用操作方法:数组排序:pub...原创 2020-01-21 14:45:06 · 715 阅读 · 0 评论 -
Java基础类库--国际化程序实现
1. 国际化程序实现原理 所谓的国际化的程序指的是同一个程序代码可以根据不同的国家实现不同的语言描述,但是程序处理的核心业务是相同的。通过分析之后可以发现,如果要想实现国际化的程序开发,那么要解决的问题就在于以下两点: 如何可以定义保存文字的文件信息; 如何可以根据不同的区域语言的编码读取指定的资源信息。2. Locale类 通过分析可以发现,如果要想实现国际化,那么首先需...原创 2020-01-17 19:53:46 · 215 阅读 · 0 评论 -
Java基础类库--正则表达式
内容学习于:edu.aliyun.com1. 认识正则表达式 通过之前一系列的分析可以发现,String 是一个非常万能的类型,因为String不仅仅可以支持有各种字符串的处理操作,也支持有向各个数据类型的转换功能,所以在项目的开发之中,只要是用户输入的信息基本上都用String表示。于是在向其它数据类型转换的时候,为了保证转换的正确性,往往需要对其进行一些复杂的验证处理,那么这种情况...原创 2020-01-17 19:40:11 · 339 阅读 · 0 评论 -
Java基础类库
内容学习于:edu.aliyun.com1. StringBuffer类 String类是在所有项目开发之中一定会使用到的一个功能类,并且这个类拥有如下的特点:每一个字符串的常量都属于一个String类的匿名对象,并且不可更改;String有两个常量池:静态常量池、运行时常量池;String 类对象实例化建议使用直接赋值的形式完成,这样可以直接将对象保存在对象池之中以方便下次重...原创 2020-01-16 21:15:27 · 199 阅读 · 0 评论 -
Java基础类库--数字操作类
内容学习于:edu.aliyun.com具体内容: 程序就是一个数学的处理过程,所以在Java语言本身也提供有相应的数字处理的类库支持。1. Math数字计算类 Math类的主要功能是进行数学计算的操作类,提供有基础的计算公式,这个类的构造方法被私有化了,而且该类之中提供的所有方法都是static型的方法,即:这些方法都可以通过类名称直接调用。操作代码:public clas...原创 2020-01-16 20:52:00 · 323 阅读 · 0 评论 -
Java基础类库--Java日期操作类
内容学习于:edu.aliyun.com具体内容: 从整体的java来讲一直在强调简单java类的主要设计来自于数据表的结构,那么在数据表的结构里面常用的类型:数字、字符串、日期,所以现在的程序之中只差日期了。1. Date日期处理类 在Java里面提供有一个java.util.Date的类,这个类如果直接实例化就可以获取当前的日期时间。代码:public class Jav...原创 2020-01-16 20:42:49 · 434 阅读 · 0 评论 -
Java多线程开发--多线程综合案例
内容学习于:edu.aliyun.com1. 数字加减 设计4个线程对象,两个线程执行减操作,两个线程执行加操作。代码:class AddThread implements Runnable { private Resource resource; public AddThread(Resource resource) { this.resourc...原创 2020-01-15 20:55:51 · 595 阅读 · 0 评论 -
Java多线程开发--多线程深入话题
内容学习于:edu.aliyun.com1. 优雅的停止线程 在多线程操作之中如果要启动多线程肯定使用的是Thread类中的start()方法,而如果对于多线程需要进行停止处理,Thread类原本提供有stop()方法,但是对于这些方法从JDK 1.2版本开始就已经将其废除了,而且一直到现在也不再建议出现在你的代码之中,而除了stop()之外还有几个方法也被禁用了: 已经过期的方法...原创 2020-01-15 20:51:03 · 181 阅读 · 0 评论 -
Java多线程开发--综合实战:“生产者-消费者”模型
1. 生产者与消费者基本模型 在多线程的开发过程之中最为著名的案例就是生产者与消费者操作,该操作的主要流程如下:生产者负责信息内容的生产:每当生产者生产完成一项完整的信息之后消费者要从这里面取走信息;如果生产者没有生产则消费者要等待它生产完成,如果消费者还没有对信息进行消费,则生产者应该等待消费处理完成后再继续生产。 可以将生产者与消费者定义为两个独立的线程类对象,但是对于现在生...原创 2020-01-15 20:42:44 · 227 阅读 · 0 评论 -
Java多线程开发--线程的同步与死锁
内容学习于:edu.aliyun.com内容概括: 在多线程的处理之中,可以利用Runnable描述多个线程操作的资源,而Thread描述每一个线程对象,于是当多个线程访问统一资源的时候如果处理不当就会产生数据的错误操作。1. 同步问题的提出卖票操作代码:class MyThread implements Runnable { private int ticket = 1...原创 2020-01-15 20:36:18 · 160 阅读 · 0 评论 -
Java多线程开发--线程常用操作方法
内容学习于:www.mldn.cn1. 线程的取名和获得 多线程的运行状态是不确定的,那么在程序的开发之中为了可以获取到一些需要使用到线程就只能够依靠线程的名字来进行操作。所以线程的名字是-一个至关重要的概念,这样在Thread类之中就提供有线程名称的处理:构造方法:public Thread(Runnable target , String name);取得名字: public...原创 2020-01-15 20:24:18 · 189 阅读 · 0 评论 -
Java多线程开发--多线程起步
内容学习于:www.mldn.cn具体内容: 所有的Java程序的执行是需要通过一个主方法完成的,主方法会作为程序的起点,但是如果要进行多线程的编程也需要有一个线程的起点结构,此结构就成为线程类,那么所有的线程类都是有继承要求的,可以有三种实现模式,继承Thread类、实现Runnable接口、实现Callable接口。在DOS系统的时代,其本身有一个特征:如果你的电脑上出现了病毒,...原创 2020-01-14 21:01:12 · 1009 阅读 · 0 评论