[JavaEE]
JavaEE
我能在河边钓一整天的鱼
欢迎来到我的酒馆
展开
-
A.compareTo(B)经典案例
A.compareTo(B)用来比较A是否大于B他返还的是一个Boolean值,如果A大于B,返还1。如果A等于B,返还0。如果A小于B,返还-1案例if(CommonData.DIFFQTY_ONE.equals(reqDto.getDiffQty())){ //已配齐 respDtos = respDtos.stream().filter(x -> BigDecimal.ZERO.compareTo(x.getUnMatchQuantity()) >...原创 2020-11-03 14:24:20 · 4371 阅读 · 1 评论 -
ArrayList的扩容机制
ArrayList的扩容ArrayList使用时会先初始化一个空数组,长度为0。第一次插入时,将其容量设置成10。每次进来一个元素都会判断MinCapacity(当前元素数)是不是比elementData.length(数组容量)大,如果大了进入到grow方法中。会copy一个原数组,数组长度设置为1.5倍,且不能超过最大数组长度。扩容之后他会把所有元素copy一份赋值给新的数组,并返回true未完待续。。。...原创 2020-09-27 18:08:24 · 260 阅读 · 1 评论 -
Java实现快速排序
import java.util.Arrays;public class QuickSort { public static void main(String[] args) { int[] arr = {-9,78,0,23,-567,70, -1,900, 4561}; quickSort(arr,0,arr.length-1); System.out.println("arr="+ Arrays.toString(arr)); } public static void qu.原创 2020-09-18 17:59:36 · 133 阅读 · 1 评论 -
☆HashMap深层原理
什么是HashMapHashMap是JDK提供的双列集合类, 它继承于Map接口。HashMap的数据结构是哈希表,作为一种数据结构,哈希表由“桶+链表组成”,而“hashmap使用的哈希表”在JDK1.8之前由数组+单向链表组成,JDK1.8开始哈希表的数据结构由数组+单向链表/红黑树(链表长度超过8变成红黑树)组成HashMap集合的特点:1.存取无序2.可以存null值3.多线程下不安全HashMap的哈希表以3号为例,3下面的所有...原创 2020-07-18 15:15:10 · 239 阅读 · 1 评论 -
Java的I/O模型
目录什么是I/O模型三种I/O模型比较NIO和BIOBIO、NIO、AIO的适用场景什么是I/O模型I/O模型指的是用什么样的通道进行数据的发送和接收,很大程度上决定了程序通信的性能。(好比马路,宽的和窄的有明显流量差别)Java支持3中网络I/O模型:BIO、NIO、AIO三种I/O模型Java BIO同步并阻塞(传统阻塞型),服务器实现模型为一个请求连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果...原创 2020-07-06 17:09:42 · 223 阅读 · 0 评论 -
Java中的枚举
什么是枚举枚举:枚举是指把所有可能的结果一个不落的全部列举出来。枚举类:如果类的对象只有有限个,确定的,我们就称为这个类为枚举类什么时候用枚举类当需要定义一组常量时,强烈建议使用枚举类。如果枚举类中只有一个对象,则可以作为单例模式的实现方式。自定义枚举类java1.5之前,枚举类都是自定义的。//自定义枚举类public class Season { public static void main(Stri...原创 2020-06-02 20:44:41 · 129 阅读 · 0 评论 -
Java中的注解
注解的概念什么是注解注解就是做个笔记。只不过这个笔记可以在程序运行时获得元注解@Target:指明这个注解能用在哪里?@Retention:指明这个注解什么时候起作用@Documented:指明这个注解能形成文档@inherit:指明这个注解能否被继承...原创 2019-07-09 19:20:03 · 126 阅读 · 0 评论 -
什么是JavaBean
JavaBean即实体类,他有如下特点。必须要有一个无参构造 属性必须私有化 必须有对应的get/set方法JavaBean和数据库字段的映射ORM表===》类 字段===》属性 行记录===》对象People表和People类...原创 2020-04-16 17:20:22 · 159 阅读 · 0 评论 -
Java中的访问修饰符
public作用域最高, 对所有类可见protected同一个包内类和所有子类可见,不能用来修饰类default同一个包内可见private同一类内可见原创 2020-04-14 09:58:02 · 162 阅读 · 0 评论 -
Java中的反射机制
什么是反射反射指的是将类的各个组成部分封装为其他对象,这就是反射机制。反射它是框架设计的灵魂反射有两个好处1.可以在程序运行过程中,操作这些对象2.可以解耦,提高程序的可扩展性Java代码在源代码->Class类对象的转换过程就是反射机制的过程。获取Class对象的方式1.Class.forName("全类名") :将...原创 2020-04-09 19:08:08 · 163 阅读 · 0 评论 -
Java1.8新特性之方法引用
目录什么是方法引用通过对象名引用成员方法通过类名引用静态成员方法通过super关键字调用父类的成员方法通过this关键字来调用本类成员方法通过类的构造器(构造方法)引用数组的构造器引用什么是方法引用首先,这个东西是用来简化或者说替代Lambda表达式的。如果Lambda要表达的函数方案已经存在于某个方法实现中,则可以通过双冒号来引用该方法作为La...原创 2020-04-09 11:16:22 · 177 阅读 · 0 评论 -
Java之构造方法
为什么要有构造方法我们知道,代码执行出的效果越接近现实世界,越说明它反应出了现实生活中的需求。例如,我们新建一个“人”class,我们为这个类附加上“人”的吃饭穿衣属性。代码运行的过程中,只要调用到了人的吃饭穿衣属性,程序就会把对应的效果呈现给用户。的确很厉害,可是在现实世界中,很多东西不是“后天得到或学会的”,就比如人出生就有性别和年龄,这些属性是无需人为调用出来的,因为他们一...原创 2019-03-01 11:51:45 · 5643 阅读 · 4 评论 -
JDK1.8新特性之Stream流
目录Stream流传统办法对集合中的数据进行过滤使用Stream对集合中的数据进行过滤Stream流的思想Stream流之前我们学过I/O流,但实际上,谁规定流就一定是I/O流呢?Stream流用于解决已有集合类库的弊端。例如for循环的语法是怎么做,for循环的循环体是做什么。我们应该更加关注的是做什么,而不是怎么做。传统办法对集合...原创 2020-04-07 17:09:48 · 2665 阅读 · 2 评论 -
JDK1.8新特性之函数式接口
什么是函数式接口还记得在学lambda表达式的时候说过lambda的使用前提吗?要求接口中只有一个抽象方法,使用lambda必须具有上下文推断。函数式接口就是指有且仅有一个抽象方法的接口PS:语法糖。指使用更加方便但原来不变的代码语法。例如在遍历集合时使用的for-each语法,其实底层实现原理是迭代器。函数式接口的格式注意:接口中抽象方法的p...原创 2020-04-07 16:36:51 · 740 阅读 · 0 评论 -
网络编程的经典案例——文件上传
目录文件上传客户端服务端测试文件上传在项目中我们可以通过Spring提供的封装类方便的实现文件上传的逻辑,也可以直接调用阿里OSS对象文件存储系统,FDS,NFS这些上传的接口,这些都可以很便捷的使用文件上传的功能。但抽丝剥茧,封装类的底层原理就是基于Java基础中网络编程与文件流。因此,我们很有必要学习下java中最基础的网络编程是如何实现文件上传的。...原创 2020-04-07 14:22:37 · 289 阅读 · 0 评论 -
Java中的I/O打印流
目录什么是打印流PrintStrea的特点构造方法应用举例什么是打印流java.io.PrintStream extends OutputStream,作用是为其他输出流添加了功能,使它们能够方便地打印各种数据值表示形式PrintStrea的特点1.只负责数据的输出,不负责数据的读取2.与其他输出流不同,PrintStr...原创 2020-04-06 17:36:21 · 224 阅读 · 0 评论 -
Java中的序列化和反序列化
目录序列化和反序列化的概念对象的序列化流对象的反序列化流transient关键字手动设置序列号序列化和反序列化的概念把对象以流的方式写入到文件中保存,叫做写对象,也叫做对象的序列化。把文件中保存的对象以流的方式读取出来叫做读对象,也叫对象的反序列化。对象的序列化流java.io.ObjectOutputStream ...原创 2020-04-06 17:17:09 · 177 阅读 · 0 评论 -
Java中的I/O转换流
目录编码转换的问题转换流的原理OutputStreamWriterInputStreamReader编码转换的问题在上一篇中我们讲了什么是编码集,我们知道IDEA默认编码集为UTF-8,而Win10默认使用GBK。这就导致了在IDEA中读取GBK编码出现???的乱码。转换流就是用来解决这种乱码问题的。https://blog.csdn.net/Delic...原创 2020-04-06 15:41:29 · 145 阅读 · 0 评论 -
Java中的I/O缓冲流
目录什么是缓冲流字节缓冲输出流BufferedOutputStream字节缓冲输入流BufferedInputStream字符缓存输出流BufferedWriter字符缓存输入流BufferedReader什么是缓冲流缓冲流也叫高效流,是对4个基本File流的增强。缓冲流在创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO次...原创 2020-04-06 11:18:32 · 143 阅读 · 0 评论 -
Java中的Properties属性集合
目录什么是Properties集合Properties集合的常用方法Properties集合的store方法Properties集合的store方法什么是Properties集合java.util.Properties集合extends Hashtable<k,v> implements Map<k,v>Properti...原创 2020-04-05 16:33:55 · 289 阅读 · 0 评论 -
Java中I/O异常的处理
目录Java1.7之前的处理办法Java1.7的处理办法Java1.9的处理办法Java1.7之前的处理办法格式try{ 可能会产生异常的代码}catch(异常类变量 变量名) { 异常的处理逻辑}finally{ 一定会执行的代码 资源释放}举例public class DemoIO { ...原创 2020-04-05 15:16:22 · 359 阅读 · 0 评论 -
Java中的I/O字符流
什么是字符流使用字节流读取中文文件,GBK码表1个中文占用2个字节,UTF-8码表占用3个字节。因为字节流读取是一个字节一个字节的读取,所以当读取1/2或1/3中文时就会出现乱码。因此java提供了一些字符流类,以字符为单位读写数据,专门用于处理文本文件注意:字符流是一个字符一个字符读取...原创 2020-04-05 14:32:40 · 110 阅读 · 0 评论 -
Java中的I/O字节流
目录什么是I/OI/O的分类字节流什么是字节流Java中的字节输出流Java中的字节输入流什么是I/OIO很好理解输入和输出嘛。Java中的I/O操作主要指使用java.io包下的内容。以内存为基准,把数据从其他设备上读取到内存的是输入流,即input也称为读取数据。把数据从内存中写出到其他设备上的流是输出流,即output也称为写出数据。...原创 2020-04-05 11:16:36 · 172 阅读 · 0 评论 -
Java中的递归
什么是递归指在当前方法内调用自己的这种现象递归的分类递归分为两种,直接递归和间接递归。直接递归称为方法自身调用自己,间接递归可以是A方法调用B方法,B方法调用C方法,C方法调用A方法使用递归的注意事项1.递归一定要有条件限定,保证递归能够停止下来,否则会发生栈内存溢出2.在递归中虽然有限定条件,但是递归次数不能太...原创 2020-04-04 20:10:48 · 139 阅读 · 0 评论 -
Java中的File类
目录什么是File类File类中的静态成员变量为什么Windows中表示路径的/要写2个?File类中的构造方法File中的常用方法1.File类获取功能的方法2.File类判断功能的方法3.File类创建和删除功能的方法File类遍历目录什么是File类它是文件和目录路径名的抽象表示形式。java把电脑中的文件和文件夹(目录)封装为了...原创 2020-04-04 15:42:56 · 124 阅读 · 0 评论 -
Java中的Lambda表达式
目录函数式编程思想匿名内部类==>Lambda表达式Lambda表达式的使用前提Lambda表达式的格式几种形式的Lambda表达式1.无参数无返回值2.有参数有返回值Lambda表达式的省略形式函数式编程思想面向对象编程“过分强调”必须通过对象的形式来做事情,而函数式思想则尽量忽略面向对象的复杂语法——强调做什么,而不是以什么形式去...原创 2020-04-02 15:59:15 · 192 阅读 · 0 评论 -
Java中的异常
异常类的组成Throwable类是Java中所有错误或异常的父类。Throwable包括Exception(异常)和Error(错误)。异常相当于程序得了一点小病,吃点药继续革命。而错误相当于程序得了重病,必须要通过手术修改源代码,程序才能继续执行。Exception分为编译期异常(Exception)和运行期异常(RuntimeException)。编译期异常是指写代码时...原创 2020-04-01 10:09:54 · 129 阅读 · 0 评论 -
JDK9中对集合中添加元素的优化(of方法)
使用of方法的注意事项原创 2020-03-30 21:49:39 · 166 阅读 · 0 评论 -
Java中的Hashtable集合
什么是Hashtable集合java.util.Hashtable<K,V>集合继承了Map接口。Hashtable的底层也是一个哈希表,是一个线程安全的集合,是单线程的集合,速度慢,而HashMap是一个线程不安全的集合,是多线程集合,速度快。HashMap集合可以存储null键,null值。Hashtable和Vector集合一样,在jdk1.2版本之后...原创 2020-03-30 21:32:35 · 321 阅读 · 0 评论 -
Java中的LinkedHashMap集合
什么是LinkedHashMap集合LinkedHashMap集合继承了HashMap集合,底层是哈希表+链表(记录元素顺序)。LinkedHashMap集合是一个有序的集合,存储元素和取出元素的顺序一致。...原创 2020-03-30 21:19:28 · 173 阅读 · 0 评论 -
Java中的HashMap集合
什么是HashMap集合HashMap集合继承了Map接口,HashMap集合底层是哈希表,jdk1.8之前结构是数组+单向链表;1.8之后结构是数组+单向链表/红黑树(链表长度超过8)。HashMap集合是一个无序的集合,存储元素和取出元素的顺序有可能不一致HashMap存储自定义类型键值1.Key是String类型,value是自定义类型...原创 2020-03-30 21:13:10 · 197 阅读 · 0 评论 -
Java中的Map集合
目录什么是Map集合Map集合的子类EntryMap集合的常用方法1.把指定的键值对添加到Map集合中2.根据指定的键删除对应的键值对3. 根据指定的键返回对应的值4.判断集合中是否包含指定的key5.通过keySet键找值的方式遍历Map集合6.通过entry对象找键值对的方式遍历Map集合什么是Map集合1.Map集合是一个双列集...原创 2020-03-30 20:47:56 · 1557 阅读 · 0 评论 -
Java之Collections集合工具类
java.utils.Collections是集合工具类,用来对集合进行操作,常用方法如下1.往集合中添加多个元素ArrayList<String> list = new ArrayList<>();Collections.addAll(list, "a","b","c");...原创 2020-03-30 17:59:11 · 138 阅读 · 0 评论 -
Java中的LinkedHashSet集合
LinkedHashSetLinkedHashSet集合继承了HashSet集合。它的底层是一个特殊的哈希表。它的哈希表由(数组+链表/红黑树+链表)组成,作用是保证了元素的有序性。HashSet<String> set = new HashSet<>();set.add("www");set.add("www");set.add(...原创 2020-03-25 21:48:01 · 202 阅读 · 0 评论 -
Java中的HashSet集合
目录HashSet集合存储数据的结构(哈希表)哈希值哈希表HashSet集合的特点Set集合不允许存储重复元素的原理HashSet存储自定义类型元素HashSet集合存储数据的结构(哈希表)哈希值哈希值是一个十进制的整数,由系统随机给出。哈希值也就是对象的地址值,是一个逻辑地址,模拟出来的地址,不是数据实际存储的物理地址。在Object类中有...原创 2020-03-25 21:00:30 · 282 阅读 · 0 评论 -
Java的Set集合
Set集合set接口有两个特点1.不允许存储重复的元素2.没有索引,没有带索引的方法,也不能使用普通的for循环遍历原创 2020-03-25 20:03:05 · 147 阅读 · 0 评论 -
Java中的Vector集合
Vector集合这个集合是java最早的一个集合,它的底层是一个数组。它采取的是单线程,而ArrayList采取的是多线程。ArrayList的出现很快就取代了Vector,java1.2开始此集合改进为实现List接口,使它成为了Java Collections Framework的一员。...原创 2020-03-25 19:19:16 · 246 阅读 · 0 评论 -
Java中的LinkedList集合
LinkedList特点1.底层是一个链表结构,查询慢,增删快2.里面包含了大量操作首尾元素的方法3.多态形式不能用LinkedList特有的方法常用方法public void addFirst(E e); //将指定元素插入此链表的开头public void push(E e); //将元素推入此链表的开头public void...原创 2020-03-25 19:12:29 · 144 阅读 · 0 评论 -
Java中的ArrayList集合、包装类、装箱与拆箱
目录ArrayList格式使用如何向ArrayList存储基本数据类型使用装箱和拆箱ArrayListArrayList即动态数组集合类,为什么要引入ArrayList?我们之前学过的数组有两种声明方式,动态初始化需要指定数组长度;静态初始化需要指定数组的内容,可是很多时候我们既不确定数组的长度又不确定数组的内容怎么办?ArrayList...原创 2020-03-10 16:46:45 · 778 阅读 · 0 评论 -
Java之List集合
List集合List集合的所处位置List集合的特点1.首先List是一个接口。存储的是有序的集合,存储元素和取出元素的顺序是一致的2.List集合存储时有索引,包含了一些带索引的方法3.List集合允许存储重复的元素...原创 2020-03-25 18:50:50 · 178 阅读 · 0 评论