Java问题
java学习、实战笔记,常用工具方法和技巧
liu_bees
学无止境,好记性不如烂笔头!
展开
-
10行代码实现Java文件大小格式化,支持GB、TB到YB可再扩展
10行代码实现Java文件大小格式化,支持GB、TB到YB。不包含方法名,不多不少,刚好十行代码~话不多说,直接上代码:(自己实现的)原创 2023-09-14 11:38:46 · 241 阅读 · 0 评论 -
Java断点续传超大视频-H5的video标签-踩坑过程笔记
背景:心血来潮想用jsp调用后端接口播放视频,因为一直不成功历尽艰难,故有此记。原创 2023-06-01 12:02:17 · 918 阅读 · 0 评论 -
提问:为什么整数乘于0.01小数会变成很多小数?java+js
提问:为什么整数乘于0.01小数会变成很多小数?java+js。这时问题出现了,当出现如 23.40 等金额时,最后结果是:23.400000000000002。原理就是将金额及其小数部分,转成int类型,然后还原小数位。使用Java结果同。原创 2022-09-09 10:58:37 · 708 阅读 · 0 评论 -
关于上传报ClassNotFoundException: org.apache.commons.fileupload.FileUploadBase$FileSizeLimitExceeded
关于上传报ClassNotFoundException: org.apache.commons.fileupload.FileUploadBase$FileSizeLimitExceeded采用tomcat的 ``tomcat-coyote.jar`` 包上传文件功能时,报如题异常:```javaCaused by: java.lang.ClassNotFoundException: org.apache.tomcat.util.http.fileupload.FileUploadBase$Size原创 2022-08-05 18:34:20 · 2611 阅读 · 0 评论 -
关于Map不为空,put时却报java.lang.NullPointerException空指针异常的问题!
从Map中获取不存在的key时会报空指针吗 关于Map不为空,put时却报java.lang.Nul度娘问了一圈,找到以下总结:map没有new啊,没有分配内存!map的key键值为空(比如TreeMap)2、进阶总结:Java自动拆装箱(即Long转long)二、问题发生写了一个追加得分的map在赋值的时候,要用到map里的旧得分即直接使用了此时的put,和get一样,如果key值不存在,返回值是null;而如果使用long去接收null,那肯定有问题,即抛空指针异常!...原创 2022-06-07 14:22:48 · 873 阅读 · 1 评论 -
使用eclipse生成javadoc帮助文档
附:使用eclipse生成javadoc帮助文档根据Javadoc文档的说明标准,对项目中的类、接口等文件精心编写注释。1、选择项目选中要生成javadoc的项目,右键->Export(导出)。选择Java->javadoc,点击Next>。点击eclipse的【Project】菜单,选择【Generate JavaDoc】选项。2、填写、选择信息,Nexta.生成工具,一般是jdk的javadoc.exe;b.选择项目及目录;c.选择访问范围,默认public;原创 2021-11-25 17:05:31 · 2602 阅读 · 0 评论 -
Java之Class.forName方法详解
一、前言:在说明Class类的静态方法forName()之前,先清楚有关Class类的几个概念:1、 Class类封装了类或接口的运行时状态Java程序在运行时,Java运行时系统一直对所有的对象进行所谓的运行时类型标识,这些标示纪录了每个对象所属的类。虚拟机通常使用运行时类型信息选择正确方法去执行,用来保存这些类型信息的类是Class类。2、Class类型的对象,是加载类时自动创建的Class 没有公共构造方法。Class 对象是在加载类时,由Java 虚拟机以及通过调用类加载器中的 defi原创 2021-07-19 16:53:52 · 5803 阅读 · 2 评论 -
URLConnection发送post请求乱码
在用UrlConnection进行网络编程,往往出现请求参数出现中文时,中文乱码,需要在请求中指定请求编码格式。一、检查1、检查一下有没有指定编码格式2、检查使用输出流的方式(是否已转码)二、代码public static String sendPost(String url, String paramsStr, String encode) { OutputStreamWriter out = null; BufferedReader in = null; String result .原创 2021-04-06 11:31:53 · 948 阅读 · 0 评论 -
Java开发经验篇-网页端
一、验证码(图片、短信)实现x秒后重新发送?时效性(点击了发送,多少秒后重新发送)有效性(发送了验证码,多少分钟内有效)笔记:防控:刷新页面、JS脚本窜改、验证码重用实现效果:1、js的Interval定时器2、对按钮的禁用点击3、Java的session计时(在发送验证码后保存当前时间,刷新页面后使用该时间;发送验证码时校验是否已存在范围内的有效时间,防止JS脚本窜改的提交。)4、Java的缓存机制(在发送验证码后保存验证码和时间,在提交时验证是否正确,有没有过期,若正原创 2021-03-29 18:28:00 · 185 阅读 · 0 评论 -
Java定时器Timer看这一篇就够了
> Timer 实现原理分析> Timer 的缺陷> Timer和ScheduledThreadPoolExecutor的区别> Timer的使用教程> JAVA中Timer类的基本使用> Timer的用法> Timer的注意事项原创 2021-03-10 09:42:41 · 137 阅读 · 0 评论 -
Java数据源连接池
Java数据源连接池示例图原创 2021-02-04 15:36:15 · 130 阅读 · 0 评论 -
&#是什么编码格式?StringEscapeUtils.escapeHtml()方法
&#是什么编码格式?StringEscapeUtils.escapeHtml()方法@前情摘要:获取参数时,中文变成了如嫁的格式。经查,系使用了StringEscapeUtils.escapeHtml()方法。故只能使用StringEscapeUtils.unescapeHtml解码。...原创 2020-11-19 15:57:07 · 1070 阅读 · 0 评论 -
Java打印表格 Console/控制台
功能: 控制台打印表格,支持字段动态长度,左对齐,设置最多打印多少行。更多代码请参考具体类,下载链接:[https://download.csdn.net/download/qq_26599807/12840079]原创 2020-09-14 11:18:46 · 2788 阅读 · 4 评论 -
slf4j的简单用法以及与log4j的区别
slf4j的简单用法以及与log4j的区别链接:https://www.cnblogs.com/qlqwjy/p/9275415.html原创 2020-08-28 17:08:26 · 142 阅读 · 0 评论 -
Java笔记---Log4j的两个版本
Java笔记—Log4j的两个版本官网地址:http://logging.apache.org/log4j/2.x/ 、 http://logging.apache.org/log4j/1.2/使用log4j的优势:1、可以有6中不同级别的信息打印方式2、可以选择多种打印输出源 –> console(控制台)/file(文件)/email(邮件)…3、打印时可以丰富打印信息Log4j2.x性能较log4j1.x在某种程度上提升了10倍:本文时间:2020-08-28 0原创 2020-08-28 15:50:44 · 2872 阅读 · 0 评论 -
Java如何记录程序启动时间?
1、使用jre自带的ManagementFactory类获取java.lang.management.ManagementFactory.getRuntimeMXBean().getStartTime()2、在WEB监听器/定时器中定义时间戳变量public class TimerListener implements ServletContextListener { public static final long StartTime = System.currentTimeMillis原创 2020-08-05 16:21:14 · 782 阅读 · 0 评论 -
Tomcat启动报A child container failed during start问题解决
Tomcat启动报A child container failed during start问题解决报错详情:严重: A child container failed during startjava.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].原创 2020-07-30 16:54:06 · 26532 阅读 · 6 评论 -
Java使用apache的poi将PPT转PDF文件,支持并兼容PPT和PPTX文件
Java使用apache的poi将PPT转PDF文件,支持并兼容PPT和PPTX文件前言:使用apache的poi,免费废话不多说,贴代码:package com.junit;import java.awt.Color;import java.awt.Dimension;import java.awt.Graphics2D;import java.awt.geom.AffineTransform;import java.awt.geom.Rectangle2D;import java原创 2020-07-29 10:53:30 · 3655 阅读 · 6 评论 -
#JavaPoi导入兼容版本问题:Package should contain a content type part [M1.13]异常的解决方式
Package should contain a content type part [M1.13]异常的解决方式在上传excel文件中,使用Java的POI解析excel文件,解析中出现了标题所示错误信息。解决方案:使用WorkbookFactory创建Workbook。Workbook workbook = null;try { workbook = WorkbookFactory.create(in);} catch (Exception e) { return "你的exce原创 2020-07-20 09:45:19 · 5328 阅读 · 0 评论 -
对于WEB 你没有权限访问该模块产生的疑问?
权限控制-如何禁止普通登录用户通过直输URL方式访问系统中其它自己不具备权限的模块?在自己开发的一些web项目,面向用户作为商户后台使用。在开发查找问题的过程中,往往会使用本地环境的链接,去拼接线上域名,然后在登录后重写地址栏回车,以此访问通过直输URL方式访问系统中其它自己不具备权限的模块。那么,该如何避免该问题呢?如何能方便简洁的做到模块权限的控制?博主开发的项目中,85%的项目都是登录后可访问的,还有15%是写死角色模块的。问度娘,找到一些比如子父窗口权限控制的,即通过判断访问的是否是子窗.原创 2020-07-03 18:05:53 · 683 阅读 · 0 评论 -
堆内存和栈内存详解
1、栈区(stack)— 由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈2、堆区(heap) — 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。转载 2015-10-23 11:45:35 · 384 阅读 · 0 评论 -
java 四舍五入保留小数
java 四舍五入保留小数https://www.baidu.com/link?url=kN9O-ngANzAYblQErN0kA-sBv_C5ssASr5e6tFnRy2qYV0pC-uHr9_cVOId9zkDe0E3w4h_do7rnN_q8VO02nX-C86Vhj4WamT9KMkb-ejHRkHdq5rYAr4abGJDZyfuF&wd=&eqid=96144809001957740000000656fc8aac转载 2016-03-31 10:31:34 · 375 阅读 · 0 评论 -
Java锁系列
一、乐观锁与悲观锁1、乐观锁:总是认为不会产生并发问题,每次去取数据的时候总认为不会有其他线程对数据进行修改,因此不会上锁,但是在更新时会判断其他线程在这之前有没有对数据进行修改,一般会使用版本号机制或CAS操作实现。version方式:一般是在数据表中加上一个数据版本号version字段,表示数据被修改的次数,当数据被修改时,version值会加一。当线程A要更新数据值时,...原创 2018-08-30 17:35:54 · 158 阅读 · 0 评论 -
CAS概述与使用
概述:CAS(Compare-and-Swap):即比较并替换,是一种实现并发算法时常用到的技术,Java并发包中的很多类都使用了CAS技术。CAS需要有3个操作数:内存地址V,旧的预期值A,即将要更新的目标值B。CAS指令执行时,当且仅当内存地址V的值与预期值A相等时,将内存地址V的值修改为B,否则就什么都不做。整个比较并替换的操作是一个原子操作。 使用:对于java中,...原创 2018-08-30 18:11:30 · 701 阅读 · 0 评论 -
不排序的Map
'不排序'的Map需求:不想插入的值按key (string) 排序, 而是按插入值的先后顺序放在容器中。为实现这个目标,使用map轻易是做不出来的,所以我用List和Map结合实现结果集不排序: public static void main(String[] args) { List<String> list = new ArrayList<String...原创 2018-09-10 16:52:02 · 7782 阅读 · 1 评论 -
线程安全Map比较
线程安全Map比较ConcurrentHashMapConcurrentHashMap(以下简称CHM)是JUC包中的一个类,Spring的源码中有很多使用CHM的地方。之前已经翻译过一篇关于ConcurrentHashMap的博客,如何在java中使用ConcurrentHashMap,里面介绍了CHM在Java中的实现,CHM的一些重要特性和什么情况下应该使用CHM。需要注意的是,上面...转载 2018-09-27 10:14:14 · 1363 阅读 · 0 评论 -
Java 正则去空格、回车、换行符、制表符
话不多说,上代码:public class JunitReplaceAll { public static void main(String[] args) { String string = "我 是 张 三 。"; String string2 = string.replaceAll("\\s*|\t|\r|\n", ""); System.out.println(...原创 2018-09-27 14:03:20 · 8792 阅读 · 0 评论 -
Java信鸽推送JDK之v3版本Demo
提示:demo为信鸽推送单个账号推送,记得修改XINGEPUSH_APPID和XINGEPUSH_SECRETKEY!! XingePush 工具类: package com.bee.push.xinge;import java.io.BufferedReader;import java.io.DataOutputStream;import java.io.InputStream...原创 2018-10-29 17:06:39 · 1713 阅读 · 3 评论 -
Java集合分页公式
当前页 curPage 页面提供 每页大小 pageSize 页面提供 总行数 totalRecord 从数据库/集合查询 总页数 totalPage totalPage = (totalRecord + pageSize - 1) / pageSize; 总页数 = (总记录数 + 每页数据大小 - ...原创 2018-11-16 17:08:03 · 1706 阅读 · 0 评论 -
Java compiler level does not match解决方法
从别的地方导入一个项目的时候,经常会遇到eclipse/Myeclipse报Description Resource Path Location Type Java compiler level does not match the version of the installed Java project facet.出现这个问题的原因是因为,eclipse/myeclipse的jdk编译版本...原创 2019-01-07 15:13:14 · 494 阅读 · 0 评论 -
【Java异常】Unexpected end of file from server 异常
Java使用网络请求时,报Unexpected end of file from server异常。问题按以下情况:微信:与微信支付相关接口报此异常:1、退款接口:需要双向https认证,加入微信证书(解决方案)。2、其它接口:请检查是否调用了退款接口(链接是否有误)。普通:《The End》...原创 2019-03-04 17:37:29 · 30773 阅读 · 0 评论 -
【Java】Character 类
Java Character 类的方法:序号方法与描述1isLetter() 是否是一个字母(是否是一个文字,不包括符号)2isDigit() 是否是一个数字字符3isWhitespace() 是否是一个空白字符4isUpperCase() 是否是大写字母5isLowerCase() 是否是小写字母6toUpperCase() 指定字...原创 2019-04-04 11:16:10 · 2010 阅读 · 0 评论 -
【java】5种打印数组
以该数组为例:Object[] paramValues;for (int i = 0; i < paramValues.length; i++) { System.out.print(paramValues[i] + ", ");}for(Object n: paramValues) System.out.println(n+", ");System...转载 2019-04-04 15:19:16 · 4793 阅读 · 0 评论 -
使用IText替换/隐藏文字
一、背景跟第三方对接获取pdf文件,但里面有显示购买的价格,而为了为商利润,需要隐藏该价格。刚开始是想直接对某坐标隐藏,但发现各个pdf的内容有所不同,导致价格所在的坐标也不同。二、参考文案《使用itext直接替换PDF中的文本》@ 里面内容不错,方法与教学都还行,也有不足,如评论里写的一样,文本替换仅支持一页。三、我的代码:1、替换行的模型(x轴、y轴、宽度、高度等):pack...原创 2019-05-17 11:05:12 · 3167 阅读 · 0 评论 -
Java之服务漏洞
1、fastjson(1).【漏洞预警】fastjson < 1.2.60 远程拒绝服务漏洞近日,阿里云应急响应中心监测到fastjson爆出远程拒绝服务漏洞,攻击者在请求中构造特定json字符串,可远程造成服务器内存和CPU等资源耗尽,最终拒绝服务。官方已发布公告说明,最新的1.2.60和带有sec06字符的版本不受影响,请使用到的用户尽快升级至安全版本。漏洞描述:fast...原创 2019-09-23 13:59:53 · 419 阅读 · 0 评论 -
一分钟理解“工厂模式”
一分钟理解“工厂模式”工厂模式是我们最常用的实例化对象模式了,是用工厂方法代替new操作的一种模式。原创 2015-10-23 10:07:14 · 361 阅读 · 1 评论