
Java系列
文章平均质量分 84
java实战应用
程序员小严
公众号:【Java星探】、毕业设计、定制化开发、商业合作可联系博主。
展开
-
一文吃透Json解析工具类合集(FastJson、Jackson、Gson)
Json解析工具类前言一、各个JSON技术的简介1.1 FastJson角色1.2 Jackson角色1.3 Gson角色二、使用步骤2.1 引入库1、FastJson依赖2、Jackson依赖3、Gson依赖2.2 将JSON 字符串转换为Java 对象1、FastJson版本2、Jackson版本3、Gson版本2.3 将Java对象转换为JSON 字符串1、FastJson版本2、Jackson版本3、Gson版本2.4 将JSON 字符串数组转为JSON数组1、FastJson版本2、Jackson原创 2021-06-13 19:42:31 · 5208 阅读 · 1 评论 -
精细篇Java8强大的stream API接口大全(代码优雅之道)
系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录前言一、Stream特点二、Stream实例化方式2.1 通过集合2.2 通过数组2.3 通过Stream的of方法2.4 通过无限流三、Stream的API方法3.1 filter3.2 limit3.3 skip3.4 distinct3.5 map3.6总结前言Ja原创 2021-06-01 21:14:02 · 3346 阅读 · 3 评论 -
List集合多线程并发条件下不安全,如何解决?
List集合多线程并发前言一、List集合使用模拟并发测试1.1 单线程环境下1.2 多线程环境下二、解决方案2.1 使用Vector类2.1 使用Collections.synchronizedList2.3 使用并发容器CopyOnWriteArrayList总结前言在日常开发过程中,List是我们常用的集合,比如查询数据库内容返回值比会用一个集合来装,但是在多线程并发的条件下,会出现安全问题吗?下面我们就来测试一下,如果出现安全问题,该如何解决.一、List集合使用模拟并发测试1.1 单线程原创 2021-05-16 22:32:30 · 5673 阅读 · 4 评论 -
一键自动生成数据库文档,炫!(告别CV大法)
数据库表结构文档生成器前言一、引入pom.xml依赖二、创建Java类三、使用 Maven 插件的方式总结前言在日常开发中,当项目上线之后,甲方必定会让你提供一堆的验收文档,其中就包括了数据库字典,记得我之前是几十张表,一顿CV大法,一边写一遍骂,这种事情怎么交给我这个开发来做呢,各种吐槽,几个小时过后几十页的 Word文档就出炉了,页面那是花里胡哨,然而并没有什么用,甲方看都不看一眼。最近小编也在找这样的插件,就是不想写文档了,浪费时间和心情啊,果然我找到一款比较好用,操作简单不复杂。scr原创 2021-05-09 13:04:20 · 530 阅读 · 0 评论 -
企业级Java开发树结构数据封装(开发必用)
树结构数据封装前言一、树结构表模式二、树结构案例2.1 原生Java递归循环实现2.1.1 创建实例对象2.1.2 编写测试类2.1.3 返回Json结果集2.2 使用Jdk的Stream流实现2.2.1 创建实例对象2.2.2 编写测试类3.3 使用MyBatis的递归循环3.1.1 创建表3.1.2 创建实例对象3.1.3 编写API接口类3.1.4 编写MyBatis数据层3.1.5 返回Json结果集总结前言在日常搬砖中,少不了要写树结构的数据,而且各个企业的树结构表,也建的五花八门,基本都差不原创 2021-05-07 22:06:23 · 1057 阅读 · 4 评论 -
IDEA配置Docker一键部署SpringBoot项目(企业级做法)
一、开启Docker远程访问安装vim工具:yum install vim -y修改daemon.json的配置:vim /etc/docker/daemon.json加入这行: "hosts": ["tcp://0.0.0.0:2375", "unix:///var/run/docker.sock"]{ "":"", // 如果这里有其他配置,记住逗号不能忘,json字符串格式配置 "hosts": ["tcp://0.0.0.0:2375", "unix:///var/run原创 2021-05-04 14:12:52 · 1707 阅读 · 2 评论 -
Windows10最新MySQL8.0.23安装教程(超级详细)
MySQL8.0.23安装教程一、MySQL8.0.23下载地址二、安装步骤总结一、MySQL8.0.23下载地址https://dev.mysql.com/downloads/mysql/二、安装步骤总结提示:这里对文章进行总结:例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。...原创 2021-05-04 00:13:30 · 17240 阅读 · 10 评论 -
你必须掌握的Java类库工具包Hutool,真甜!(高级篇)
Hutool高级篇,企业级应用实例前言一、安装1.1 导入Maven依赖二、使用2.1 HashMap扩展-Dict2.1.1 获取单个对象2.1.2 获取List集合对象2.2 JSONUtil2.2.1 toXXX2.2.2 parseXXX2.2.3 parseXXX2.3 引入库2.4 引入库2.5 引入库2.6 引入库总结前言Hutool是一个Java工具包类库,对文件、流、加密解密、转码、正则、线程、XML等JDK方法进行封装,组成各种Util工具类。一、安装1.1 导入Mav原创 2021-04-27 19:16:44 · 5739 阅读 · 3 评论 -
玩转POI、EasyExcel报表导入导出!
POI、EasyExcel报表导出前言一、POI操作Excel1.1 导入依赖包1.2 编写测试代码:1.3 03和07版本的区别二、大文件写入2.1 大文件写HSSF2.2 大文件写XSSF2.3 大文件写SXSSF三、EasyExcel操作Excel3.1 导入依赖3.2 Excel写入3.3 Excel读取总结前言开发中经常会涉及到excel的处理,如导出Excel到数据库中!,操作Excel目前比较流行的就是Apache POI和阿里巴巴的easyExcel。最近小编在公司有这么一个需求,需原创 2021-04-13 16:05:51 · 706 阅读 · 0 评论 -
Java23种设计模式之单例模式
单例模式前言一、单例模式特点二、单例模式的优点二、使用步骤1.引入库2.读入数据总结前言单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。一、单例模式特点1、单例类只能有一个实例2、单例类必须自己创建自己的实例3、单例类必须给所有其他原创 2021-04-12 22:12:35 · 171 阅读 · 1 评论 -
喜报!DT最新通用管理平台开源了
DT ADMIN管理系统前言一、核心架构二、登录注册1.认证授权三、后台主页1、侧边栏2、顶部3、整体结构四、前主页总结前言最近小编花夜晚时间,把DT ADMIN管理系统开源了,结合bootstrap4.0整合了一套微小型企业的管理系统,其中包括后台管理以及门户管理,可商用,以及个人博客等等,首先说一下DT ADMIN的含义:DT就是个人花名,ADMIN就是管理的意思,因为我们平时开发测试都会默认账号admin,其实也没啥含义,就是能够让小伙伴们,在工作中开发中能够少走弯路,简单的修改就能用。总原创 2021-03-11 22:05:38 · 1016 阅读 · 1 评论 -
Java23种设计模式之工厂方法模式
工厂模式前言一、简单工厂模式二、工厂方法模式优点:缺点:三、工厂方法模式适合应用场景总结前言核心本质:1、实例化对象不使用new,用工厂方法代替,2、将选择实现类,创建对象统一管理和控制。从而将调用者跟我们的实现类解耦工厂模式分为三种: 简单工厂模式、工厂方法模式、抽象工厂模式一、简单工厂模式用来生产同一等级结构中的任意产品(对于增加新的产品,需要修改已有代码)业务实例:客户买车(客户自己不去new车(不用关心车怎么实现的细节),而是通过工厂生产车,减少硬编码)1、Car.c原创 2021-03-07 10:12:34 · 443 阅读 · 4 评论 -
Java23种设计模式之概念篇
工厂模式概述一、面向对象三大基本特性1、封装2、继承3、多态二、面向对象设计(OOD)七大原则1、开闭原则2、里氏替换原则3、依赖倒置原则4、单一职责原则5、接口隔离原则6、迪米特法则/最少知道原则7、合成/聚合复用原则三、计模式分为三大类1、创建型模式2、结构型模式3、行为型模式总结概述设计模式的本质是:面向对象设计原则的实际运用,是对类的封装性、继承性、多态性以及类的关联关系和组合关系的充分理解。正确使用优点:可以提高程序员的思维能力、编程能力和设计能力使程序设计更加标准化、代码编制原创 2021-03-07 10:12:09 · 183 阅读 · 0 评论 -
面试:一文搞懂抽象类和接口的区别
一、什么是接口?接口通常以interface来声明,如下图代码所示:(用户信息接口声明语法格式)接口并不是类,编写接口的方式和类很相似,但是它们属于不同的概念,接口在JAVA编程语言中是一个抽象类型,是抽象方法的集合。类描述对象的属性和方法。接口则包含类要实现的方法。那么我们就来完整的写一个接口:(用户信息接口)public interface UserService { // 声明变量 final Integer NUMBER_ONE = 1; // 抽象方法 p原创 2020-08-03 19:24:00 · 3076 阅读 · 3 评论 -
面试:一文搞懂堆和栈的区别
前言在了解堆和栈之前,我们得了解JVM内存的划分,要了解JVM内存我们得先来聊聊Java程序的执行过程,Java程序在运行时都要开辟空间,Java程序的运行离不开JVM(Java虚拟机),好像鱼儿离不开水一样,所以JVM运行时也是要开辟空间的。JVM运行时在内存中开辟一片内存区域,启动时在自己的内存区域中进行更细致的划分,因为虚拟机中每一片内存处理的方式都不同,所以要单独进行管理。一、Java程序执行过程首先我们先说一说Java的执行过程,图文安排上。上图所示,我们理一理执行过程的顺序:首先J原创 2020-08-02 00:34:21 · 2296 阅读 · 0 评论 -
面试:一文搞懂重载和重写的区别
前言方法的重写和重载是 Java 多态性的不同表现。重写是父类与子类之间多态性的一种表现,重载是一个类中多态性的一种表现。一、重载如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载。对于同一个num函数方法:(1) 方法名一定相同(2)参数个数一定不一样、类型可能不一样(3)访问修饰符和返回值类型可以相同也可以不同简单来说:重载就是对于不同的情况写不同的方法。 比如,同一个类中,写不同的构造函数用于初始化不同的参数。二、重写如果在子类中定义原创 2020-07-31 22:43:54 · 1417 阅读 · 2 评论 -
面试:一文搞懂Java集合
前言Java集合就像一个容器,可以存储任何类型的数据,也可以结合泛型来存储具体的类型对象。在程序运行时,Java集合可以动态的进行扩展,随着元素的增加而扩大。在Java中,集合类通常存在于java.util包中。1、Java集合两大体系Java集合主要由两大体系的顶层接口构成,分别是Collection体系和Map体系。2、Collection体系Collection主要有三个子接口,分别为List(列表)、Set(集)、Queue(队列)List、Queue中的元素有序可重复,而Set中的原创 2020-07-31 22:04:03 · 223 阅读 · 0 评论 -
面试:一文搞懂String、StringBuilder、StringBuffer 区别
1、三者之间的区别区别StringStringBuilderStringBuffer【值】不可变可变可变【效率 】最低最高中等【线程】非线程安全非线程安全线程安全不同点:StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象,而string类会产生新的对象。2、StringString 是一个常量,是不可变的,所以对于每一次+=赋值都会创建一个新的对象,操作String很耗资源,所以性能最原创 2020-07-31 21:36:55 · 628 阅读 · 2 评论 -
面试:一文搞懂 final 关键字的作用
前言Java语言支持的变量类型有:类变量:独立于方法之外的变量,用 static 修饰。实例变量:独立于方法之外的变量,不过没有 static 修饰。局部变量:类的方法中的变量。实例代码:public class Student{ static int id = 1; // 类变量 String str="hello"; // 实例变量 public void method(){ int i = 0; // 局部变量原创 2020-07-31 17:42:01 · 565 阅读 · 0 评论 -
Java实现ActiveMQ之主题的生产者和消费者(二)
前言假如:三个消费者同时关注并且订阅了一个公众号,公众号同时推送N份消息的时候,他们三个各收到的是N份,还是先到先得到全部,还是均分消息呢?1、创建maven项目,导入pom.xml依赖包<!--activemq所需依赖jar配置--><dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-all</artifactId>原创 2020-06-12 22:56:00 · 671 阅读 · 0 评论 -
Java实现ActiveMQ之队列的生产者和消费者(一)
1、创建maven项目,导入pom.xml依赖包<!--activemq所需依赖jar配置--><dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-all</artifactId> <version>5.15.9</version></dependency>2、JmsProd原创 2020-06-12 20:32:26 · 1523 阅读 · 0 评论 -
Java开发必会MVC三层架构
一、 什么是三层架构?三层架构是指:视图层View、业务逻辑层Service、数据访问层DAO。他们分别完成不同的功能。View层:用于接收用户提交请求的代码Service层:系统的业务逻辑主要在这里完成DAO层:直接操作数据库的代码为了更好的降低各层之间的 耦合度(系统的复杂度,在三层架构程序设计中,采用面向抽象变成。即上层对下层的调用,是通过接口实现的。而下层对上层的真正服务提供者,是下层接口的实现类。服务标准(接口)是相同的,服务提供者(实现类)可以更换。这就实现了层间解耦合。(发原创 2020-05-31 14:55:15 · 2291 阅读 · 0 评论 -
Java开发必会Git分布式版本控制系统实战篇
一、创建SpringBoot项目首先在idea中快速创建一个SpringBoot项目,然后我们将代码托管至Github上面。1、pom.xml文件依赖、很简单的web项目依赖<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</arti原创 2020-05-23 17:54:30 · 411 阅读 · 0 评论 -
Java开发必看JPA概念大全
一、JPA简介JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。 [1]Sun引入新的JPA ORM规范出于两个原因:其一,简化现有Java EE和Java SE应用开发工作;其二,Sun希望整合ORM技术,实现天下归一。总结:JPA是ORM的一套标准,它是Sun公司在JavaEE 5中提出的Java持久化规范。它为Java开发人员提供了一种对象/关联映射工具,来管理Ja原创 2020-05-23 00:26:47 · 1094 阅读 · 0 评论 -
Java开发必看ORM概念大全
一、ORM概念对象关系映射(Object Relational Mapping,简称ORM)是通过使用描述对象和数据库之间映射的元数据,将面向对象语言程序中的对象自动持久化到关系数据库中。本质上就是将数据从一种形式转换到另外一种形式。 这也同时暗示着额外的执行开销;然而,如果ORM作为一种中间件实现,则会有很多机会做优化,而这些在手写的持久层并不存在。 更重要的是用于控制转换的元数据需要提供和管理;但是同样,这些花费要比维护手写的方案要少;而且就算是遵守ODMG规范的对象数据库依然需要类级别的元数据。原创 2020-05-22 23:58:07 · 7632 阅读 · 0 评论 -
slf4j日志的最优使用方式
slf4j简介即简单日志门面(Simple Logging Facade for Java),不是具体的日志解决方案,它只服务于各种各样的日志系统。按照官方的说法,SLF4J是一个用于日志系统的简单Facade,允许最终用户在部署其应用时使用其所希望的日志系统。Spring中slf4j的使用所需依赖jar: <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-log4j12 --> <dependency>原创 2020-05-10 17:22:02 · 850 阅读 · 0 评论 -
谈谈Spring开发框架
Spring简介Spring的主要作用是为代码 “解耦”,降低代码的耦合度。根据功能不同:可以将一个系统中的代码分为:主业务逻辑和系统级业务逻辑两类你是如何理解Spring的?Spring是为了解决企业级复杂度(耦合度)的开发问题。怎么解决耦合度问题呢?在系统开发中分为:主业务逻辑和系统级业务逻辑(交叉级业务逻辑),两类 主业务逻辑:如电商业务、物流业务等 系统级业务逻辑:如JDBC 连接数据库等JDBC 连接数据库操作流程:1、加载驱动2、创建连接3、开启事务4、CRUD操作原创 2020-05-10 02:36:32 · 285 阅读 · 2 评论