
Java
文章平均质量分 79
Java
tony4geek
Believe in Love
展开
-
MANIFEST.MF是个什么?
MANIFEST.MF是个什么?写这篇文件主要记录JRA文件里面到底是什么?然后MANIFEST.MF又是什么?Springboot 如何只有Main方法就可以运行的?Springboot项目打包Java开发中JRA包中经常会看到这个文件中。Springboot打包也会生成对应的JRA,下图我们用maven命令直接编译打包执行mvn clean package -DskipTests=true -P test,生成的文件如下这个JAR我们分两部分来讲解请看下图BOOT-INF 注意了这原创 2020-05-29 17:55:44 · 1890 阅读 · 0 评论 -
超级简单Springboot 发送邮件
发送邮件需求首先你的项目是基于Springboot的,且能够运行。下面开始pom <dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4.7</version> </dependency>不加入javax.mail 的依赖会报 javax.mail.in原创 2020-05-28 13:44:36 · 734 阅读 · 0 评论 -
java.io.FileNotFoundException Is a directory transferTo
本次的项目环境为 Running with Spring Boot v1.5.10.RELEASE, Spring v4.3.14.RELEASE, 服务器环境为CentOS7.0.transferTo我们在上传文件的时候会用到transferTo 这个方法,transferTo 是 package org.springframework.web.multipart;帮我们已经封装好,...原创 2020-03-20 17:17:34 · 1624 阅读 · 0 评论 -
com.fasterxml.jackson.core.JsonParseException
com.fasterxml.jackson.core.JsonParseException今天测试遇到以上的错误信息。org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Unexpected character ('"' (code 34)): was expectin...原创 2020-03-20 15:07:16 · 14234 阅读 · 0 评论 -
JsonFormat 日期少了8个小时?还我
JsonFormat 后日期少了8个小时什么鬼?前言今天测试的时候发现时间对不上,比数据库里的时间少了8个小时?测试小姐姐一顿狂轰乱炸,一点都不温柔。什么鬼?哪里出了问题?数据库显示的是下面????画面显示如下我的数据里明明显示的是对的时间,怎么到画面显示你就少了8个小时?快,还我8个小时。扯远了,赶紧撸代码,找问题。数据库里显示的是2020-03-17 11:40:27然...原创 2020-03-17 16:56:24 · 646 阅读 · 1 评论 -
SubList到底怎么转化为ArrayList?
SubList大家好,今天 Tony 给大家讲个SubList转化的坑。这个错误真的会被忽略,大家好好的看看,这个错误我们生产环境还真的遇到过。集合类型相信大家都很熟悉,在 Java 中 ArrayList 使用的场景非常普遍。我们今天主要看的是 ArrayList 中的 subList 方法。首先我们来看看源码Returns a view of the portion of this...原创 2020-02-11 19:07:54 · 2363 阅读 · 3 评论 -
ibatis中 CDATA 错误使用
ibatis报错## Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax;check the manual that corresponds to your MySQL server ver...原创 2020-02-11 16:43:05 · 699 阅读 · 0 评论 -
唬人的Java泛型并不难
泛型public interface Foo<E> {}public interface Bar<T> {}public interface Zar<?> {}上面的代码有什么区别?泛型初探1、为何引入泛型?Java 泛型也是一种语法糖,使用泛型可以在代码编译阶段完成类型的转换,避免代码在运行时强制转换而出现ClassCastExcepti...原创 2020-01-16 13:35:41 · 544 阅读 · 0 评论 -
你知道Java中的CopyOnWriteArrayList吗?
CopyOnWriteCopyOnWrite是什么?CopyOnWriteList源码分享?CopyOnWriteList使用场景?CopyOnWriteList有什么优缺点?如果你是求职者,你想想看怎么回答上面的问题?缘由前段时间面试好多个人,问是否用过CopyOnWriteList,发现好多人都没有用过,感觉挺惊讶的。CopyOnWrite看字面意思大概就可以明白了,cop...原创 2020-01-14 15:54:48 · 696 阅读 · 0 评论 -
一定要你明白Java中的volatile
今天Tony来和大家聊聊Java中关键字volatile。字节码首先volatile int a = 3;和int a = 3;,加不加volatile关键字,最终生成的字节码都一样的。有兴趣的同学可以试试看看字节码是否一样。英文解释Adding volatile to the field does not change Java bytecode that reads or wri...原创 2020-01-07 11:54:51 · 5476 阅读 · 0 评论 -
Java中YYYY-MM-DD要注意了
写这篇博文是记录下跨年的bug。去年隔壁组的小伙伴就是计算两个日期之间间隔的天数,因为跨年的原因计算有误。当时测试组的小姐姐也没有模拟出来这种场景,导致上生产环境直接影响线上的数据。今天逛技术论论坛正好遇到Java日期的操作bug。1 yyyy 和 YYYY别看字,看代码 @Test public void testWeekBasedYear() { Calen...原创 2020-01-05 19:19:21 · 5854 阅读 · 0 评论 -
【程序员】你知道 a小于b 和 a 减 b 小于 0 的区别吗?
2020年1月1号全面小康社会已经来了,2020年了第一批90后也已经30岁了。在此元旦,新的一年托尼祝大家代码永无bug,新的一年升职且加薪。好了,言归正传,其实我们在编码的过程中,有的时候真是不是特意写bug的,我们也是想好好写代码的。只不过有的时候不熟悉源码,不小心就踩入坑中,而且摔个底朝天,程序员真的好难????。序幕上代码if (a < b)和if (a - b < 0)?...原创 2020-01-02 10:01:37 · 1789 阅读 · 0 评论 -
JVM入节码指令
对应指令码 助记符 说明0x00 nop 什么都不做0x01 aconst_null 将null推送至栈顶0x02 iconst_m1 将int型-1推送至栈顶0x03 iconst_0 将int型0推送至栈顶0x04 iconst_1 将int型1推送至栈顶0x05 iconst_2 将int型2推送至栈顶0x06 iconst_3 将int型3推送至栈...原创 2020-01-01 16:02:38 · 338 阅读 · 0 评论 -
mybatis 批量插入返回多个主键,低版本有bug
Mybatis批量插入返回多个主键论坛有人有需求批量插入的时候返回多个对应的主键热心的托尼老师就帮忙写了个例子测试。测试了两个Mybatis版本,低版本的不支持,大家注意了了。<insert id="insertBatchInterest" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="id"&g...原创 2019-12-31 16:47:12 · 6705 阅读 · 11 评论 -
年会现场抽奖代码到底该怎么写?过来人告诉你答案
前沿说件严肃到事情,2019真到快要结束了。各家公司一定在紧锣密鼓到准备年会当中了吧。年会肯定离不开抽奖吧?现场几百上千人抽奖可千万别出bug。如果真出bug老板得要杀你祭天了。现场好多人看着呢。抽奖代码/*** 抽奖** @author 托尼老师* @create 2019-12-27 11:11**/public class LotteryTest {/** * 抽...原创 2019-12-27 15:32:00 · 1886 阅读 · 0 评论 -
Spring拦截器
Spring的拦截器配置文件<mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/**" /> <!-- 不需要拦截的路径--> <mvc:exclude-mapping path="/login"/> ...原创 2019-12-26 17:10:32 · 323 阅读 · 0 评论 -
Java 反编译
今天网上找到个jar,顺便反编译看看它的源码。通过eclipse在线安装插件的方式安装下图的顺序安装eclipse的插件通过下载插件zip文件,自行拷贝方式插件解压缩下来将将features和plugins分别拷贝到eclipse的features和plugins文件夹中site.xml的内容<?xml version="1.0" encoding="UTF-8"?...原创 2019-12-26 17:09:19 · 8889 阅读 · 1 评论 -
你知道for(;;) vs. while(true)那个更快吗?
来来来, for(;???? vs. while(true) 有什么区别?从java的语义上来说,他们是一模一样的。为何怎么说?开始我们先测试for(;????package com.tony.test;import org.junit.Test;/** * 测试循环 * * @author tony * @create 2019-12-26 10:43 **/public class L...原创 2019-12-26 12:58:41 · 2705 阅读 · 0 评论 -
Quartz动态改变任务时间
基于quartz-2.2 的动态任务调度Quartz是一个完全由java编写的开源作业调度框架。调度器Quartz框架的核心是调度器。调度器负责管理Quartz应用运行时环境。调度器不是靠自己做所有的工作,而是依赖框架内一些非常重要的部件。Quartz不仅仅是线程和线程管理。为确保可伸缩性,Quartz采用了基于多线程的架构。启动时,框架初始化一套worker线程,这套线程被调度器用来执行预...原创 2019-12-25 21:57:30 · 8806 阅读 · 0 评论 -
Maven下的SpringMVC MyBatis
从头开始采用Maven管理,Spring、MyBatis、Tomcat。在配置过程中SQL Server的Jar老是加载不了,解决方案参考前一篇博文。eclipse中已经自带了Maven的插件所以不需要再另外下载Maven,使用Maven的好处就是方便jar的管理。配置上groupId artifactId version 等属性省去自己下载jar 的烦恼。Tomcat 也不需要自己去下载,...原创 2019-12-25 21:54:58 · 7267 阅读 · 0 评论 -
针对Eclipse的maven Missing artifact com.microsoft.sqlserver:slqjdbc4:jar:4.0
maven 中添加sqlserver 出错,报错内容maven Missing artifact com.microsoft.sqlserver解决方法这里先下载好jar包 ,然后maven命令执行。将下载的好的jar包放在工程下面在eclipse中执行maven命令install:install-file -Dfile=sqljdbc4.jar -Dpackaging=jar -...原创 2019-12-25 21:45:01 · 2902 阅读 · 0 评论 -
同一电脑登录多个github账号
使用场景在一台电脑上同时向gitlab、github和gitee 分别提交代码。一台电脑可以生成多个sshkey,然后根据sshkey的不同来区分不同的仓库。SSH KEY 方式连接比如我要连接github,本来我的电脑连接的是公司的gitlab的仓库。执行如下命令ssh-keygen -t rsa -C "tonyOffice", 这个tonyOffice是别名你可以随便取,生成好之后去...原创 2019-12-25 17:42:38 · 2668 阅读 · 0 评论 -
基于Java的WebSocket推送
WebSocket的主动推送关于消息推送,现在的解决方案如轮询、长连接或者短连接,当然还有其他的一些技术框架,有的是客户端直接去服务端拿数据。其实推送推送主要讲的是一个推的概念,WebSocket是一种主动推送消息的技术。基于Java的WebSocket这里主要是结合网上的例子实现下。####简单的客户端JavaScript<!DOCTYPE html><html&...原创 2019-12-23 14:02:34 · 3086 阅读 · 0 评论 -
Struts2 中添加 Servlet
Struts2中如何添加Servlet以前Java开发都是Servlet的天下,如今是各种框架横行,遇到一个需要将以前的Servlet加入到现有的Struts2的环境中。Google之后发现Stack Overflow真是个好东西,解决如下,只是简单配置下。I assume you want to know how to use a servlet in conjunction with S...原创 2019-12-23 14:13:58 · 691 阅读 · 0 评论 -
修改Request 中的数据
拦截器修改参数今天一位网友开发中遇到一个需求,他需要在Request中修改传递过来的数据。开始的时候他在拦截器中修改,在拦截器中可以获取到从前台request中传递过来的数据。他写法大致如下:自定义拦截器继承HandlerInterceptorAdapter @Override public boolean preHandle(HttpServletRequest reques...原创 2019-12-23 14:16:06 · 3829 阅读 · 0 评论 -
过滤器和拦截器的区别
过滤器和拦截器Difference:A Servlet Filter is used in the web layer only, you can’t use it outside of aweb context. Interceptors can be used anywhere. That’s the main difference.In my opinion one of the b...原创 2019-12-23 14:17:07 · 295 阅读 · 0 评论 -
约瑟夫环
论坛里别人问的问题在此记录下来已知n个人围坐在一张圆桌周围,从编号为1的人开始报数,数到m的那个人出列。下一个人从1开始报数,数到m的人继续出列,以此类推直至全部人出列。求出列顺序?这个问题基于链表最通俗易懂,当然通过数组或者其他方式也可以实现。Node.javapublic class Node { // 当前的索引 int data; // 下一个节点 Node next;...原创 2019-12-23 14:49:59 · 389 阅读 · 0 评论 -
SynchronousQueue 的联想
SynchronousQueue介绍SynchronousQueue是一种阻塞队列,该队列没有任务的容量。内部实现采用了一种性能更好的无锁算法。代码实现里的Dual Queue,其中每一个put对应一个take方法。简单测试代码public class SynchronousQueueExample { public static void main(String args[]) {...原创 2019-12-23 16:37:09 · 5936 阅读 · 0 评论 -
Java全排列排序
全排列算法,递归的实现public class AllSort { public static void main(String[] args) { String str[] = { "1", "2", "3" }; permutation(str, 0, str.length); } static void swap(String[] str, int start, int ...原创 2019-12-23 16:43:15 · 3044 阅读 · 0 评论