![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
java学习之路
文章平均质量分 75
后端JAVA基础
园长的牧歌
这个作者很懒,什么都没留下…
展开
-
EasyExcel3.x与2.x不同方式导出多图
1.实体类返回的是逗号隔开的多个图片 2.图片在Microsoft Office正常显示,在WPS Office显示不了效果展示。原创 2023-06-16 10:28:43 · 1822 阅读 · 12 评论 -
Jackson 的使用
jackson 的使用引入包<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core --><dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version原创 2022-04-08 17:23:33 · 1314 阅读 · 0 评论 -
Java回调函数 + 使用案例
文章目录前言什么是回调函数第0个版本第1个版本第2个版本第3个版本第4个版本第5个版本第6个版本回头解析前言描述的问题1. MethodIntrospector.selectMethods()2. 抽象类MethodIntrospector3. 方法selectMethods()4. 成员变量USER_DECLARED_METHODS5. 方法doWithMethods()6. doWithMethods()方法里调用的getMappingForMethod()方法7. getMappingForMetho原创 2021-11-27 23:49:32 · 1847 阅读 · 1 评论 -
记一次简单版本同时大量请求的处理方案
0.前言在出统计数据时,一个页面有10多个图表同时并发发起请求原创 2021-07-19 15:45:01 · 971 阅读 · 0 评论 -
一文可学习到如何使用正则表达式
1.基本语法2.零宽断言详解3.练习题4.升级打怪方法5.好用的线上工具原创 2021-06-22 14:59:06 · 1190 阅读 · 1 评论 -
gson.fromjson转成map获取value带双引号
文章目录0.前言0.1解决方法1.gson的使用1.1对象转json1.2 json转对象1.3属性重命名 @SerializedName 注解的使用1.4 json序列化成map2. Gson的配置0.前言遇到一个场景使用gjson解析无固定模板的json串变成TreeMap时value值出现两个双引号0.1解决方法如果直接用 JsonObject.toSring或者jo.get(“name”).toString的话,取出的值会有双引号,直接getAsString就没有双引号啦1.gson的使用原创 2021-06-22 11:26:48 · 2776 阅读 · 0 评论 -
Java各种对象(PO,BO,VO,DTO,POJO,DAO,Entity,JavaBean,JavaBeans)的区分
转载自:江湖小虾文章PO: 持久对象 (persistent object),po(persistent object)就是在Object/Relation Mapping框架中的Entity,po的每个属性基本上都对应数据库表里面的某个字段。完全是一个符合Java Bean规范的纯Java对象,没有增加别的属性和方法。持久对象是由insert数据库创建,由数据库delete删除的。基本上持久对象生命周期和数据库密切相关。VO: 值对象(Value Object),通常用于业务层之间的数据传递,和PO转载 2021-04-22 17:23:08 · 455 阅读 · 0 评论 -
Java列表如何分组,可以使用stream()的Collectors.groupingBy()
前言数据库经常使用的逻辑,放在Java代码如何实现,现在有个快捷的方法就是使用Java8的流进行分组准备需求:要把每个城市、每个公司的学生数量做分组统计数量User.javapackage com.wenwen.blog.service.learn.stream;import lombok.Data;/** * @author WangWenLei * @DATE: 2021/3/1 **/@Datapublic class Student { private Strin原创 2021-03-01 14:39:00 · 730 阅读 · 0 评论 -
Integer到底用什么来判断相等
说明为啥比较127和128,因为java有个常量池会缓存-128到127的数。话不多说一张图直接说明总结如果两个都是Integer,安安心心的用equals如果Integer比较int,使用equals也是true,int比较Integer不能使用equals但用==不管127还是128都是true躬身自省,淳朴而谦逊否——文文的博客前辈见之,如有问题,麻烦留言斧正。...原创 2021-01-29 16:41:16 · 603 阅读 · 0 评论 -
为请求图片包装一层请求
0. 前言前端服务器是https协议,B组图片服务器是http协议业务配合,前端服务器不能使用https请求B组图片服务器,后端服务器可以使用http请求B组服务器,故需要在后端服务器进行一次包装,把图片以流的形式返回给前端1.控制层import io.swagger.annotations.ApiImplicitParam;import io.swagger.annotations.ApiOperation;import lombok.extern.slf4j.Slf4j;import or原创 2020-12-14 15:13:19 · 168 阅读 · 1 评论 -
工具之jmap
0、写在前面我是使用win环境来熟悉jmap命令,64为的win10系统1、jmap介绍JVM Memory Map命令是一个可以输出所有内存中对象的工具,甚至可以将VM 中的heap(堆),以二进制输出成文本。打印出某个java进程(使用pid)内存内的,所有‘对象’的情况(如:产生那些对象,及其数量)。看下文档帮助C:\Users\wenwen>jmap -helpUsage: jmap [option] <pid> (to connect to原创 2020-11-16 12:40:51 · 1091 阅读 · 0 评论 -
线程池的应用
0、写在前面听到线程池、线程,不禁都为为之端正姿势1、部分基础两种线程模型用户级线程(ULT):用户程序实现,不依赖操作系统核心,应用提供创建、同步、调度和管理新城的函数来控制用户线程。不需要用户态/内核态之间的切换,速度快,内核对ULT无感知。内核线程(KLT):系统内核管理线程,内核保存线程的状态和上下文,线程阻塞不会引起进程阻塞,在多处理器系统上,多线程在处理器上并行运行,线程创建、调度和管理由内核完成,效率要比ULT慢,比进程操作快。直观感受下内核线程:如果创建的是内核线程,那么这个原创 2020-11-13 14:32:12 · 409 阅读 · 0 评论 -
JAVA8流Stream
0.引言Java8/JDK8是Oracle在2014年发布的正式版,距今已经过去了6年,2019年接触java8的我才来系统熟识Java8的特性,真是有点感觉有点跟不上节奏呀!虽说感慨,但依旧为时不晚。不是有催人的语句:只要你愿意开始,什么时候都不晚嘛!分块来学习吧!1. .stream()Stream(流)是一个来自数据源的元素队列并支持聚合操作Stream不会存储元素,而是一系列的操作流的来源:集合、数组、I/O channel、产生器generator 等聚合操作:filter, m原创 2020-10-10 19:23:23 · 148 阅读 · 0 评论 -
Http请求中Content-Type
转载自:牛立新从51cto搬过来的MediaType,即是Internet Media Type,互联网媒体类型;也叫做MIME类型,在Http协议消息头中,使用Content-Type来表示具体请求中的媒体类型信息。例如: Content-Type: text/html;charset:utf-8;常见的媒体格式类型如下:text/html : HTML格式text/plain :纯文本格式 text/xml : XML格式image/gif :gif图片格式 image转载 2020-09-23 17:12:22 · 575 阅读 · 0 评论 -
Swagger
导语SpringBoot如何使用Swagger首先添加依赖<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version></dependency><dependency> <groupId原创 2020-09-10 00:06:22 · 652 阅读 · 0 评论 -
面经-判断字符串为空的几种方法,并比较其性能
一、判断字符串为空的方法1、字符串为空情况字符串指向null字符串指向一个对象,对象为""2、字符串为空判断if(data == null || "".equals(data))if(data == null || data.length <= 0)if(data == null || data.isEmpty())if(data == null || data == "")注意:此时的方法四只针对字符串常量生效,赋予初始值== 比较的是两个对象内存中的地址,例如:String原创 2020-08-26 19:58:35 · 376 阅读 · 0 评论 -
Spring boot事务的使用以及缺少jar报错解决
0、使用属性expression=“execution(service….*(…))”1、execution(): 表达式主体 (必须加上execution)。2、第一个*号:表示返回值类型,*号表示所有的类型。3、包名:表示需要拦截的包名,后面的两个句点表示当前包和当前包的所有子包,cn.smd.service.impl包、子孙包下所有类的方法。4、第二个*号:表示类名,*号表示所有的类。5、*(…):最后这个星号表示方法名,*号表示所有的方法,后面括弧里面表示方法的参数,两个句点表示任何参数原创 2020-07-12 22:37:00 · 391 阅读 · 0 评论 -
Nginx讲解、安装与配置文件说明
1.Nginx基本概念1.1Nginx是什么,做什么事情Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日Nginx是一款轻量级的Web 服务器/反向代理服务器及...原创 2020-05-13 15:33:31 · 244 阅读 · 0 评论 -
Java在Linux的启动脚本
展示示例#!/bin/bashLIB_DIR=../libLIB_JARS=`ls $LIB_DIR|grep ".jar$"|awk '{print "'$LIB_DIR'/"$0}'|tr "\n" ":"`LOG_NAME=sychronizeOaCONF_DIR=../conf/CONF_LOG=../lognohup java -server -Xms512m -Xmx51...原创 2020-04-23 11:03:34 · 645 阅读 · 0 评论 -
Java中去除字符串中空格的方法
Java中去除字符串中空格的方法 昨天写了一个关于Excel文件处理的脚本,在字符串匹配功能上总是出现多余不正确的匹配,debug调试之后,发现一个坑。------->代码中字符串使用了replaceAll()方法,去除了所有空格(其中包括:首尾空格、中间空格)遂整理下java关于字符串去除空格的方法。1、方法分类str.trim(); //去掉首尾空格str.replace(...原创 2020-04-11 15:53:12 · 363 阅读 · 0 评论 -
JSONArray与JSONObject的区别与使用
一、JSONObject和JSONArray的数据表示形式JSONObject的数据是用 { } 来表示的,{ "id":"123", "courseID":"huangt-test", "title":"提交作业", "content":null}而JSONArray,顾名思义是由JSONObject构成的数组,用 [ { } , { } , … ...转载 2020-02-17 09:10:27 · 353 阅读 · 0 评论 -
Eclipse官网下载java开发安装包
使用下载镜像包,而不是使用自动下载程序下载Eclipse1、进入官网2、点击进入这个是java的集成环境的开发工具以上内容如有争议、指正,留言给我~...原创 2020-02-10 21:42:20 · 291 阅读 · 0 评论 -
Spring的工具类StringUtils使用
org.springframework.util.StringUtils我们经常会对字符串进行操作,spring已经实现了常用的处理功能。我们可以使用org.springframework.util.StringUtils 工具类帮我们处理字符串。工具类整理如下:StringUtils.hasLength(null) = falseStringUtils.hasLength("") = f...转载 2019-12-03 10:27:32 · 1259 阅读 · 0 评论 -
Linux环境使用Docker安装Redis以及初步使用
前期准备:安装好Docker查询redis列表docker search redis拉取最新版本docker pull redis:latest出现这个标志表示拉取成功查看redis镜像docker images查看全部镜像命令开始运行Redisdocker run -itd --name docker-redis -p 6379:6379 redisdocker-...原创 2019-11-27 10:43:15 · 2021 阅读 · 5 评论 -
虚参类型后面有三个点是可变参数列表
这老话说了:学而时习之,温故而知新受教了不知道是以前学习漏掉了,还是当时没有系统看过书的原因。漏掉了这个点。废话不多说先上栗子package ink.poesy.spirngdemo_01.service;public class NewVarArgs { static void printArray(Object... args){ }}就看printA...原创 2019-11-26 17:33:29 · 334 阅读 · 0 评论 -
Java基础并发(一)之Runnable、Thread的使用
有关于线程与进程的区别请看操作系统之进程管理文章是《Java编程思想》–Bruce Eckel著,陈昊鹏译的《Thinking in Java》的学习笔记线程可以驱动任务,如果要在线程上跑任务,那么就需要一种描述任务的方式。这个方式可以有Runnable接口来提供,要想定义一个任务,只需要实现Runnable接口并编写run()方法,使得该任务可以执行你的命令。package ink.p...原创 2019-11-21 10:29:35 · 338 阅读 · 0 评论 -
记一次多线程实战收获
需求:一台机器有3类数据,总共有多台机器,开启多个线程分别去不同机器获取数据。要求即快速又准确。心得:使用synchronized包装出现资源同步问题的临界区在java中使用Map要使用线程安全的ConcurrentHashMap在java中使用List要使用List<T> sysList = Collections.synchronizedList(new ArrayLis...原创 2019-11-20 16:32:00 · 203 阅读 · 0 评论 -
原来你是这样的java枚举类型(enum)
java枚举类型的常用方法,枚举类型的遍历,构造法方法,自定义方法,枚举类型的单例模式原创 2019-11-07 17:48:05 · 240 阅读 · 0 评论 -
Docker的安装与使用
1.描述何为docker?Docker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源。Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。容器完全是沙箱机制,相互之间不会有任何接口,更重要的是容器性能开销极低。Docker支持将软件编译成一个镜像;然后在镜像中各个软件做好配置,将镜...原创 2019-11-04 16:27:24 · 134 阅读 · 0 评论 -
初识Hutool
Hutool是一个Java工具包,也只是一个工具包,它帮助我们简化每一行代码,减少每一个方法,让Java语言也可以“甜甜的”。Hutool是一个Java工具包类库,对文件、流、加密解密、转码、正则、线程、XML等JDK方法进行封装,组成各种Util工具类官网:https://hutool.cn/官网文档讲的真的很全日期工具:通过DateUtil类,提供高度便捷的日期访问、处理和转换方式。...原创 2019-11-01 16:25:38 · 424 阅读 · 0 评论 -
初识fastjson
什么是fastjson阿里官方给的定义是, fastjson 是阿里巴巴的开源JSON解析库,它可以解析 JSON 格式的字符串,支持将 Java Bean 序列化为 JSON 字符串,也可以从 JSON 字符串反序列化到 JavaBean。优点速度快fastjson相对其他JSON库的特点是快,从2011年fastjson发布1.1.x版本之后,其性能从未被其他Java实现的JSON库...原创 2019-11-01 15:54:34 · 706 阅读 · 2 评论 -
初识Lombok
以前的Java项目中,充斥着太多不友好的代码:POJO的getter/setter/toString;异常处理;I/O流的关闭操作等等,这些样板代码既没有技术含量,又影响着代码的美观,Lombok应运而生。Lombok使用非常简单:引入相应的Maven包 <dependency> <groupId>org.projectlombo...原创 2019-11-01 10:59:15 · 504 阅读 · 0 评论 -
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection
划重点因为数据库版本太高了而对应的驱动器太低了老版本JDBC连接数据库Class.forName("com.mysql.cj.jdbc.Driver"); Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test_demo...原创 2019-03-12 16:36:17 · 26946 阅读 · 7 评论 -
Java中int和Integer的区别
int和Integer的区别1、Integer是int的包装类,int则是java的一种基本数据类型2、Integer变量必须实例化后才能使用,而int变量不需要3、Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象;而int则是直接存储数据值4、Integer的默认值是null,int的默认值是0延伸:关于Integer和int的...转载 2019-03-01 13:51:53 · 76 阅读 · 0 评论 -
Java控制台简单“计算器”的实现
先来说一下我们的目的:学会使用简单的Java输入输出语句学会使用见得条件判断语句学会使用简单的循环语句1、首先我们来实现最简单的第一步,只加法只一次计算public class helloworld { public static void main(String [] args){ System.out.println("欢迎使用Vived制作计算器...原创 2019-02-14 14:58:45 · 5356 阅读 · 0 评论 -
使用IDEA
点击新建一个项目我们看见如图展示1、选择使用Maven模型2、没有SDK,应为我们在上文没有安装SDK是我们手动安装的SDK这里我们选择NEW去找我们的SDK安装路径点击ok,显示如下Create是创建一些附带框架,这里不选择,直接点击下一步填写组,填写项目名,点击下一步修改项目位置,点击完成右下角点击EnableAuto-...原创 2019-02-14 11:03:30 · 147 阅读 · 0 评论 -
安装IDEA
在官网下载安装包打开软件下一步 选择安装目录点击下一步选择安装的操作系统64位,我的是64位,按自己的系统安装自己适当的。点击下一步 默认下一步 等待完成安装 等待时间有点长我放弃安装JRE x86 ,个人觉得没什么问题,在此之前我配置了jdk。 等待他显示此页表示完成安装。点击完成运行起来 Do not 就行 选...原创 2019-02-14 10:33:16 · 1787 阅读 · 0 评论 -
Java 数组
Java 数组数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同。Java 语言中提供的数组是用来存储固定大小的同类型元素。你可以声明一个数组变量,如 numbers[100] 来代替直接声明 100 个独立变量 number0,number1,....,number99。本教程将为大家介绍 Java 数组的声明、创建和初始化,并给出其对应的...转载 2019-02-15 21:23:34 · 89 阅读 · 0 评论 -
Java String 类的使用
Java String 类字符串广泛应用 在Java 编程中,在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串。String 方法下面是 String 类支持的方法,更多详细,参看 Java String API 文档:SN(序号) 方法描述 1 char charAt(int index) 返回指定索引处的 char 值。...转载 2019-02-15 21:14:14 · 435 阅读 · 0 评论 -
Java Math 类
很有用啊!!Java Math 类Java 的 Math 包含了用于执行基本数学运算的属性和方法,如初等指数、对数、平方根和三角函数。Math 的方法都被定义为 static 形式,通过 Math 类可以在主函数中直接调用。Test.java 文件代码:public class Test { public static void main (String []arg...转载 2019-02-15 20:54:59 · 102 阅读 · 0 评论