
Java学习
有园人
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java结合ElasticSearch根据查询关键字,高亮显示全文数据。
注意:ik_smart 是最粗颗粒度,不会用重复分词。ik_max_word 是最细颗粒度,会有重复分词。高亮显示只需要最粗即可。1.根据es的ik分词器获取搜索词的分词结果。2.根据获取到的多个分词数据。此时就能将全文关键词以分词的效果高亮显示了。原创 2024-11-13 09:49:42 · 1073 阅读 · 1 评论 -
Java生成任意长度随机字符串(数字+字母)
根据对于uuid随机获取其index的值组成字符串。生成的字符串越长,唯一性越高。原创 2024-08-29 11:38:41 · 571 阅读 · 0 评论 -
java 导出Excel设置宽度自适应
java 导出Excel设置宽度自适应。转载 2022-09-13 16:38:21 · 7521 阅读 · 0 评论 -
java构建树形结构且统计个数和指定统计某项个数
如果仅仅是构建树形结构,可以看这篇文章stream构建树形结构。我这里也有递归去形成树形结构的方法 public static List<Dept> createTreeValues(List<Dept> deptList) { List<Dept> result = new ArrayList<>(); for (Dept dept : deptList) { if (dept.getParentId原创 2022-04-28 10:55:20 · 3093 阅读 · 0 评论 -
java生成图片带有字体水印(根据图片大小动态生成水印字体大小)
/** * @param filePath 需要添加水印的图片地址 * @param fileAddress 生成水印后的图片地址 * @param watermarkingName 水印信息 * @return */ public static boolean addImageWatermarking(String filePath, String fileAddress, String watermarkingN...原创 2022-04-06 16:11:59 · 2329 阅读 · 0 评论 -
java算法,根据时间(时分)段,判断是否在时间段内(时长)。
实体类 TtbWorkResultTable只需要设置俩个字段 descr,workDate. /** * @param workResultTables workDateStr以及他前一天的日期的班表 * @param workDateStr 申请的日期 * @param beginTime * @param endTime * @return */ public static List<Map<String,原创 2021-12-06 14:28:05 · 1150 阅读 · 0 评论 -
java利用stream去构建树形结构数据
首先构建一个树形的实体类@Datapublic class SalaryNodeTreeVo { /*结点父类id*/ private Integer parentId; /*结点名称*/ private String nodeName; /*当前节点id*/ private Integer nodeId; /*孩子结点list*/ private List<SalaryNodeTreeVo> children;}原创 2021-04-26 14:10:42 · 1028 阅读 · 0 评论 -
导出带有下拉框方法(包含下拉框大于255)
/** * @param @param handers Excel列标题(数组) * @param @param downData 下拉框数据(数组) * @param @param downRows 下拉列的序号(数组,序号从0开始) * @return void * @throws * @Title: createExcelTemplate * @Description: 生成Excel导入模板 */ pu.转载 2021-04-06 14:08:09 · 614 阅读 · 0 评论 -
比较俩个list是否完全一致
public static void main(String[] args) { List<String> list1=new ArrayList<>(); List<String> list2=new ArrayList<>(); list1.add("123"); list1.add("123"); list1.add("1233"); list1.ad...原创 2020-12-03 10:07:25 · 791 阅读 · 0 评论 -
关于java导出Excel文件,标题和数据一一对应
/** * 创建excel,并插入数据 * @param titleList * @param rowsList */ public AjaxResult createExcelView(List<String> titleList, List<Map<String, Object>> rowsList, String sheetName) { OutputStream out = null;原创 2020-12-03 09:18:12 · 1053 阅读 · 0 评论 -
通过map的相同的value获取key的集合操作
1.初始化一个具有相同value的map: Map<Integer, String> map = new HashMap<>(); map.put(1, "123"); map.put(2, "123"); map.put(3, "123"); map.put(4, "1234"); map.put(5, "1234"); map.put(6, "12323");2.获取所有的val原创 2020-11-25 23:34:30 · 2664 阅读 · 0 评论 -
关于使用post方式从前端提交大量json数据到控制层报错的解决方法
在做类似于博客系统的文章保存时,由于考虑了文章内容过多,边用post方式提交数据。在前面几次测试中没有出现问题。在给用户使用的时候发现,当内容超过十万字的时候就出现控制层无法接收到数据的情况。在百度上面找到很多有类似的问题。最后我把问题锁定在服务器的post提交允许的最大值上面。给他加上了这个属性,以及在使用ajax提交的时候加上了 contentType: "application/x-www-form-urlencoded;charset=utf-8", dataType: "json"原创 2020-09-24 14:03:13 · 721 阅读 · 0 评论 -
java关于文件上传的万能版本
前端页面:<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8" %><%@ include file="/WEB-INF/layouts/base.jsp" %><!DOCTYPE html><html lang="en"><head></head><body class="konwledge-add-原创 2020-09-15 09:44:22 · 265 阅读 · 0 评论 -
java关于时间之间的加减,字符串和时间的转换,年月日的加减的工具类
package com.jszh.ECPlatform.os.util;import java.math.BigDecimal;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.Scanner;import com.jszh.ECPlatform.order.entity.Orde原创 2020-05-11 09:38:34 · 573 阅读 · 0 评论 -
Java修炼——传参机制和包机制
参数传值机制java中所有的值传递,都是值的复制,传的副本,根据传递参数的地址去找对象package com.bjsxt.test;public class User2 { int id; String name; String pwd; public User2(int id,String name){ this.id=id; this.name=name; }...原创 2019-07-13 16:48:41 · 176 阅读 · 1 评论 -
Java修炼——键盘输入,字节转换流
键盘控制输入字符,并且有转换流(InputStreamReader)加入,同样也是使用了缓冲。package com.bjsxt.ioproject;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileNotFoundException;i...原创 2019-07-20 21:58:37 · 213 阅读 · 0 评论 -
Java修炼——Set的子接口Vector的方法使用
Vector的方法和ArrayList相似package com.bjsxt.Array;import java.util.Iterator;import java.util.List;import java.util.Vector;public class TestVector { public static void main(String[] args) { List v...原创 2019-07-21 14:36:22 · 250 阅读 · 0 评论 -
Java修炼——容器体系框架总结
容器有俩大接口Collection接口(无序,不唯一)和Map接口Collection接口有俩个子接口分别是List和Set。List接口特点是有序但是不唯一,她有三个子接口分别是:ArrayList,Vector以及LinkListArrayList我们在前面文章中有详细介绍。在这里我们补充几点。ArrayList底层是数组。由于她是继承List接口。所以她也是有序但是不唯一。Vecto...原创 2019-07-21 15:08:07 · 179 阅读 · 0 评论 -
Java修炼——四种方式解析XML_DOM
四种方式解析XML:DOM JDOM DOM4J SAX先写一个XML栗子:<?xml version="1.0" encoding="UTF-8"?><books xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:noNamespaceSchemaLocation="{book.x...原创 2019-07-25 16:35:12 · 200 阅读 · 0 评论 -
Java修炼——四种方式解析XML_JDOM
四种方式解析XML:DOM JDOM DOM4J SAXJDOM使用前需要上传jar包。先写一个XML栗子:<?xml version="1.0" encoding="UTF-8"?><books xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:noNamespaceSchem...原创 2019-07-25 16:44:26 · 182 阅读 · 0 评论 -
Java修炼——四种方式解析XML_SAX
四种方式解析XML:DOM JDOM DOM4J SAX先写一个XML栗子:<?xml version="1.0" encoding="UTF-8"?><books xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:noNamespaceSchemaLocation="{book....原创 2019-07-25 16:56:19 · 203 阅读 · 0 评论 -
Java修炼——四种方式解析XML_DOM4J
四种方式解析XML:DOM JDOM DOM4J SAX注意:DOM4J使用是需要上传jar包的。先写一个XML栗子:<?xml version="1.0" encoding="UTF-8"?><books xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:noNamespac...原创 2019-07-25 17:08:47 · 221 阅读 · 0 评论 -
Java修炼——XPATH 技术_快速获取节点
准备资源 1)DOM4J 的 jar 包2)Jaxen 的 jar 包3)XPATH中文文档XPATH技术是为了将获取结点变得更简单,更方便而设计的。是在DOM4J的基础上完成的。因此需要俩个jar包1.需要添加dom4j的jar包 2.Jaxen 的 jar 包package com.bjsxt.xpaht;import java.io.File;im...原创 2019-07-25 19:18:41 · 552 阅读 · 0 评论 -
Java修炼——文件夹的复制
文件夹的复制用到了俩个流:缓冲流和文件字节流缓冲流用来加快写入和读取速度。在这里我简述一下复制文件夹的过程,当然复制文件夹都可以,复制文件更是不在话下1.首先要明确俩点。要复制的文件夹的位置(源文件目录),还有一个就是你需 要复制到哪的文件夹位置(目的文件目录)。2.就是判断目标文件是否文在,要是没有那就创建。3.第三个就是获取传进来的源文件目录,遍历他。4.然后就是分为俩步去复制,第...原创 2019-07-22 11:38:53 · 139 阅读 · 0 评论 -
Java修炼——反射机制
反射机制常见的作用:1) 动态的加载类、动态的获取类的信息(属性,方法,构造器)2) 动态构造对象3) 动态调用类和对象的任意方法、构造器4) 动态调用和处理属性5) 获取泛型信息 6) 处理注解先创建一个User类:package com.bjsxt.entity;public class User { private int uid; pu...原创 2019-07-26 19:39:22 · 100 阅读 · 0 评论 -
Java修炼——暂停线程的四个方法
线程的获取方法:Thread.currentThread()后面可以加上获取线程的名字.getName()这样就成功获取到了线程的名字。 Sleep会导致当前线程休眠一定时间,进入阻塞状态 Join会导致调用他的线程进入阻塞状态 Yield会导致让他线程进入就绪状态Stop() 方法 The method ...原创 2019-07-23 10:48:22 · 486 阅读 · 0 评论 -
Java修炼——手写服务器项目
项目工程总览:1.Dispatcher类(一个请求与响应就是一个Dispatcher)package com.bjsxt.server;import java.io.IOException;import java.net.Socket;import com.bjsxt.servlet.Servlet;import com.bjsxt.util.IOCloseUtil;...原创 2019-07-27 16:53:57 · 248 阅读 · 0 评论 -
Java修炼——文件字节输入输出流复制和缓冲流复制
一:文件字节输入输出流复制首先明确数据源和目的文件,然后就是“中转站”,最后就是关闭package com.bjsxt.ioproject;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;public clas...原创 2019-07-20 20:20:15 · 878 阅读 · 0 评论 -
Java修炼——FileInputStream和FileOutputStream
文件字节流FileInputStream是读文件内容有一下五个方法1) abstract int read( );2) int read( byte b[ ] );3) int read( byte b[ ], int off, int len );4) int available( );5) close( );package com.bjsxt.ioproject;import...原创 2019-07-20 19:48:26 · 937 阅读 · 0 评论 -
Java修炼——面向对象的三大特征_多态_多态的三个必要条件
多态指的是同一个方法调用,由于对象不同可能会有不同的行为,现实生活中,同一个方法,具体实现会完全不同。多态的要点:1.多态是方法的多态,不是属性的多态(多态与属性无关)2.多态的存在有三个必要条件:继承,方法重写,父类引用指向子类对象。3.父类引用指向子类对象后,用该父类引用调用子类重写方法,此时多态就出现了。package com.bjsxt.test;public class T...原创 2019-07-14 19:18:35 · 422 阅读 · 0 评论 -
Java修炼——面向对象的三大特征_封装的使用
封装的作用含义:程序设计追求“高内聚,低耦合”1.提高代码的安全性2.提高代码的复用性3.“高内聚”:封装细节,便于修改内部代码,提高可 维护性4.“低耦合”:简化外部调用,便于调用者使用,便于 扩展和协作Private:表示私有,只能只有自己的类才可以访问Default:表示没有修饰符修饰,只有同一个包才能访问Protect:表示保护,可以被同一个类,同一个包,以及子...原创 2019-07-14 19:15:30 · 122 阅读 · 0 评论 -
Java修炼——继承_super父类对象的引用
Super是指直接父类对象的引用,可以通过super来访问父类中被子类覆盖的方法和属性。当你调用子类的构造方法时,系统会默认给你先调用父类的构造方法,然后才会调用子类的构造方法。package com.bjsxt.test;public class TestSuper02 { public static void main(String[] args) { System.out.pri...原创 2019-07-13 21:55:50 · 150 阅读 · 0 评论 -
Java修炼——继承_equals方法的重写
==和equals方法:如果是基本类型,那则是判断俩边值是否相等,如果是对象,则判断俩边的对象地址是否相等。package com.bjsxt.test;public class TestEquals { public static void main(String[] args) { User1 u1=new User1(1001, "梨花", "123456"); User1...原创 2019-07-13 21:54:06 · 466 阅读 · 0 评论 -
Java修炼——继承object类的用法_重写toString方法
Object类是所有java类的基类,也就意味着java所有类都有Object类的属性和方法。package com.bjsxt.test;public class TestToString { public static void main(String[] args) { TestToString tts=new TestToString(); System.out.printl...原创 2019-07-13 21:46:54 · 437 阅读 · 0 评论 -
Java修炼——继承方法之重写(override)_返回值类型
继承方法的重写override_返回值类型的问题(重载overload)子类重写父类的方法,子类自身的行为替换父类的行为,覆盖也是重写。重写要符合三个要点:1.方法名,参数列表相同2.返回值类型和声明异常类型,子类小于等于父类3.访问权限,子类大于等于父类重写父类的方法:package com.bjsxt.test;public class TestOverride { pu...原创 2019-07-13 21:43:51 · 1800 阅读 · 0 评论 -
Java修炼——Import静态导入和继承_interfaceof
Import详解_静态导入如果需要在不同包下,用到另一个包里面的内容时,用import导入,如果需要的东西较多,用号,表示所有。(例:import com.bjsxt.)导入所有只会降低编译速度,不会降低运行速度 。当导入俩个包都有的类时,则需要在类的前面明确表示是哪个包下面的。面向对象的三大特性_继承_interfaceof的使用Extends关键字实现了代码的复用,子类是父类的扩展。...原创 2019-07-13 21:37:12 · 550 阅读 · 0 评论 -
Java修炼——this和static关键字
This的本质_对象创建过程4步:1.分配对象空间,并将对象成员变量初始化为0或者为 null2.执行属性值的显示初始化3.执行构造方法4.返回对象的地址给相关变量This的本质就是“创建好对象的地址”,表示当前对 象。This不能用于static方法中。Static关键字_内存分析静态变量和静态方法用static修饰的成员变量是静态成员变量,也是类变量,类变量的生命周期和类相...原创 2019-07-13 16:41:42 · 110 阅读 · 0 评论 -
Java修炼——垃圾回收机制
垃圾回收机制内存管理 Java的内存管理很大程度指的就是对象的管理,其中包 括对象空间的分配和释放。 对象空间的分配:使用new关键字创建对象即可 对象空间的释放:将对象赋值null即可。垃圾回收器将负责回收所有”不可达”对象的内存空间。 垃圾回收过程 任何一种垃圾回收算法一般要做两件基本事情: 1. 发现无用的对象 2. 回收无用对象占用的内存空间。 垃圾回...原创 2019-07-13 16:39:09 · 294 阅读 · 0 评论 -
Java修炼——面向对象的内存分析和构造方法
面向对象的内存分析Java虚拟机的内存可以分为三个区域:栈stack、堆heap、方法区method area。栈的特点如下: 1. 栈描述的是方法执行的内存模型。每个方法被调用 都会创建一个栈帧(存储局部变量、操作数、方法出 口等) 2. JVM为每个线程创建一个栈,用于存放该线程执行方 法的信息(实际参数、局部变量等) 3. 栈属于线程私有,不能实现线程间的共享!...原创 2019-07-13 16:35:54 · 140 阅读 · 0 评论 -
Java修炼——面向对象初步
面向对象过程和面向对象区别他俩都是对软件分析,设计和开发的一种思想,他指导者人们以不同的方式去分析,设计和开发软件。面向过程思想思考问题时,我们首先思考“怎么按步骤实现”,并将步骤对应成方法,一步一步,最终实现。这种适合简单任务,不需要过多协作的情况下。面向对象思想跟适合人多思维模式,我们首先思考的是“怎么设计这个事务”总结:1.都是解决问题的思维范式2.解决简单问题可以解决简单问题,...原创 2019-07-13 16:29:31 · 441 阅读 · 0 评论