技术分享
文章平均质量分 60
ken-jl
QQ:415979576
展开
-
开发同事 Linux 实用基本操作
Linux 有复杂的体系,有很多的命令,开发同事日常开发时,不像运维同事需要熟练使用很多命令。下面记录下我在工作中,常用的基本命令:一 日志查看对于开发同事来说,日常工作中,Linux 中最常用到莫过于日志查看。1 把日志down到本地,再用notepad++查看。2 使用 vim 命令。对于方式1,相信有很多人都是这么干的,这也是最原创 2018-01-28 13:21:59 · 146 阅读 · 0 评论 -
==, equals, hashcode的理解
一、java对象的比较等号(==):对比对象实例的内存地址(也即对象实例的ID),来判断是否是同一对象实例;又可以说是判断对象实例是否物理相等; equals():对比两个对象实例是否相等。当对象所属的类没有重写根类Object的equals()方法时,equals()判断的是对象实例的ID(内存地址),是否是同一对象实例;该方法就是使用的等号(==)的判断结果,如Object类的源代码所示:Ja...转载 2018-04-15 20:24:51 · 122 阅读 · 0 评论 -
Mysql date, time, timestamp日期时间相关
date: 格式:YYYY-MM-DD,时间范围:[0000-00-00, 9999-12-31],存储空间:3bytestime: 格式:HH:MM:SS,时间范围:[00:00:00, 23:59:59]timestamp: 1 4个字节存储,时间范围为:'1970-01-01 00:00:01.000000' 到 '2038-01-19 03:14:07.999999'2 以UTC格式(世界...原创 2018-04-11 18:08:20 · 359 阅读 · 0 评论 -
SQL IN, NOT IN, EXISTS, NOT EXISTS
IN与EXISTS执行流程IN:在查询的时候,首先查询子查询的表,然后将内表和外表做一个笛卡尔积,然后按照条件进行筛选。所以相对内表比较小的时候,in的速度较快。(IN时不对NULL进行处理)EXISTS:在查询的时候,遍历循环外表,然后看外表中的记录有没有和内表的数据一样的。匹配上就将结果放入结果集中。使用EXISTS关键字进行查询的时候,首先查询的不是子查询的内容,而是查主查询的表, 如果两个...原创 2018-04-20 18:33:44 · 125 阅读 · 0 评论 -
dubbo参数调优
dubbo中配置优先级规律:方法级配置优先级高于接口级,consumer的优先级高于provider。详细:consumer的method配置 > provider的method配置consumer的reference配置 > provider的service配置consumer的consumer节点配置 > provider的provider节点配置 本地参数配置优...转载 2018-05-09 22:29:15 · 1647 阅读 · 0 评论 -
服务部署
蓝绿部署1 需要两个相同的环境(基础架构),蓝色环境 + 绿色环境。2 当你想要升级某模块/应用 ,在蓝色环境中进行操作,部署新版本,并进行测试。3 监测新版本应用,是否有故障和异常。 3.1 运行良好,删除绿色环境使用的资源。 3.2 运行出现了问题,通过负载均衡器/反向代理/路由指向快速回滚到绿色环境。 注意细节:切换环境时,需要妥当处理未完成的业务和新的业务。需要...原创 2018-05-06 12:15:36 · 199 阅读 · 0 评论 -
Guava Cache本地缓存
Guava介绍Guava是一种基于开源的Java库,其中包含谷歌正在由他们很多项目使用的很多核心库。这个库是为了方便编码,并减少编码错误。这个库提供用于集合,缓存,支持原语,并发性,常见注解,字符串处理,I/O和验证的实用方法。Guava Cache适用场景1 消耗一些内存空间来提升速度;2 缓存中存放的数据总量不会超出内存容量。(Guava Cache是单个应用运行时的本地缓存,不把数据存放到文...原创 2018-05-06 12:21:37 · 542 阅读 · 0 评论 -
fail-fast 与 fail-save 机制的区别
参考:https://blog.csdn.net/bigtree_3721/article/details/67095084转载 2018-06-04 09:36:45 · 1466 阅读 · 0 评论 -
REST
link: https://www.imooc.com/article/17650转载 2018-06-04 19:10:31 · 138 阅读 · 0 评论 -
windows版本免安装redis, nginx, zookeeper
redis官网:https://redis.io/windows版本免安装redis下载链接:https://github.com/MSOpenTech/redis/releases nginx官网:http://nginx.org/windows版本免安装redis下载链接:http://nginx.org/en/download.html注意:如果直接双击nginx.ex...原创 2018-09-11 22:02:03 · 356 阅读 · 0 评论 -
java命令查询属性信息
System.getProperty("user.home")可以查询JAVA系统的user.home属性的值,除了user.home,还有user.dir, file.separator, file.encoding等,可以用命令查看: 1 2 3 4 java -XshowSettings:all -version jav...原创 2018-09-26 09:44:54 · 792 阅读 · 0 评论 -
Spring @AliasFor
原文地址:https://blog.csdn.net/wolfcode_cn/article/details/80654730 在Spring的众多注解中,经常会发现很多注解的不同属性起着相同的作用,比如@RequestMapping的value属性和path属性,这就需要做一些基本的限制,比如value和path的值不能冲突,比如任意设置value或者设置path属性的值,都能够通过另...转载 2018-09-26 10:58:13 · 523 阅读 · 1 评论 -
Swagger
Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。主要作用:1. 接口的文档在线自动生成。 2. 功能测试。 相关链接:Swagger使用指南:https://blog.csdn.net/s...转载 2018-09-29 17:12:18 · 377 阅读 · 0 评论 -
SpringBoot Actuator & SpringBoot Admin
SpringBoot Actuator提供了很多监控和管理你的spring boot应用的HTTP或者JMX端点,并且你可以有选择地开启和关闭部分功能。当你的spring boot应用中引入依赖之后,将自动的拥有审计、健康检查、Metrics监控功能。Spring Boot Admin用于监控基于Spring Boot的应用,它是在Spring Boot Actuator的基础上提供简洁的...原创 2018-09-29 17:14:19 · 211 阅读 · 0 评论 -
SpringMVC单元测试-MockMvc
一 简介 MockMvc实现对Http请求的模拟,可以方便对Controller进行测试,使得测试速度快、不依赖网络环境,而且提供验证的工具,使得请求的验证统一而且很方便。 二 常见使用方式1 MockMvcBuilder构造MockMvc的构造器2 MockMvcRequestBuilders创建请求request3 mockMvc调用perform,执行一个reques...原创 2018-09-29 17:18:39 · 718 阅读 · 0 评论 -
Mockito教程
转载自:https://www.cnblogs.com/Ming8006/p/6297333.html建议阅读:Mockito API:https://static.javadoc.io/org.mockito/mockito-core/2.22.0/org/mockito/Mockito.htmlSpringBoot @MockBean, @SpyBean:https://docs....转载 2018-09-29 17:56:55 · 226 阅读 · 0 评论 -
google thumbnailator
Thumbnailator 是一个优秀的图片处理的Google开源Java类库。处理效果远比Java API的好。从API提供现有的图像文件和图像对象的类中简化了处理过程,两三行代码就能够从现有图片生成处理后的图片,且允许微调图片的生成方式,同时保持了需要写入的最低限度的代码量。还支持对一个目录的所有图片进行批量处理操作。支持的处理操作:1 图片缩放(按原比例;按指定大小;按指定比例;)2 区域裁...原创 2018-04-15 14:40:49 · 1179 阅读 · 0 评论 -
Maven知识点整理
Maven不仅是依赖管理工具,准确来说是一个项目管理工具,贯穿了整个项目生命周期,编译,测试,打包,发布...依赖是使用Maven坐标来定位的,而Maven坐标 主要 由GAV(groupId, artifactId, version)构成。Maven思想:约定大于配置。依赖归类使用<properties>来归类管理。示例:1234567891011121314151617181920...原创 2018-03-21 22:26:16 · 248 阅读 · 0 评论 -
常用linux配置文件
/etc/hosts:用户IP与域名的对应解析表/etc/sysconfig/network:机器名、网卡启动、网关等配置/etc/fstab:记录开机自动挂载的文件系统/etc/rc.local:开机加载的程序/etc/profile:配置全局环境变量配置文件/etc/group:用户组信息/etc/passwd:用户帐号信息/etc/shadow:用户密码信息/etc/sudoers:执行使用...原创 2018-03-31 23:33:04 · 501 阅读 · 0 评论 -
编写高质量代码
测试阶段和正式环境的BUG数量,跟开发人员的技术能力可能无必然的关联(毕竟复杂的逻辑相对于简单逻辑产生BUG的可能性是要大的),但一定程度是可以体现开发人员的思维严谨性,责任感,特别是在项目赶的时候。1 在开发阶段前是否把问题想清楚。如果在开发前都没有理解需求,最终产品验收时肯定会改东西的。在开发前理解好的需求,理解好了为什么要开发这个功能,是写好高质量代码的基础。2 在开发阶段思原创 2018-02-05 17:38:14 · 103 阅读 · 0 评论 -
MySQL数据库规范
MySQL数据库规范一、基础规范【强制】使用InnoDB存储引擎解读:InnoDB存储引擎是MySQL默认存储引擎,支持事务和行级锁,并发性能更好,CPU及内存缓存页优化使得资源利用率更高【强制】使用utf8字符集,如果有字段需要存储emoji表情之类的,则需要将字段或表设置成utf8mb4解读:万国码,无需转码,无乱码风险,节省空间,utf8mb4向下兼容utf8【强制】原创 2018-02-05 19:39:38 · 196 阅读 · 0 评论 -
SQL语句兼容性规范
一、DDL兼容性规范(防止表结构变更后,原有的SQL执行报错)只能增加字段或修改字段长度(字段长度改大),不能修改字段名字和类型,不能删除字段不能删除表或者修改表名称 二、DML兼容性规范insert语句需指定列,INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)字段的含义只能扩充而不能修改和缩减,如需修改和缩减原创 2018-02-05 19:41:24 · 595 阅读 · 0 评论 -
Java开发规范
各个开发人员的代码风格都不一样,一定程度上是不利于管理的。下面给出我在工作中的代码规范。1 编码规范内容有点多,有需要的进此链接下载吧(http://download.csdn.net/download/u014529411/10230243)没积分的童鞋可私信我。Java编码规范.docalibaba-java开发手册.pdf原创 2018-01-29 20:06:55 · 156 阅读 · 0 评论 -
工作电脑小技巧
0 常用 Win + R 后的命令:cmdservices.mscregeditmsconfigmstsccalc 1 使用 Teamviewer 远程工具 2 公司电脑断电,希望来电后自动启动电脑:进入 BIOS,找到电源设置,修改来电后自动重启。不同型号的电脑提示不同,根据英文提示,应该是可以找到的。附上一些找到资源链接:https://jingyan.baidu.com/article/48...原创 2018-02-11 10:01:18 · 142 阅读 · 0 评论 -
GIT管理
补充:推荐学习链接:https://git-scm.com/book/zh/v2一 常用GIT命令1 创建新分支(分支来源可以是另外一个分支名,或一个 tag 名称)git branch 新分支名 分支来源2 创建并切换到新分支(分支来源可以是另外一个分支名,或一个 tag 名称,或一个 commit id)git checkout -b 新分支名 分支来源3 删除原创 2018-01-30 00:13:33 · 154 阅读 · 0 评论 -
MySQL行转列与列转行
行转列例如:把图1转换成图2结果展示图1 图2 1234567CREATE TABLE `TEST_TB_GRADE` ( `ID` int(10) NOT NULL AUTO_INCREMENT, `USER_NAME` varchar(20) DEFAULT NULL, `COURSE` varchar(20) DEFAULT NULL, `SCORE` float DEFAULT ...转载 2018-03-14 22:22:33 · 354 阅读 · 0 评论 -
MySQL 分页优化
MySQL 用 LIMIT offset, length 进行分页。但当表记录数很大,会发现大页数的查询时间明显比小页数的查询时间大。MySQL并不是跳过 offset 行,而是取 offset+N 行,然后返回放弃前 offset 行,返回 N 行,当 offset 特别大的时候,效率就非常的低下解决方式一:在业务上限制总页数。解决方式二:借助索引,快速定位。方式二是比较常用的。示例:devic...原创 2018-03-01 11:42:45 · 114 阅读 · 0 评论 -
Java线程池拒绝策略
Java线程池拒绝策略 相关资料:线程池的RejectedExecutionHandler(拒绝策略):http://blog.csdn.net/jgteng/article/details/54411423JAVA线程池:http://blog.csdn.net/jgteng/article/details/54409887...转载 2018-03-10 11:51:40 · 155 阅读 · 0 评论 -
分离架构设计
随着业务发展,用户量越来越多,系统会开始遇到一些性能瓶颈。一、动静分离相关链接:《动静分离,改造小收益大》 二、读写分离相关链接:《读写分离,改造小收益大》 三、前后台分离相关链接:《前后台分离,改造小收益大》《前后端分离架构实践》《前后端分离的缺点》...原创 2018-03-19 18:10:45 · 206 阅读 · 0 评论 -
Mysql GROUP_CONCAT 使用注意事项
GROUP_CONCAT 函数返回一个字符串结果,该结果由分组中的值连接组合而成,常和 GROUP BY 连用。如果需要自定义分隔符可以使用 SEPARATOR。示例:SELECT GROUP_CONCAT(id) ids FROM sys_oem_resources WHERE pid IS NOT NULL GROUP BY pid; SELECT GROUP_CONCAT(id SEPARA...原创 2018-04-07 21:16:42 · 2421 阅读 · 0 评论 -
Freemarker 使用注意事项
上次借助 Freemaker 模板引擎来动态构造 Kylin 访问的 SQL,在使用过程中,遇到了一些坑。${} 输出变量时需要注意:示例 WHERE shop_id = ${val} 里的 val = 1000,构造出来的 SQL ,会变成:shop_id = 1,000,原因:${} 默认情况下 Freemarker 会将数字用逗号分隔解决:加上"?c"(例如示例里的那个,WHERE sho...原创 2018-04-08 00:09:54 · 774 阅读 · 0 评论 -
分布式锁1 Java常用技术方案【转载】
前言: 由于在平时的工作中,线上服务器是分布式多台部署的,经常会面临解决分布式场景下数据一致性的问题,那么就要利用分布式锁来解决这些问题。所以自己结合实际工作中的一些经验和网上看到的一些资料,做一个讲解和总结。希望这篇文章可以方便自己以后查阅,同时要是能帮助到他人那也是很好的。 =======================================================...转载 2018-03-31 10:15:43 · 170 阅读 · 0 评论 -
分布式锁2 Java非常用技术方案探讨之ZooKeeper 【转载】
前言: 由于在平时的工作中,线上服务器是分布式多台部署的,经常会面临解决分布式场景下数据一致性的问题,那么就要利用分布式锁来解决这些问题。以自己结合实际工作中的一些经验和网上看到的一些资料,做一个讲解和总结。之前我已经写了一篇关于分布式锁的文章: 分布式锁1 Java常用技术方案 。上一篇文章中主要写的是在日常项目中,较为常见的几种实现分布式锁的方法。通过这些方法,基本上可以解决我们日常...转载 2018-03-31 10:16:56 · 123 阅读 · 0 评论 -
Java 访问 Kylin 总结
这次开发功能是OEM统计报表。统计报表的数据由大数据平台部的同事收集,数据的展示由我们部门开发。大数据那边使用 Kylin 分布式分析引擎(kylin官方文档)。Kylin 虽比较偏向大数据相关,但最终大佬们决定把访问 Kylin 的 Dubbo 接口也由我们开发,比较坑。 解决方案一:Mybatis首先我们搭建一个 shop-mod-bigdata (+ shop-mod-bigdata-int...原创 2018-03-31 11:34:20 · 2121 阅读 · 1 评论 -
SpringData JPA整理
一 首先熟悉几种jpa中的接口Repository,CrudRepository,PagingAndSortingRepository,JpaRepository,JpaSpecificationExecutorRepository是一个空接口: 1 2 3 4 @Indexed public interface Reposito...原创 2018-09-30 09:44:36 · 406 阅读 · 0 评论