
java
smileTimLi
一只站在树上的鸟儿,从来不会害怕树枝断裂,因为它相信的不是树枝,而是它自己的翅膀
展开
-
商品类目树状图 -- 通过递归生成
1、数据库相关结构CREATE TABLE `pms_category` ( `cat_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '分类id', `name` char(50) DEFAULT NULL COMMENT '分类名称', `parent_cid` bigint(20) DEFAULT NULL COMMENT '父分类id', `cat_level` int(11) DEFAULT NULL COMMENT '层级',...原创 2020-10-28 17:09:15 · 1369 阅读 · 0 评论 -
java实现对象的克隆
不通过构造函数也能创建对象吗?答:Java创建对象的几种方式(重要):1)、用new语句创建对象,这是最常见的创建对象的方法。2)、运用反射手段,调用java.lang.Class或者java.lang.reflect.Constructor类的newInstance()实例方法。3)、调用对象的clone()方法。4)、运用反序列化手段,调用java.io.ObjectInputStream对象的 readObject()方法。(1)和(2)都会明确的显式的调用构造函数 ;(3)是在.原创 2020-07-07 18:01:03 · 349 阅读 · 0 评论 -
项目实践:Spring Boot 三招组合拳,手把手教你打出优雅的后端接口
一个后端接口大致分为四个部分组成:接口地址(url)、接口请求方式(get、post等)、请求数据(request)、响应数据(response)。如何构建这几个部分每个公司要求都不同,没有什么“一定是最好的”标准,但一个优秀的后端接口和一个糟糕的后端接口对比起来差异还是蛮大的,其中最重要的关键点就是看是否规范!本文就一步一步演示如何构建起一个优秀的后端接口体系,体系构建好了自然就有了规范,同时再构建新的后端接口也会十分轻松。在文章末尾贴上了项目演示的github地址,clone下来即可..转载 2020-05-15 20:13:57 · 264 阅读 · 0 评论 -
post接口传参 传集合实体
1、通过参数拼接的方式127.0.0.1:8082/app/exam/addPaperRecord?paperRecord.epId=95&paperRecord.replyTime=180&paperRecord.cusId=861&paperRecord.type=1&paperRecord.testTime=15&optype=0&paperRecord.subjectId=1&paperRecord.id=333&record[0原创 2020-05-14 10:26:33 · 4420 阅读 · 0 评论 -
【有效的括号】个人题解和领悟
给定一个只包括 '(',')','{','}','[',']'的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例2:输入: "()[]{}"输出: true示例3:输入: "(]"输出: false示例4:...原创 2020-03-31 23:20:56 · 138 阅读 · 0 评论 -
栈和队列
栈是限定仅在表尾进行插入和删除操作的线性表队列是只允许在一端进行插入操作、而在另一端进行删除操作的线性表如果使用数组实现,下表从0开始队列的顺序存储:出队复杂度高O(n), 容易假溢出中缀运算符转为后缀表达式后缀表达式通过栈实现,数字直接显示,符号入栈...原创 2020-03-15 13:45:14 · 146 阅读 · 0 评论 -
LinkedList 源码阅读
第一部分:单向链表public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, Cloneable, java.io.Serializable1、使用了transient修改size,链表中的两个指针...原创 2020-03-14 22:08:22 · 111 阅读 · 0 评论 -
通过ArrayList对modCount的操作分析fail-fast 机制
AbstractList类中有一个属性protected transient int modCount = 0;api中对它的描述是: 此列表已被结构修改的次数。 结构修改是改变列表大小的那些修改,或以其他方式扰乱它,使得正在进行的迭代可能产生不正确的结果。 该字段由迭代器和列表迭代器实现使用,由iterator和listIterator方法返回。 如果该字段的值意外更改,迭代...转载 2020-03-14 17:31:43 · 322 阅读 · 0 评论 -
ArrayList 源码阅读
class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable因为数组比较重要,源码也好阅读,就找几个常用的记录一下,用到的或者自己理解能力上来后,慢慢的在深度阅读源码1、数组默...原创 2020-03-14 17:07:19 · 150 阅读 · 0 评论 -
transient 变量修饰符
Java序列化技术正是将对象转变成一串由二进制字节组成的数组,可以通过将二进制数据保存到磁盘或者传输网络,磁盘或者网络接收者可以在对象的属类的模板上来反序列化类的对象,达到对象持久化的目的。transient 关键字总结1)transient修饰的变量不能被序列化;2)transient只作用于实现 Serializable 接口;3)transient只能用来修饰普通成员变量...转载 2020-03-14 16:22:20 · 2536 阅读 · 1 评论 -
FastJson中JSONString与各个对象的的转换关系及API示例
前言JSON作为一种轻量级的数据交换格式,在我们日常的开发中使用十分广泛,就Java后端的开发工作中,JSON字符串与Java对象之间相互转换是常常遇到的操作。虽然平时用到的挺多的,但是因为用于JSON处理的包有很多种,每种工具集的功能和使用方式也都不同,很容易在使用时造成混乱。本文就结合FastJson部分源码,简单整理了下常用的API及其使用示例本文FastJson版本:1...转载 2019-12-04 14:32:16 · 490 阅读 · 1 评论 -
常用的正则表达式
一、校验数字的表达式1 数字:^[0-9]*$2 n位的数字:^\d{n}$3 至少n位的数字:^\d{n,}$4 m-n位的数字:^\d{m,n}$5 零和非零开头的数字:^(0|[1-9][0-9]*)$6 非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$7 带1-2位小数的正数或负数:^(\-)?\d+(\.\d{1...原创 2019-12-01 21:19:31 · 133 阅读 · 0 评论 -
swagger注解的使用
Swagger简介由于架构革新,进入了前后端分离,服务端只需提供RESTful API的时代。 而构建RESTful API会考虑到多终端的问题,这样就需要面对多个开发人员甚至多个开发团队。 为了减少与其他团队对接的沟通成本,我们通常会写好对应的API接口文档。 从最早开始的word文档,到后续的showdoc,都能减少很多沟通成本,但随之带来的问题也比较麻烦。在开发期间接口会因业务...原创 2019-11-04 16:54:52 · 676 阅读 · 0 评论 -
lombok注解相关说明
Lombok简介Lombok是一种Java™实用工具,可用来帮助开发人员消除 Java 的冗长,尤其是对于简单的 Java 对象(POJO)。它通过注解实现这一目的。插件安装由于Lombok采取注解形式,在编译后,自动生成相应的方法,所以需要下载插件来支持它。 以 idea 为例:查找插件lombok plugin安装即可。引入依赖<dependency> ...原创 2019-11-04 16:41:07 · 295 阅读 · 0 评论 -
windows安装thrift
1、下载thrift2、配置环境变量3、cmd进行查看thrift -version原创 2019-04-27 21:27:30 · 174 阅读 · 0 评论 -
CookieUtil工具类get、set方法
/** cookie 工具类 * @Author:Lisongfeng * @Description * @Date: create by 17:42 2018/2/25 * @Modified by */public class CookieUtil { public static void set(HttpServletResponse response, String...原创 2019-04-17 00:24:59 · 1574 阅读 · 0 评论 -
Idea中Jvm参数的设置 VM options
分布式项目启动项目有点多,导致系统内存不够用,需要调整一下idea中每个模块的内存的大小-Xms64m -Xmx128m -Dfile.encoding=UTF-8一下的参数就不要添加了,java8不支持了-XX:PermSize=64m -XX:MaxPermSize=128m...原创 2019-04-13 23:00:48 · 29392 阅读 · 0 评论 -
微服务下两种来源读取.json文件并解析
第一种方式:读取本地的json文件Resource resource;resource = new ClassPathResource("static" + File.separator + "script" + File.separator + "pub"+ File.separator + "pub_close_browser_no_flow.json");InputStream...原创 2019-04-09 17:06:56 · 717 阅读 · 0 评论 -
linux 查看java的安装路径
查看linux环境中jdk的位置ls -lrt /usr/bin/javals -lrt /etc/alternatives/javavi /etc/profilesource /etc/profileecho #JAVA_HOMEwhereis javaecho $JAVA_HOME在etc/profile文件末尾添加export JAVA_HOME=/usr/j...原创 2019-04-02 20:56:08 · 2754 阅读 · 0 评论 -
取消https的ssl验证
//取消https的ssl验证DisableSSLCertificateCheckUtil.disableChecks();import org.slf4j.Logger;import org.slf4j.LoggerFactory;import javax.net.ssl.*;import java.io.IOException;import java.net.URL;...原创 2019-04-08 15:18:50 · 9121 阅读 · 0 评论 -
反射方法的简单使用
Class<?> cleMatchBizClass = CleMatchBiz.class;Method method = cleMatchBizClass.getDeclaredMethod("check",ReclaimMoneyLog.class,BigDecimal.class);Object obj = cleMatchBizClass.newInstance();...原创 2019-03-31 21:07:44 · 117 阅读 · 0 评论 -
阿里的JSON.parseObject 和 JSON.toJSONString 实例
json字符串转化为对象String jsonString = "{name:'tim',taskId:'12'}";Task task = JSON.parseObject(jsonString, Task.class);对象转化为json字符串String jsonStr = JSON.toJSONString(Task); ...原创 2019-03-22 11:31:31 · 3948 阅读 · 0 评论 -
lombok的@Accessors注解的三个属性
prefix与定义属性前缀相同时且接下来的字符大写才生效,可以看源码注释或自行尝试;fluent是决定生成的get/set方法要不要set/get前缀chain决定set方法是void类型还是返回this,进行链式set方法Accessors翻译是存取器。通过该注解可以控制getter和setter方法的形式。@Accessors(fluent = true)使用fluent属性,...原创 2019-06-08 21:27:52 · 3136 阅读 · 0 评论 -
idea测试类读取resources目录的文件
idea测试类读取resources目录的文件 String fileName = "大帐银行间.xlsx"; InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("file/大帐银行间.xlsx"); MultipartFile multipartFile = ne...原创 2019-03-19 16:27:10 · 3025 阅读 · 1 评论 -
java环境变量配置
path: %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;JAVA_HOME:jdk安装位置CLASSPATH: .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar原创 2019-04-24 22:15:23 · 113 阅读 · 0 评论 -
Idea utimate 2019 注册码
N757JE0KCT-eyJsaWNlbnNlSWQiOiJONzU3SkUwS0NUIiwibGljZW5zZWVOYW1lIjoid3UgYW5qdW4iLCJhc3NpZ25lZU5hbWUiOiIiLCJhc3NpZ25lZUVtYWlsIjoiIiwibGljZW5zZVJlc3RyaWN0aW9uIjoiRm9yIGVkdWNhdGlvbmFsIHVzZSBvbmx5IiwiY2hl...转载 2019-04-24 22:34:27 · 707 阅读 · 0 评论 -
springboot + redis集群和单机切换(密码)自定义配置文件
项目中因为不是使用springRedis的配置,而是采用自定义的配置redis.pool,而且需要进行单机和集群的切换,中间出现了一些jar包冲突的问题,导致部分功能不能使用,还是记录一下,这个找了好久1、配置文件如下,可能和现行的配置不同,使用model进行区分,当然代码有判断redis: pool: maxTotal: 120 # 最大连接数 maxIdle: 3...原创 2019-05-08 14:16:20 · 3555 阅读 · 2 评论 -
Java高编译低运行错误 (ConcurrentHashMap.keySet)
这个concurrentHashMap困惑已久,一直以为这个方法是通用的,没有理会,但是月底的考核没有定时生成,服务器日志显示如下 nested exception is java.lang.NoSuchMethodError: java.util.concurrent.ConcurrentHashMap.keySet()Ljava/util/concurrent/ConcurrentH...原创 2018-10-08 16:33:11 · 771 阅读 · 0 评论 -
解决https证书验证不通过的问题
前言通过重写TrustManager的checkClientTrusted(检查客户端证书信任)和 checkServerTrusted(检查服务端证书验证)。以及HostnameVerifier的verify(校验)方法即可取消对证书的所有验证。public class DisableSslCertificateCheckUtil { private static f...原创 2019-09-17 14:18:59 · 6407 阅读 · 0 评论 -
项目持续集成Error:java: 无法访问javax.interceptor.InterceptorBinding
1、上网查询说是@Transactional注解中的@InterceptorBinding包找不到2、引入interceptor-api依赖<!-- https://mvnrepository.com/artifact/javax.interceptor/javax.interceptor-api --><dependency> <gro...原创 2019-08-27 14:40:11 · 1878 阅读 · 0 评论 -
idea通过git提交取消.idea.iml等的显示
1、idea工具的setting,找到对应的位置2、然后填写如下内容*.hprof;*.idea;*.iml;*.log;*.pyc;*.pyo;*.rbc;*.yarb;*~;.DS_Store;.git;.hg;.svn;CVS;__pycache__;_svn;vssver.scc;vssver2.scc;3、再次通过git提交就不会出现iml等的文件了...原创 2019-08-18 16:30:31 · 6218 阅读 · 0 评论 -
List、Map、set的加载因子,默认初始容量和扩容增量
List、Map、set的加载因子,默认初始容量和扩容增量(转载自https://www.cnblogs.com/lizhen-home/p/7352125.html)首先,这三个概念说下。初始大小,就是创建时可容纳的默认元素个数;加载因子,表示某个阀值,用0~1之间的小数来表示,当已有元素占比达到这个阀值后,底层将进行扩容操作;扩容方式,即指定每次扩容后的大小的规则,比如翻倍等。当底层实...转载 2019-07-11 16:15:43 · 175 阅读 · 1 评论 -
Apsara Clouder基础技能认证:阿里巴巴编码规范相关问题总结
作为一名合格的开发,基础还是很重要滴,不知道会不会被封杀,哎,为了小哥哥小姐姐,总结一波,当然考试之前阿里编码规范我可是看了三遍左右,把我自己总结的黄金考题看了又看,第一次考了74,第二次,担心不过,又看了若干遍,可是第二次考发现还是一下高频的考点和考题(第二次86),有的呵呵哒,too same to just now,预祝看到的小伙伴,顺利通过考试第一部分 常见考题--------...原创 2019-05-10 23:31:09 · 20614 阅读 · 7 评论 -
Springboot集成activemq(发布订阅模式topic)
Springboot集成activemq(发布订阅模式topic)一、docker安装activemq1、查询镜像docker search activemq2、拉取镜像docker pull webcenter/activemq3、查询是否拉取成功docker images4、运行activemq镜像docker run -d --name my...原创 2019-05-15 18:09:54 · 2855 阅读 · 2 评论 -
java ObjectUtils工具类
package com.ms.util;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.IOException;import java.io.ObjectInputStream;import java.io.Obje...原创 2019-05-07 10:08:21 · 4284 阅读 · 0 评论 -
redis集群密码设置
1、密码设置(推荐)方式一:集群未创建,修改所有Redis集群中的redis.conf文件加入:masterauth passwordrequirepass password说明:这种方式需要重新启动各节点方式二:集群已经创建,进入各个实例进行设置:./redis-cli -h 192.168.98.105 -c -p 7000 config set ...原创 2019-04-25 15:26:42 · 1089 阅读 · 0 评论 -
@Component 和 @Bean 的区别
springBean分为两个部分,一个是注册Bean,一个装配Bean。完成这两个动作有三种方式: 一种是使用自动配置的方式 一种是使用JavaConfig的方式 一种就是使用XML配置的方式@Compent 作用就相当于 XML配置@Componentpublic class Student { private String name ...原创 2019-03-03 16:53:15 · 227 阅读 · 0 评论 -
java 访问修饰符的作用范围
java访问修饰符的作用范围 访问修饰符\作用范围 本类 同包类 子类 其他 public √ √ √ √ protected √ √ √ × 缺省(default) √ √ × × private √ × × × ...原创 2019-03-03 08:40:07 · 1740 阅读 · 0 评论 -
java 三年需要掌握的技术总结
一个牛逼的面试技巧githubhttps://github.com/Snailclimb/JavaGuide2019面试总结大全https://github.com/0voice/interview_internal_reference1.联合索引生效条件、失效条件:https://blog.youkuaiyun.com/qq_35275233/article/details/878...原创 2019-02-23 00:33:07 · 13671 阅读 · 8 评论 -
excel导出,导出导出证件图片(png/jpeg)
List<File> fileList = FileExportImportUtil.bufferImage(pictureList, picDir, nameList);下面为完成代码excel 导出学员证件照并以手机号和姓名 @RequestMapping("/userGroup/export/{groupId}") public void userGr...原创 2018-12-27 15:03:37 · 2157 阅读 · 0 评论