![](https://img-blog.csdnimg.cn/743225f231d74fa4b190256a33d1df66.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java
文章平均质量分 68
Java基础知识和全家桶框架,主要以Java为主的后端生态,和项目应用整合
day day day ...
进阶中
展开
-
大文件上传接口响应超时
直接冲向了负责前端的同事,温柔地向他提出了疑问,我这个文件上传怎么一直在30s处就中断,你们是不是写死了30s!!!!!!!!!原创 2023-04-20 16:10:44 · 3120 阅读 · 0 评论 -
FastJson 重大漏洞,可使整个服务瘫痪,赶紧替换已修复版本
报告编号:B6-2019-090501报告来源:360-CERT报告作者:360-CERT更新日期:2019-09-050x00 漏洞背景2019年9月5日,360CERT监测到2019年9月3日fastjson在commit995845170527221ca0293cf290e33a7d6cb52bf7上提交了旨在修复当字符串中包含\x转义字符时可能引发OOM的问...转载 2019-09-09 16:11:19 · 1908 阅读 · 0 评论 -
Log4j 远程执行漏洞 版本小于2.15.0-rc2
公开日期:2021.12.09漏洞细节被公开漏洞危害:高危、远程代码执行可能的受影响应用包括但不限于如下:Spring-Boot-strater-log4j2Apache Struts2Apache SolrApache FlinkApache DruidElasticSearchflumedubboRedislogstashkafka影响版本apache log4j2 2.0 -2.15.0-rc1完整修复版本>= 2.15.0.0 <.原创 2021-12-14 10:01:26 · 4202 阅读 · 0 评论 -
查看工程里有多少行java代码
/** * @Classname CustBankcardServiceImpl * @Description 计算项目代码量(行数) * @Date 2019/11/04 14:24 * @Created by lw */public static void main(String[] args) throws IOException { // java代码 int java_num = getProjectFileNumber(new File("D:\\W.原创 2021-12-08 16:06:16 · 368 阅读 · 0 评论 -
JAVA 文件上传下载(网络文件和本地文件)
上传/** * 文件上传 * @param file * @param file * @return */ @PostMapping("/upload") @ApiOperation(value = "文件上传") @ApiOperationSupport(order = 1) @RequiresPermissions("baseinfo:basic-information:upload") public Res原创 2021-06-23 09:42:03 · 294 阅读 · 0 评论 -
简说设计模式——策略模式
一、什么是策略模式 策略这个词应该怎么理解,打个比方说,我们出门的时候会选择不同的出行方式,比如骑自行车、坐公交、坐火车、坐飞机、坐火箭等等,这些出行方式,每一种都是一个策略。 再比如我们去逛商场,商场现在正在搞活动,有打折的、有满减的、有返利的等等,其实不管商场如何进行促销,说到底都是一些算法,这些算法本身只是一种策略,并且这些算法是随时都可能互相替换的,比如针对同一件商品,今天打八折、明天满100减30,这些策略间是可以互换的。 策略模式(Strategy),定义了一组算法,将每个算法转载 2021-02-15 16:09:08 · 154 阅读 · 0 评论 -
CPU 100%占用问题定位和处理
记一次Java线上服务器CPU过载问题的排查过程,详解排查过程中用到的Java性能监测工具:jvisualvm、jstack、jstat、jmap。背景:Java线上服务运行一周后,某个周六晚上CPU使用率突然持续99%,Java进程处于假死状态,不响应请求。秉着先恢复服务再排查问题的原则,在我连接VPN采用重启大法后,CPU使用率恢复正常,服务也正常响应了,如下图一所示:(图一)CP...转载 2019-10-10 14:40:51 · 397 阅读 · 0 评论 -
BigDecimal 报错处理 - java.lang.ArithmeticException: Non-terminating decimal expansion; no exact represe
问题记录:计算一个回收率的值时抛出异常 java.lang.ArithmeticException: Non-terminating decimal expansion; no exact represe 测试时,前几次都没有问题,但在某一次测试中,改变了一个可变的数值时,抛出异常。问题定位:调用 BigDecimal的 divide方法时抛出异常,调用的方法是重载方法中,只有一个参数的divide(BigDecimal divisor);问题分析: ...原创 2020-08-17 11:06:46 · 4110 阅读 · 0 评论 -
freemarker 数字输出问题
默认每三位数字就用一个","隔开 页面数字类型变量后添加:?c 纯数字输出 数字转字符串输出 页面引入设置:<#setting number_format="表达式"> (1)<#setting number_format="#">整数,若有小数四舍五入 (2)<#setting number_format="0.#">保留一位小数 (3)<#setting number_format="0.##">保留两位小数 可写一个公共页面填写好...原创 2020-08-01 10:03:39 · 545 阅读 · 0 评论 -
java 在线API
java在线APIhttp://www.matools.com/api/java8http://www.matools.com/api/java11原创 2020-07-09 14:52:55 · 2278 阅读 · 0 评论 -
局部变量和成员变量
局部变量:如果是基本数据类型,那么就直接存在栈中,如果是引用数据类型,比如String str = new String("12");,会把对象存在堆中,对象的引用存在栈中,成员变量:类的成员在不同对象中各不相同,基本数据类型和引用数据类型都存储在这个对象中,作为一个整体存储在堆中。而类的方法是所有的对象共享的,方法是存在方法区的,只用当调用的时候才会被压栈,不用的时候是占内存的。...原创 2020-07-01 11:52:54 · 127 阅读 · 0 评论 -
多个PDF文件或PDF数据流的合并
背景 公司因人员变动和业务整改,提出将原打印(数据库保存的HTML字符串做替换)全部迁移至framework(利用framework完成数据字段替换与EL表达式相似,转换成PDF的二进制流返回),主要是为了方便开发和维护,对应单个的打印文件的预览都没有问题,后期提出新需求,需要勾选多个预览文件时,在一个弹框里面看到所有的pdf文件,就是一个接着一个的长pdf。 特别说明:所有打印文件的模板(f...原创 2020-04-16 18:50:25 · 6285 阅读 · 2 评论 -
java开发手册(工程结构)——摘自《阿里巴巴Java开发手册》
应用分层【推荐】默认上层依赖于下层,箭头关系表示可直接依赖,如:开放接口可以依赖于Web层,也可以直接依赖于Service层,以此类推。 1)开放接口层:可直接封装Service方法暴露成RPC接口;通过Web封装成HTTP接口;进行网关安全控制、流量控制等。 2)终端显示层:各个端的模板渲染并执行显示的层。当前主要是velocity渲染、JS、JSP、移动端展示...原创 2020-01-06 10:17:25 · 285 阅读 · 0 评论 -
java开发手册(重心篇 - MySQL)——摘自《阿里巴巴Java开发手册》
建表规约【强制】表达是与否概念的字段,必须使用is_xxx的方式命名,数据类型是unsigned tinyint (1表示是,0 表示否)。 说明:任何字段如果为非负数,数据类型则必须是 unsigned,类型声明:tinyintunsigned 注意:POJO类中的任何布尔类型的变量,都不要加is前缀。 所以,需要在<resultMap>...原创 2020-01-02 09:53:37 · 348 阅读 · 0 评论 -
gradle 各版本下载
https://www.jianshu.com/p/d9329117aa2f原创 2019-12-12 10:44:35 · 434 阅读 · 0 评论 -
java开发手册(重心篇 - 异常日志)——摘自《阿里巴巴Java开发手册》
异常日志异常处理【强制】finally块必须对资源对象、流对象进行关闭操作,如果有异常也需要try-catch。 说明:对于JDK7 及以上版本,可以使用try-with-resources方式(只是一种语法形式,原理同样是在 finally中进行外部资源释放) File file = new File("E:\\test.txt"); int len =...原创 2019-12-11 18:17:21 · 185 阅读 · 0 评论 -
Instant、LocalDateTime与DateTimeFormatter
最近两天在统计数据的时候发现数据出现丢失的情况,查看的原因是数据存库时,日期出现了异常情况,是SimpleDateFormat把String转Date的时候出现的线程安全问题。一直都知道SimpleDateFormat是线程不安全的,现在还是出现了问题。阿里Java规范中(六.5)有这么一条强制下面是按照说明使用JDK8代替以前的Date、Calendar、SimpleDa...转载 2019-12-03 15:48:17 · 352 阅读 · 0 评论 -
java开发手册(重心篇 - 编程)——摘自《阿里巴巴Java开发手册》
手册方法签名:方法名(参数类型...)NPE:NULL POINTER EXCEPTION编程规约命名风格【强制】类名使用UpperCamelCase风格,但DO / BO / DTO / VO / AO / PO等情形例外。 正例:ForceCode / UserDO/ XmlService / TcpUdpDeal / TaPromotion / QrCode 反例:...原创 2019-12-11 11:21:26 · 246 阅读 · 0 评论 -
Java 调用 Kafka 原生API —— 自定分区使用报错
此事件非 kafka API调用报错在实现自定义分区时,在 partition() 方法中实现分区均衡,均衡策略是根据 value 的 hashcode 值对主题分区个数做取余,这个均衡策略是很常用的,再利用nginx 做负载均衡时,就会用到的一种策略。本身没有任何问题在做如下测试前,请先启动 zookeeper 和 kafka,若你的kafka 的server 配置中指定新创建的主题默...原创 2019-11-08 15:00:17 · 408 阅读 · 0 评论 -
Java阅读学习全攻略——》阅读官方文档
入口Oracle官方文档入口:http://docs.oracle.com/。下级页面这边只整理了JavaEE跟JavaSE的文档。JavaEEJavaEE文档入口:http://docs.oracle.com/javaee/。下级页面有JavaEE相关的API跟Tutorial文档:http://docs.oracle.com/javaee/7/api/http://docs.o...转载 2019-10-14 13:47:49 · 385 阅读 · 0 评论 -
JDK1.8API 感谢免费分享
链接: https://pan.baidu.com/s/1Sa2tzSt40LKGpLUckh7OBQ提取码: spym转载 2018-12-10 16:38:21 · 3671 阅读 · 0 评论 -
彻底弄懂字符串常量池等相关问题
前言: 在平时我们使用字符串一般就是拿来直接搞起,很少有深入的去想过这方面的知识,导致别人在考我们的时候,会问 String str = new String("123"); 这个一行代码执行创建了几个对象, String str1= str + new String("456");这行代码中str1存储在内存的哪个位置,堆or 字符串常量区(方法区)? 会把我们问的哑口无言了;哈哈哈...转载 2019-02-14 16:56:38 · 3365 阅读 · 0 评论 -
JVM内存设置多大合适?Xmx和Xmn如何设置?
本文地址:https://www.dutycode.com/jvm_xmx_xmn_xms_shezhi.html除非注明,文章均为 www.dutycode.com 原创,欢迎转载!转载请注明本文地址,谢谢。问题:新上线一个java服务,或者是RPC或者是WEB站点, 内存的设置该怎么设置呢?设置成多大比较合适,既不浪费内存,又不影响性能呢?分析:依据的原则是根据Java Perf...转载 2019-02-14 17:06:29 · 3926 阅读 · 0 评论 -
You must configure either the server or JDBC driver (via the serverTimezone configuration property)
使用JDBC连接MySql时出现:The server time zone value '�й���ʱ��' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration...转载 2019-01-09 11:21:36 · 3853 阅读 · 0 评论 -
线程池ThreadPoolExecutor核心参数
public ThreadPoolExecutor( int corePoolSize, //核心池的大小。 int maximumPoolSize, //池中允许的最大线程数,这个参数表示了线程池中最多能创建的线程数量...原创 2019-02-18 14:23:44 · 2895 阅读 · 0 评论 -
缓存穿透,缓存击穿,缓存雪崩解决方案分析
设计一个缓存系统,不得不要考虑的问题就是:缓存穿透、缓存击穿与失效时的雪崩效应。缓存穿透缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时被动写的,并且出于容错考虑,如果从存储层查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到存储层去查询,失去了缓存的意义。在流量大时,可能DB就挂掉了,要是有人利用不存在的key频繁攻击我们的应用,这就是漏洞。解决方案有很...转载 2019-03-01 15:59:44 · 2376 阅读 · 0 评论 -
字符串反转方法reverse()
Stringstr=newStringBuffer("asdf").reverse().toString();//fdsareverse()方法是StringBuffer类定义的方法,而不是String的,所以调用需要转化成StringBuilder对象再调用该方法,再转换成String像String字符串拼接一样,需要将String先转化成StringBuilder对象...原创 2019-03-03 21:49:47 · 6668 阅读 · 0 评论 -
java抽象类和普通类的区别,抽象类和接口的区别
java抽象类和普通类的区别1.抽象类不能被实例化。2.抽象类可以有构造函数,被继承时子类必须继承父类一个构造方法,抽象方法不能被声明为静态。3.抽象方法只需申明,而无需实现,抽象类中可以允许普通方法有主体4.含有抽象方法的类必须申明为抽象类5.抽象的子类必须实现抽象类中所有抽象方法,否则这个子类也是抽象类。抽象类和接口的区别 Abstract Class ...原创 2019-03-03 21:55:23 · 3101 阅读 · 0 评论 -
HahsMap、Hashtable、ConcurrentHashMap
HashMap1.基于“数组+链表”的数据结构组成,在jdk1.8优化为"数组+链表+红黑树"的数据结构2.key、value可以为null(设为默认值)3.在链表扩容时(put操作时)的并发问题,形成环,造成可读不可写的问题(找不到链表尾则一直寻找,put造成CPU100%占用)Hashtable1.线程安全的哈希表,在关键方法上都加上了synchronized关键字,保证了...原创 2019-04-16 13:29:54 · 1387 阅读 · 0 评论 -
字符串指定分隔符替换,且后一个字符变大写
package abc; public class StringUtil { /** * 首字母大写 * * @param srcStr * @return */ public static String firstCharacterToUpper(String srcStr) { return srcStr.substring(0, 1).toUpperCas...转载 2019-06-17 15:27:04 · 1497 阅读 · 0 评论 -
IDEA 不自动复制资源文件到编译目录 classes 的问题
问题:当引入jQuery.js资源文件时,一直报资源文件未找到的问题,在排除路径错误后,再次去target目录下查看,发现target目录下根本没有我所引入的文件。解决方法:1.手动复制文件及目录到target对应目录下,一开始我是这么做的---不建议,更不是长久之计2.推荐,重构项目,会把所有资源文件映射到target目录下...原创 2018-09-28 14:34:12 · 5918 阅读 · 3 评论