java
文章平均质量分 54
zhangdaopin2016
Java攻城狮
最讨厌在写代码的时候写注释, 最讨厌别人的代码里面不写注释.
展开
-
Java - List遍历 携带下标(Consumer)
我们平时使用Java支持的Stream去处理集合的时候,常常使用.forEach直接去遍历集合中的数据,非常方便,不用再写for循环了,但是stream forEach的话,想获取每一次遍历时的次数,或者下标就无法入手了,也没有官方的api可以支持,其实我们可以写一个简单的工具类方法,使用Function的Consumer来处理这种情况;一个简单的工具方法,不用额外引入其他库,只使用java自带的function包就可以完美支持啦。原创 2024-09-07 10:36:04 · 249 阅读 · 0 评论 -
Java-如何使用Java将图片和文字拼接在一起(并非是给图片加水印)
由前端来下载就显得非常让人焦灼了,前端只能使用下载的这台电脑的性能来一张一张的下载小程序码并拼接门店的信息,1000多张小程序码的话,就需要10分钟左右的等待时间,有的客户的电脑性能比较差的话,干脆就没办法下载,怎么办呢?问题背景:项目中,有一个功能,管理端可以将客户创建的小程序码下载到本地,方便客户将对应门店的小程序码打印出来并张贴到门店,做门店的引流和会员入会。原创 2023-04-02 17:48:28 · 1643 阅读 · 2 评论 -
jd-gui - 打开jar出现中文乱码问题
java -D'file.encoding'=utf-8 -jar .\jd-gui.exe原创 2021-08-27 16:26:27 · 6281 阅读 · 2 评论 -
Java - LocalDateTime解析日期字符串值时丢弃秒值“00“,如“2021-07-01 15:33:00“ 转换为“2021-07-01T15:33“
在测试数据的时候,收集到各个时间点上的数据,发现怎么数据有点奇怪,都是中间的时间,没有整秒的数据呢? 查看后台日志,发现是因为在使用LocalDateTime接收秒值为"00"的数据时,秒值被丢弃掉了wrong date and time parameter format, parameter: 2021-07-01T15:33, format requirement: [yyyy-MM-ddTHH:mm:ss | yyyy-MM-ddTHH:mm:ss.SSS][+HH:mm...原创 2021-07-02 11:06:48 · 5510 阅读 · 1 评论 -
Mybatis - tk.mybatis deleteByPrimaryKey无法正确识别主键
contentVisitSourceMapper.deleteByPrimaryKey(v.getId());JDBC Connection [com.mysql.cj.jdbc.ConnectionImpl@3cd9a44f] will not be managed by Spring==> Preparing: DELETE FROM xxx WHERE id = ? AND cid = ? AND xxx_id = ? AND xxx_num = ? AND created = ? .原创 2021-06-23 13:54:11 · 1444 阅读 · 0 评论 -
Java - 带参的异常处理模块try(xxx){...}
带资源的try语句(try-with-resource)的最简形式为: try(Resource res = xxx)//可指定多个资源 { work with res } try块退出时,会自动调用res.close()方法,关闭资源。原创 2021-06-18 10:40:14 · 390 阅读 · 0 评论 -
Mybatis - NoSuchMethodError: net.sf.jsqlparser.statement.select.SetOperationList.getSelects()Ljava/
Handler processing failed; nested exception is java.lang.NoSuchMethodError: net.sf.jsqlparser.statement.select.SetOperationList.getSelects()Ljava/util/List;java.lang.NoSuchMethodError: net.sf.jsqlparser.statement.select.SetOperationList.getSelects()Ljava/原创 2021-05-28 11:06:52 · 2187 阅读 · 0 评论 -
TaskRejectedException: Executor [java.util.concurrent.ThreadPoolExecutor@75bc9f01[Running, pool size
TaskRejectedException: Executor [java.util.concurrent.ThreadPoolExecutor@75bc9f01[Running, pool size原创 2021-02-26 16:12:40 · 2852 阅读 · 0 评论 -
Java - Lambda Stream ForEach 循环中不能中止循环并退出??为何???
我们在工作中一定经常使用for循环遍历,若是想在某一个条件退出,直接ruturn即可;private static void arrayListForEach(){ ArrayList<String> arrayList = new ArrayList<>(); arrayList.add("A"); arrayList.add("B"); arrayList.add("C"); array...原创 2020-12-26 16:11:44 · 6846 阅读 · 3 评论 -
Java - 配置文件读取,并制作SDK工具插件,供项目其他组件引入使用
本来想做一个类似数据库连接池一样的插件工具,可以在任意的项目工程中启动的时候,直接加载配置的连接信息,而达到初始化连接池的目的;方案一:使用java自带的文件读取工具类,配置读取方法,先读取配置文件,再初始化连接池(以redis连接池为例)//私有构造方法private JedisPoolUtil(){}//保证内存中只有一个连接池对象public static JedisPool pool = null;//静态代码块static{ //读取资源文件 Reso...原创 2020-06-30 22:29:33 · 926 阅读 · 0 评论 -
Java - 设计模式之单例模式 ( Singleton Pattern ) 及 六种实现方式
单例模式(Singleton Pattern)提供了一种创建对象的最佳方式单例模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建,这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象单例模式设计要点 单例类只能有一个实例 单例类必须自己创建自己的唯一实例 单例类必须给所有其他对象提供这一实例 单例模式属于创建型模...转载 2020-01-10 13:29:17 · 282 阅读 · 0 评论 -
java-字符串截取及转换为byte数组
字符串截取:String data = "380000000000000000000000000000000000000000031"; StringBuffer s1 = new StringBuffer(data); int index; for (index = 2; index < s1.length(); index += 3) { s1.insert(index...原创 2018-04-27 13:53:21 · 1797 阅读 · 0 评论 -
java-16进制转字符串或者ASCII码
例如:564E3A312D302E302E30 可转换为:VN:1-0.0.0/** * The conversion of 16 to ASCII * @other > Integer.toHexString(int) -> 10 to 16 * @param hex * @return */ public static String convertHexTo...原创 2018-04-27 14:04:28 · 6277 阅读 · 1 评论 -
java.lang.NoSuchMethodError: org.springframework.data.repository.config.AnnotationRepositoryConfigur
ERROR org.springframework.boot.SpringApplication - Application startup failedjava.lang.NoSuchMethodError: org.springframework.data.repository.config.AnnotationRepositoryConfigurationSource.<init>...原创 2018-05-18 15:54:31 · 14055 阅读 · 0 评论 -
No qualifying bean of type 'org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder' available:
DEBUG o.s.b.diagnostics.LoggingFailureAnalysisReporter - Application failed to start due to an exceptionorg.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'org...原创 2018-05-18 16:10:34 · 7219 阅读 · 0 评论 -
No enclosing instance of type Decoder is accessible. Must qualify the allocation with an enclosing
今天编写数据解码方法的时候,写了一个解码模块,自己创建了一个java对象,这个java对象,(我是放在解码模块的类内部的),用来存json数据,运行的时候,eclipse报了一个这个编译错误: No enclosing instance of type Decoder is accessible. Must qualify the allocation with an enclosi...原创 2018-06-13 13:01:24 · 628 阅读 · 0 评论 -
Cron expression must consist of 6 fields (found 7 in "0 * * * * ? *")
在SpringBoot上写一个定时器,要求,一个小时执行一次,BUT。。。Initialization of bean failed; nested exception is java.lang.IllegalStateException: Encountered invalid @Scheduled method 'Timer': Cron expression must consist...原创 2018-06-25 16:16:49 · 10510 阅读 · 3 评论 -
java-ConcurrentLinkedQueue 简单使用
import java.util.concurrent.ConcurrentLinkedQueue;public class CacheTest { /** * * offer(E e) 将指定元素插入此队列的尾部。 * poll() 获取并移除此队列的头,如果此队列为空,则返回 null。 * peek() 获取但不移除此队列的头;如果此队列为空,原创 2018-05-03 11:01:35 · 620 阅读 · 0 评论 -
Linux weblogic日志查看tail -f nohup.out
之前用Tomcat时,查看后台日志,都是使用tail -f catalina.out命令来查看的,不要太顺手; 今天登陆到公司另外一个Team 的服务器上,发现装的是weblogic,手痒想看看weblogic怎么看日志,找了老半天,才发现有一个nohup.out文件,还有一些.log文件; so,查看后台日志(像eclipse的后台一样,动态显示): tail -f nohup.out 想看历原创 2018-01-19 17:12:23 · 13540 阅读 · 0 评论 -
Eclipse错误:Problems opening an editor Reason: Project Name does not exist解决办法
我们来看Problems opening an editor Reason: [Project Name] does not exist问题的一个解决办法总结。问题简单描述:在eclipse里用F3想进入某个类的某方法时,提示以下错误:Problems opening an editor Reason: [项目名] does not exist经过百度上谷歌一番,看到sta转载 2018-01-24 13:40:07 · 3065 阅读 · 0 评论 -
catalina.out 和 catalina.log 的区别和用途
catalina.outcatalina.out其实是tomcat的标准输出(stdout)和标准出错(stderr),这是在tomcat的启动脚本里指定的,如果没有修改的话stdout和stderr会重定向到这里。所以我们在应用里使用System.out打印的东西都会到这里来。另外,如果我们在应用里使用其他的日志框架,配置了向Console输出的,则也会在这里出现。比如以logback为例,原创 2018-01-23 14:54:40 · 43837 阅读 · 4 评论 -
java基础—Java里面的Threadlocal
ThreadLocal是一个关于创建线程局部变量的类。通常情况下,我们创建的变量是可以被任何一个线程访问并修改的。而使用ThreadLocal创建的变量只能被当前线程访问,其他线程则无法访问和修改。ThreadLocal从本质上讲,是提供了一个“线程级”的变量作用域,它是一种线程封闭(每个线程独享变量)技术,更直白点讲,ThreadLocal可以理解为将对象的作用范围限制在一个线程上下文中原创 2017-12-08 09:59:32 · 353 阅读 · 0 评论 -
java基础—线程安全的定义
定义线程安全,我比较认可的是在《Java concurrency in practice》一书中的定义:一个不论运行时(Runtime)如何调度线程都不需要调用方提供额外的同步和协调机制还能正确地运行的类是线程安全的多线程的场景很多很复杂,难以穷尽地说那些条件下是或者不是线程安全的,但是有一些常用的肯定线程安全的场景:1.无状态的一定是线程安全的。这个很好理解,因为所谓线程不安全也就是原创 2017-12-08 08:48:31 · 991 阅读 · 0 评论 -
java基础—如何创建线程?如何保证线程安全?
在java中如果要创建线程的话,一般有两种方式:1)继承Thread类;2)实现Runnable接口。在java中如何保证线程安全?保证线程安全,无外乎保持线程同步的方式,如:@synchronized、NSLock、dispatch_semaphore、NSCondition、pthread_mutex、OSSpinLock。然而:OSSpinLock和dis原创 2017-12-07 10:07:07 · 2473 阅读 · 0 评论 -
java基础—常用的GC策略,什么时候会触发YGC,什么时候触发FGC?
一、内存回收策略和常见概念常见内存回收策略可以从以下几个维度来理解:1 串行&并行 串行:单线程执行内存回收工作。十分简单,无需考虑同步等问题,但耗时较长,不适合多cpu。并行:多线程并发进行回收工作。适合多CPU,效率高。2 并发& stop the world stop the world:jvm里的应用线程会挂起,只有垃圾回收线程在工作进行垃圾清理工作。简单,原创 2017-12-07 09:48:11 · 10292 阅读 · 0 评论 -
java-cron表达式,写入application.yml配置文件中
配置文件application.yml示例:schedules: 3600000//orschedules: 0/15 * * * * ?代码示例: @Scheduled(fixedDelayString="${schedules}") //schedules: 3600000//or @Scheduled(cron="${schedules}") //schedul...原创 2018-07-04 17:12:57 · 11029 阅读 · 2 评论 -
java-生成唯一的序列id,UUID.randomUUID().toString();
public class TestSeq { private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmssSSS"); public static void main(String[] args) throws UnsupportedEncodingException, Par...原创 2018-07-27 15:14:31 · 7220 阅读 · 0 评论 -
java—Cron表达式范例
1.cronExpression配置说明字段 允许值 允许的特殊字符 秒 0-59 , - * / 分 0-59 , - * / 小时 0-23 , - * / 日期 1-31 , - * ? / L W C 月份 1-12 或者 JAN-DEC , - * / 星期 1-7 或者 SUN-SAT , - * ? / L C # 年(可选) 留空, 1970-2099 , - *...转载 2018-09-25 13:54:23 · 3934 阅读 · 0 评论 -
Java - sun.reflect.GeneratedMethodAccessor100.invoke(Unknown Source)
项目在晚上升级上线的时候,排查日志发现时不时会有一个异常报出来,空指针我倒是很熟悉,但是下面的一大段可是没见过的;2019-10-10 23:30:26.577 [http-nio-11007-exec-413] DEBUG com.xxx.xxx.adapter.uplink.Controller - RequestController >>> updateLas...原创 2019-10-11 10:31:14 · 6283 阅读 · 2 评论 -
Java - Caused by: org.springframework.data.mapping.PropertyReferenceException: No property
项目中的代码需要增加一个更新时间的SQL,直接使用spring自带的jpa来做吧,balaba写了个update的操作,更新一下操作的时间戳,打包上传服务器,信心满满的./start.sh,打开nohup.out,忽然启动失败,报错了。。。2019-09-30 12:54:54.648 [main] WARN o.s.b.c.e.AnnotationConfi...原创 2019-09-30 15:11:17 · 1570 阅读 · 0 评论 -
Java - 排查处理过jvm内存泄漏的问题吗?MAT了解一下
前面说到我们在做压力测试的时候,竟然把整个k8s集群的服务搞挂了,其实问题有两个,第一是因为没有给服务所在的pod设置最大的资源限制,第二是因为服务本是有内存泄漏的问题的;开始我以为的是将pod的资源限制配置好,就行了,测试了一把后,发现每10个小时,服务的memory就已经到达设置的最大限制2G内存,而自动重启restart了,虽然从业务上来讲,只会影响这个p...原创 2019-09-09 13:38:34 · 595 阅读 · 0 评论 -
Java - 【强制】SimpleDateFormat 是线程不安全的类
5. 【强制】SimpleDateFormat 是线程不安全的类,一般不要定义为static变量,如果定义为static,必须加锁,或者使用DateUtils工具类。 正例:注意线程安全,使用DateUtils。亦推荐如下处理:private static final ThreadLocal<DateFormat> df = new ThreadLocal<DateFormat...原创 2019-03-29 13:35:02 · 1515 阅读 · 0 评论 -
Java - InetAddress.getLocalHost().getHostAddress() 踩过的坑!谨记 谨记
话不多说,先看代码:... ...LOGGER.DEBUG("-------- before srcIp to LOG--------");InetAddress.getLocalHost().getHostAddress();//获取本机IPLOGGER.DEBUG("-------- after srcIp to LOG--------");... ...本来平时一般也就是...原创 2019-01-30 15:16:29 · 4707 阅读 · 0 评论 -
Java - UDPServer (Netty 改写Server & Client)
controller:@EnableAsync@SpringBootApplication@EnableSchedulingpublic class UdpServerApplication implements CommandLineRunner {@Autowiredprivate ChineseProverbServer servers;public static v...原创 2019-01-29 16:02:53 · 1761 阅读 · 2 评论 -
Java - Destination unreachable (Port unreachable) UDPServer 响应response,无法发送出去
我们直接看这个抓包文件截图,xxx.6(src) -> xxx.8(nginx) -> xxx.194(udpserver) -> xxx.8(nginx) ... ... over xxx.6(src):是我本地模拟器的IP; xxx.8(nginx):是项目网关服务器,装有NGINX,负责数据转发; xx...原创 2019-01-29 15:53:42 · 4403 阅读 · 1 评论 -
java - 数据转换出现^@^@^@,处理方案
今天在测试一条数据的时候,需要把一个16进制的数据,转换为字符串,按照以前的经验,直接一个函数就可以转换掉,像这样:/** * The conversion of 16 to ASCII * * @param hex * @return */ public static String convertHexToString(String hex) { St...原创 2019-01-11 15:16:10 · 2393 阅读 · 0 评论 -
java—实用小技巧——解析命令行参数
我们在进行项目中的调试的时候,特别是对于Server的调试,写出来的Client总是不方便改一些参数,要么就是修改到配置文件里,要么就是重新打包,不甚麻烦,这时候一个可以在命令行指定参数的功能就可以很好的解决了,直接上代码:public class Config { @SuppressWarnings("unused") private final static Logge...原创 2018-12-29 11:02:28 · 1514 阅读 · 0 评论 -
Java - JDK8新特性,代码demo示例;
哈哈哈哈大魔都下雪啦,敲段代码暖和暖和,嘿嘿public class jdk8Test { @Test public void LambdaNew() { //before jdk8 List<String> names = Arrays.asList("Tom", "Sun", "Lily", "Amanda"); for (String name : name...原创 2018-12-08 14:19:16 · 662 阅读 · 0 评论 -
java - future
FutureTask可用于异步获取执行结果或取消执行任务的场景。通过get()方法可以异步获取执行结果,不论FutureTask调用多少次run()或者call()方法,它都能确保只执行一次Runable或Callable任务。因此,FutureTask非常适合用于耗时高并发的计算,另外可以通过cancel()方法取消执行任务。import java.util.ArrayList;import...转载 2018-11-27 14:47:38 · 157 阅读 · 0 评论 -
JAVA - Unix time stamp to time
Unix 时间戳转换:/* * Unix time stamp to time */ public static String TimeStamp2Date(String timestampString){ Long timestamp = Long.parseLong(timestampString)*1000; String date...原创 2018-11-09 17:05:59 · 210 阅读 · 0 评论