JAVA
_又菜又爱学
即使再小的帆,也能远航!
展开
-
Maven项目架构管理工具
1.为啥要用学习Maven这个技术?在javaweb开发中,我们需要导入大量的jar包,我们手动去导入如何能够让一个东西自动帮我们导入和配置这个jar包由此Maven就诞生了。。。。。。2.Maven简述Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖原创 2021-06-16 09:35:22 · 107 阅读 · 0 评论 -
java程序的运行机制
1.java的运行机制java语言是一种特殊的高级语言,它既具有解释型语言的特征,也具有编译型语言的特征,因为Java程序要经过先编译,后解释两个步骤。java的核心机制有两个,一个是jvm虚拟机,另一个是垃圾回收机制GC。2.高级语言的运行机制计算机高级语言按程序的执行方式可以分为 编译型 和解释型两种。编译型语言是指使用专门的编译器,针对特定平台(操作系统)将某种高级语言源代码一次性“翻译”成可被该平台硬件执行的机器码(包括机器指令和操作数),并包装成该平台所能识别的可执行性程序的格式,这个转换原创 2021-06-16 09:31:12 · 438 阅读 · 0 评论 -
Stream流的终止操作:匹配与查找、归约、收集
Stream流的终止操作:匹配与查找、归约、收集package com.xiaobu.lambda.java3;import com.xiaobu.lambda.java2.Employee;import com.xiaobu.lambda.java2.EmployeeData;import org.junit.Test;import java.util.Arrays;import java.util.List;import java.util.Optional;import java.原创 2021-06-01 09:35:40 · 93 阅读 · 0 评论 -
Java8新特性之Operator类
Java8新特性之Operator类从 Java 8 引入的一个很有趣的特性是 Optional 类。Optional 类主要解决的问题是臭名昭著的空指针异常(NullPointerException) —— 每个 Java 程序员都非常了解的异常。本质上,这是一个包含有可选值的包装类,这意味着 Optional 类既可以含有对象也可以为空。Optional 是 Java 实现函数式编程的强劲一步,并且帮助在范式中实现。但是 Optional 的意义显然不止于此。package com.xiaob原创 2021-05-31 18:07:43 · 735 阅读 · 1 评论 -
Stream流的终止操作:匹配与查找、归约、收集
Stream流的终止操作:匹配与查找、归约、收集package com.xiaobu.lambda.java3;import com.xiaobu.lambda.java2.Employee;import com.xiaobu.lambda.java2.EmployeeData;import org.junit.Test;import java.util.Arrays;import java.util.List;import java.util.Optional;import java.原创 2021-05-31 17:21:59 · 113 阅读 · 0 评论 -
Stream流的中间操作:筛选与切片、映射、排序
Stream流的中间操作:筛选与切片、映射、排序package com.xiaobu.lambda.java3;import com.xiaobu.lambda.java2.Employee;import com.xiaobu.lambda.java2.EmployeeData;import org.junit.Test;import java.util.ArrayList;import java.util.Arrays;import java.util.List;import java原创 2021-05-31 17:10:32 · 198 阅读 · 0 评论 -
Stream流创建的四种方式:集合创建、数组创建、方法创建Stream.of、创建无限流
Stream创建的四种操作package com.xiaobu.lambda.java3;import com.xiaobu.lambda.java2.Employee;import com.xiaobu.lambda.java2.EmployeeData;import org.junit.Test;import java.util.Arrays;import java.util.List;import java.util.stream.Collectors;import java.ut原创 2021-05-31 17:08:18 · 1736 阅读 · 0 评论 -
ConcurrentHashMap 与 Hashtable的异同?
ConcurrentHashMap 与 Hashtable的异同?ConcurrentHashMap 和 Hashtable 的区别主要体现在实现线程安全的方式上不同。底层数据结构: JDK1.7 的 ConcurrentHashMap 底层采用 分段的数组+链表 实现,JDK1.8 采用的数据结构跟 HashMap1.8 的结构一样,数组+链表/红黑二叉树。Hashtable 和 JDK1.8 之前的 HashMap 的底层数据结构类似都是采用 数组+链表 的形式,数组是 HashMap 的主体,链原创 2021-05-18 09:03:14 · 106 阅读 · 0 评论 -
Collection子接口:List和Set概述
Collection子接口:List和Set1.List接口概述:元素有序、且可重复鉴于Java中数组用来存储数据的局限性,我们通常使用List替代数组List集合类中元素有序、且可重复,集合中的每个元素都有其对应的顺序索引。List容器中的元素都对应一个整数型的序号记载其在容器中的位置,可以根据序号存取容器中的元素。JDK API中List接口的实现类常用的有:ArrayList、LinkedList和Vector。1.1 List接口中的方法List除了从Colle转载 2021-05-17 14:51:38 · 234 阅读 · 0 评论 -
HashSet的底层实现原理、子类LinkedHashSet、排序TreeSet
1.HashSet的底层实现原理HashSet底层使用了数组+链表来支持的,特点:存储快HashSet存储对象的时候:首先会先算出对象的哈希值,然后通过对哈希值的移位运算,算出元素在哈希表中的存储位置如果当前存储的位置没有任何元素,那么就直接存储到这个位置上如果算出的元素的存储位置已经有其他的元素了,那么就会对哈希值进行比较,,如果哈希值相同,就会使用equals方法判断两个元素是否相同,如果元素相同,就会equals就会返回false,不允许添加,如果返回的是false,就会在当前的位置以链表原创 2021-05-17 14:50:40 · 506 阅读 · 0 评论 -
ArrayList、LinkedList和Vector的异同和底层源码解析?
ArrayList、LinkedList和Vector的异同和底层源码解析?相同点:从源码上看ArrayList、LinkedList和Vector都实现了List接口,存储数据的特点相同:存储的数据有序、可重复不同点:ArrayList:是List的接口的主要实现类,在jdk1.2才更新出来,线程不安全,效率高,查询快,增删慢,底层使用的是Object []LinkedList:在jdk1.2才更新出来,线程不安全,对于频繁的插入、删除操作,使用此类效率高于ArrayListVector:是L原创 2021-05-11 10:41:01 · 113 阅读 · 0 评论 -
Java框架集合概述
Java框架集合概述1.一方面, 面向对象语言对事物的体现都是以对象的形式,为了方便对多个对象的操作,就要对对象进行存储。另一方面,使用Array存储对象方面具有一些弊端,而Java 集合就像一种容器,可以动态地把多个对象的引用放入容器中。数组在内存存储方面的特点:数组初始化以后,长度就确定了。数组声明的类型,就决定了进行元素初始化时的类型数组在存储数据方面的弊端:数组初始化以后,长度就不可变了,不便于扩展数组中提供的属性和方法少,不便于进行添加、删除、插入等操作,且效原创 2021-05-10 14:18:54 · 56 阅读 · 0 评论 -
String、Stringbuffer和StringBuilder的异同? String 为什么是不可变的?
String、Stringbuffer和StringBuilder的异同? String 为什么是不可变的?1.可变性简单的来说:String 类中使用 final 关键字修饰字符数组char[]来保存字符串,private final char value[],所以String 对象是不可变的。补充:在 Java 9 之后,String 、StringBuilder 与 StringBuffer 的实现改用 byte 数组存储字符串 private final byte[] value为什么使用原创 2021-05-07 10:01:24 · 179 阅读 · 0 评论 -
设计模式之单例模式
单例模式分为饿汉式和懒汉式/** * @ClassName SingletonTest * @description: 饿汉式 * @author: qsong * @create: 2021-04-06 14:04 * @Version 1.0 **/public class SingletonTest { private static final SingletonTest singletonTest=new SingletonTest(); private Sing原创 2021-04-06 17:22:28 · 53 阅读 · 0 评论 -
设计模式之模版方法
import java.util.Calendar;/** * @ClassName TemplateMethod * @description: 设计模式:``` * 在开发中,去实现一个算法的时候,整体的步骤很固定,很通用,这些可以在父类中写好,但是某些部分易变,易变部分可以抽象出来,供不同的子类去实现,这就是模版模式 * @author: qsong * @create: 2021-04-06 16:07 * @Version 1.0 **/public class原创 2021-04-06 17:16:52 · 54 阅读 · 1 评论 -
日期处理工具类
import org.springframework.util.StringUtils;import java.text.DateFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.time.LocalDateTime;import java.time.format.DateTimeFormatter;import java.time.temporal.ChronoUnit;i原创 2021-02-19 13:54:54 · 76 阅读 · 0 评论 -
短信工具类——mo信通
1.短信平台的选取采用的是mo信通,网址:https://www.molink.cn/comm/api.html2 请求地址http://IP:端口/sms/httpBatchSend或:https://IP:端口/sms/httpBatchSend提交方式:POST编码格式:utf-8Content-Type:application/x-www-form-urlencoded;charset=utf-8注:短信群发时,单次提交号码个数不能超过5000个(号码过多时,请求报文大小会变大,请原创 2021-01-20 13:51:01 · 412 阅读 · 1 评论 -
文件夹工具类
1.文件夹工具类1.1 pom依赖 <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.4</version> </dependency>1.2demo案例原创 2021-01-20 13:49:51 · 90 阅读 · 0 评论 -
压缩工具类,可加密码
1.压缩工具类,可加密码1.添加pom依赖 <!-- 压缩包--> <dependency> <groupId>net.lingala.zip4j</groupId> <artifactId>zip4j</artifactId> <version>1.3.1</version>原创 2021-01-20 13:48:59 · 133 阅读 · 1 评论 -
java基础
java基础1.注释单行注释 -----//多行注释 -----/* */文档注释 -----/** */2.标识符类名,变量名,方法名都被称为标识符关键字标识符注意事项3.语言类型强类型语言java是一门强类型语言,要求变量的使用必须严格符合规定,所以变量必须先定义后才能使用。弱类型语言有VB,javascript语言。。。。4.数据类型java的数据类型分为两大类:基本类型和引用类型基本类型分为:整数类型原创 2021-01-19 14:56:15 · 60 阅读 · 0 评论