Java
文章平均质量分 52
梦里梦见醒不来丶
未来可期
展开
-
Java:excel模板文件打包后乱码问题
问题:项目中resources目录下的excel模板打包后文件乱码了原因:maven打包会对资源统一编码解决方式:忽略maven打包时需要编码的文件在pom.xml加入下面代码 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>...原创 2020-03-31 09:49:30 · 1407 阅读 · 7 评论 -
Java:企业微信开发——上传临时素材
请求方式:POST(HTTPS)请求地址:https://qyapi.weixin.qq.com/cgi-bin/media/upload?access_token=ACCESS_TOKEN&type=TYPE素材上传得到media_id,该media_id仅三天内有效media_id在同一企业内应用之间可以共享这个media_id在推送图表、文件、语言等消息时需要用到的type...原创 2020-03-11 14:35:57 · 5904 阅读 · 3 评论 -
Java:企业微信推送消息到个人和部门
第一步:我们需要组装请求参数,比如下面这种的JSON字符串这里接收的个人企业微信ID和部门ID是用符号 | 隔开的{ "touser" : "UserID1|UserID2|UserID3", "toparty" : "PartyID1|PartyID2", "totag" : "TagID1 | TagID2", "msgtype" : "text", "age...原创 2020-03-11 14:26:26 · 3157 阅读 · 1 评论 -
Java:获取企业微信Token
1、获取条件:企业ID、应用的凭证密钥官方API:https://work.weixin.qq.com/api/doc/90000/90135/91039代码:corpid:企业IDcorpsecret:应用的凭证密钥 public static AccessToken getAccessToken(){ if(StringUtils.isEmpty(corpid)){...原创 2020-03-04 17:34:08 · 2145 阅读 · 2 评论 -
Java多张图片合成一张(横向或竖向)
代码说话package com.example.demo.image;import sun.misc.BASE64Decoder;import javax.imageio.ImageIO;import java.awt.*;import java.awt.image.BufferedImage;import java.io.ByteArrayInputStream;import ...原创 2020-03-02 17:46:37 · 1918 阅读 · 1 评论 -
Java数组实现栈和队列
队列实现:package com.example.javabase.test;/** * @author XuJD * @create 2019-11-21 10:11 * 基于数组实现队列 **/public class Queue3 { /** * 队列 */ private String[] data; /** * 队列最...原创 2019-11-21 11:08:09 · 822 阅读 · 0 评论 -
Synchronized和Lock的区别
Synchronized和Lock的区别并发编程中,锁是经常需要使用的。在开发中我们常用的锁有两种Synchronized和Lock。线程安全问题线程安全是在多线程编程中,有可能会出现同时访问同一个 共享、可变资源 的情况,始终都不会导致数据破坏以及其他不该出现的结果。这种资源可以是一个变量、一个对象、一个文件等。共享:多个线程可以同时访问该共享变量。可变:数据在生命周期中可以被改变。...转载 2019-11-01 14:35:31 · 10452 阅读 · 0 评论 -
Java中throw和throws的区别
系统自动抛出的异常 所有系统定义的编译和运行异常都可以由系统自动抛出,称为标准异常,并且 Java 强烈地要求应用程序进行完整的异常处理,给用户友好的提示,或者修正后使程序继续执行。语句抛出的异常 用户程序自定义的异常和应用程序特定的异常,必须借助于 throws 和 throw 语句来定义抛出异常。throw是语句抛出一个异常。语法:throw (异常对象); throw转载 2017-11-18 09:42:54 · 314 阅读 · 0 评论 -
HttpURLConnection使用
URL url=null; HttpURLConnection httpUrlConnection=null; InputStream inStream=null; ByteArrayOutputStream outStream=null; String tokenName=null;原创 2017-11-01 10:16:06 · 394 阅读 · 0 评论 -
Java中Synchronized的用法
synchronized是Java中的关键字,是一种同步锁。它修饰的对象有以下几种: 1. 修饰一个代码块,被修饰的代码块称为同步语句块,其作用的范围是大括号{}括起来的代码,作用的对象是调用这个代码块的对象; 2. 修饰一个方法,被修饰的方法称为同步方法,其作用的范围是整个方法,作用的对象是调用这个方法的对象; 3. 修改一个静态的方法,其作用的范围是整个静态方法,作用的对象是这个类的所有对原创 2017-10-27 14:31:53 · 238 阅读 · 0 评论 -
POI 设置单元格背景色
POI 设置单元格背景色,背景色编码与实际颜色对照表 转载 2015年06月27日 16:29:58 标签: </ul原创 2017-10-14 11:29:04 · 649 阅读 · 0 评论 -
Java Object与Map对象相互转换
/** * 使用org.apache.commons.beanutils进行转换 */ class A { public static Object mapToObject(Map<String, Object> map, Class<?> beanClass) throws Exception { if (map == null)原创 2017-10-14 11:24:41 · 8086 阅读 · 0 评论 -
服务端实现跨域访问的三种办法
跨域是指html文件所在的服务器与ajax请求的服务器是不同的ip+port,例如:‘192.168.1.1:8080’ 与 ‘192.168.1.2:8080’是不同的域。‘192.168.1.1:8080’ 与 ‘192.168.1.1:8081’是不同的域。解决此类问题的方法很多,有需要客户端和服务端都要更改的,例如jsonp,iframe等等;有只需要客户端更改的,这种情况只能出现在h原创 2017-09-25 19:51:40 · 3113 阅读 · 0 评论 -
本地tomcat服务器上的图片显示到jsp
首先配置basePath<%String basePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%>即 http://localhost:8080/你的项目名称jsp页面格式:<img src="<%=basePath %>/你存放图片的文件夹名/&原创 2017-09-25 10:22:27 · 2116 阅读 · 0 评论 -
获取web项目的绝对路径的方法总结
一、用Jsp获取 1、获取文件的绝对路径String file="文件";(例如:data.mdb)String path=application.getRealPath(file);结果:E:\java_web\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\myWebsite\文件2、获取文件的绝对原创 2017-09-25 10:18:55 · 408 阅读 · 0 评论 -
Java双引号变成转义字符"解决办法
Java中:利用StringEscapeUtils.unescapeHtml4强转String newJson = StringEscapeUtils.unescapeHtml4(jsonStr);JS中:用正则表达式将转义字符"替换为双引号 //替换转义字符 var yc = ycList.replace(/"/g,'"');原创 2018-01-04 14:27:49 · 28424 阅读 · 1 评论 -
Address localhost:1099 is already in use
错误原因:1099端口被占用解决办法:第一步:win+R,输入cmd进入命令操作 第二步:找到占用端口的进程IDnetstat -aon | findstr 1099//查看指定端口的占用情况1099已经被我干掉了,先看看3306端口的情况,1172就是占用3306端口的进程ID 或者你可以通过 netstat -aon 查看电脑所有端口的占用情况 第三步:干掉占...原创 2018-02-09 09:46:55 · 5755 阅读 · 1 评论 -
比较两个List,取出差异数据
对比list对象集合,需要重写equals和hashcode方法,如果为基本类型集合,则不需要我这里通过判断以下7个字段是否相同来判断对象是否一致 @Override public boolean equals(Object obj) { if(obj == this) {return true;} if (!(obj instanceof Re...原创 2018-03-29 10:26:41 · 43278 阅读 · 4 评论 -
调用远程shell脚本
1.远程执行shell脚本类package com.qingqing.bpt.utils.common;import ch.ethz.ssh2.ChannelCondition;import ch.ethz.ssh2.Connection;import ch.ethz.ssh2.Session;import ch.ethz.ssh2.StreamGobbler;import or...原创 2018-04-11 18:18:07 · 2054 阅读 · 0 评论 -
@ControllerAdvice + @ExceptionHandler 全局异常处理
1、 定义异常类//这里只传一个参 可以自己扩展public class BusinessException extends RuntimeException { private static final long serialVersionUID = 3416547891266313424L; private String message; public ...原创 2018-04-18 16:28:31 · 418 阅读 · 0 评论 -
java去除两个指定字符之间的所有字符串
1、如去除字符串 “abcdefgh” b和f之间的字符(包含b和f)String str = abcdefgh;String result = subRangeString(str,"b","f");result返回结果为 "agh",其他字符一样。private String subRangeString(String body,String str1,String str2)...原创 2018-07-01 10:56:09 · 9114 阅读 · 1 评论 -
metrics入门:API性能监控
**1、常识**Metrics,我们听到的太多了,熟悉大数据系统的不可能没听说过metrics,当我们需要为某个系统某个服务做监控、做统计,就需要用到Metrics。举个例子,一个图片压缩服务:每秒钟的请求数是多少(TPS)?平均每个请求处理的时间?请求处理的最长耗时?等待处理的请求队列长度?又或者一个缓存服务:缓存的命中率?平均查询缓存的时间?基本上每一个服务、应用都需要做一...原创 2018-07-01 11:07:03 · 21518 阅读 · 2 评论 -
HTTP 400 错误 - 请求无效 (Bad request)
在ajax请求后台数据时有时会报 HTTP 400 错误 - 请求无效 (Bad request);出现这个请求无效报错说明请求没有进入到后台服务里;原因: 1)前端提交数据的字段名称或者是字段类型和后台的实体类不一致,导致无法封装; 2)前端提交的到后台的数据应该是json字符串类型,而前端没有将对象转化为字符串类型;解决方案:1)对照字段名称,类型保证一致性2)使用stri...原创 2018-07-01 11:25:34 · 2452 阅读 · 0 评论 -
java增强型for循环和普通循环比较
增强型for循环和普通循环比较: (1)对于非集合类(没有实现 Iterable接口)的数组遍历,增强型for循环和普通循环遍历原理相同,效率相同 (2)对于集合类(实现了Iterable接口),...转载 2018-07-01 11:34:43 · 1847 阅读 · 0 评论 -
HTTP中GET与POST的区别
原文地址最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。你可能自己写过无数个GET和POST请求,或者已经看过很多权威网站总结出的他们的区别,你非常清楚知道什么时候该用什么。当你在面试中被问到这个问题,你的内心充满了自信和喜悦。你轻轻松松的给出了一个“标准答案”:GET在浏览器回退时是无害的,而POST会再次提交请求。GET产生的URL地址...转载 2018-09-17 19:02:40 · 197 阅读 · 0 评论 -
Java中OutOfMemoryError(内存溢出)的三种情况及解决办法
相信有一定java开发经验的人或多或少都会遇到OutOfMemoryError的问题,这个问题曾困扰了我很长时间,随着解决各类问题经验的积累以及对问题根源的探索,终于有了一个比较深入的认识。 在解决java内存溢出问题之前,需要对jvm(java虚拟机)的内存管理有一定的认识。jvm管理的内存大致包括三种不同类型的内存区域:Permanent Generation space(永久保存区域)、He转载 2017-08-07 17:58:02 · 404 阅读 · 0 评论 -
java打包文件生成zip压缩包
/** * 打包成zip包 */ public static void generateZip(OutputStream os, List<File> files) throws Exception { ZipOutputStream out = null; try { byte[] buffer = new byt原创 2017-09-23 09:54:50 · 15037 阅读 · 1 评论 -
timestamp转换成Date格式
/** *时间戳转换为Date类型 */ public Date convert(Object val) { if ( val instanceof TIMESTAMP ) { try { TIMESTAMP ts = (TIMESTAMP)val; return t原创 2017-09-23 09:45:36 · 11361 阅读 · 0 评论 -
Java二维码生成和解析
二维码生成:引用的包: <dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> <version>2.2</version> </dependency> <dependency原创 2017-09-23 09:41:28 · 509 阅读 · 0 评论 -
-Dmaven.multiModuleProjectDirectory system property is not set
在myeclipse中使用maven出现这个问题: -Dmaven.multiModuleProjectDirectory system property is not set. Check $M2_HOME environment variable and mvn script match.问题原因:当前maven版本与IDEA环境不兼容解决办法:1.新建环境变量名称:M2_HOME 环境变原创 2017-03-23 14:34:21 · 809 阅读 · 0 评论 -
Java的自动装箱与拆箱
一、什么是自动装箱拆箱 很简单,下面两句代码就可以看到装箱和拆箱过程1 //自动装箱2 Integer total = 99;3 4 //自定拆箱5 int totalprim = total; 简单一点说,装箱就是自动将基本数据类型转换为包装器类型;拆箱就是自动将包装器类型转换为基本数据类型。下面我们来看看需要装箱拆箱的类型有哪些:这个过程是自动执行...转载 2018-10-25 17:36:17 · 163 阅读 · 0 评论 -
Java实现https请求
/** * @author XuJD * @create 2019-01-21 17:21 **/public class HttpsUtil { private static Logger logger = LoggerFactory.getLogger(HttpsUtil.class); public static JSONObject httpsRequest(St...原创 2019-01-23 19:06:08 · 9395 阅读 · 2 评论 -
Java数组和链表三种遍历效率对比
数组结构示例代码: /*数组结构的三种循环遍历效率对比*/ @org.junit.Test public void test13(){ List<Integer> list = new ArrayList<>(10000000); for(int i=0;i<1000;i++){ lis...原创 2019-01-20 12:11:21 · 4817 阅读 · 4 评论 -
RabbitMQ消息接收确认机制ACK
默认情况下,rabbitMQ消息队列中的消息一旦有消费者接收了就会被删除,假如这个时候消费者宕机了或者异常了,就可能会导致消息丢失(接收到消息了,但并没有处理完这个消息),这时候就需要消费端在处理完消息后告诉rabbitMQ:“我已经成功消费完这个消息了,你可以删除这个消息了”。1.修改消费端rabbitmq配置信息,将消息确认机制设置为手动确认,因为默认是自动确认。/** * @XuJD...原创 2019-04-15 16:32:10 · 1544 阅读 · 0 评论 -
Map五种遍历方式
/*map遍历方式*/ @org.junit.Test public void mapTest(){ Map<String,String> map = new HashMap<>(); map.put("a","一"); map.put("b","二"); map.put("c","三");...原创 2019-05-10 15:21:24 · 502 阅读 · 0 评论 -
单链表反转
代码public class LinkDo { int data; LinkDo next; public LinkDo(int data) { this.data = data; } public int getData() { return data; } public void setData(i...原创 2019-05-24 11:21:48 · 155 阅读 · 1 评论 -
巧用Java8中的Stream,让集合操作飞起来!
简介java8也出来好久了,接口默认方法,lambda表达式,函数式接口,Date API等特性还是有必要去了解一下。比如在项目中经常用到集合,遍历集合可以试下lambda表达式,经常还要对集合进行过滤和排序,Stream就派上用场了。用习惯了,不得不说真的很好用。Stream作为java8的新特性,基于lambda表达式,是对集合对象功能的增强,它专注于对集合对象进行各种高效、便利的聚合操作...转载 2019-08-28 17:21:42 · 171 阅读 · 0 评论 -
session清除数据和添加数据
1. session.invalidate();//移出所有数据2. session.Abandon();//给session赋空值3. session.removeAttribute("user");//根据参数清除对应的值给session赋值request.getSession().setAttribute("user", u);//第一个是参数,第二个是值原创 2017-05-15 21:24:34 · 12723 阅读 · 0 评论 -
java防止帐号重复登录、后登入用户踢前登入用户
方法1: 每个用户登录后建立一个用户对象,将其同时放入session和在线用户集合;每个用户登录前先检查该用户名是不是在集合内,如果是,则将原用户对象移除,让二次登录的用户直接登录;用户每个请求前的在线状态查询里,判断其sesssion里用户对象是不是在集合里,不是则提醒未登录。方法2: 在数据库表中增加一个字段, loginStatus(命名就随便了) 就设置2个值把 1和2(随便什么都行原创 2017-05-15 21:55:15 · 6134 阅读 · 4 评论 -
Java导出Excel和图片
由于项目需要,需要导出数据和二维码到Excel,其实二维码就是图片我这里excel的布局要求是四列,每个单元由数据+二维码组成 public String exportCode(String id,EquEquipmentDetails equ,HttpServletResponse response,HttpServletRequest request) { String path原创 2017-09-23 09:36:46 · 5433 阅读 · 0 评论