- 博客(43)
- 资源 (1)
- 收藏
- 关注
原创 android-环境
“ANDROID_SDK_HOME is set to the root of your SDK: D:\tools\develop\android\sdk This is the path of the preference folder expected by the Android tools. It should NOT be set to the same as the root of...
2019-05-14 22:48:57
1304
1
原创 HandlerExceptionResolver 全局异常
全局异常,出现异常时,两种场景返回统一的错误页面。页面跳转 ```### 返回json数据,页面不跳转,比如提示系统异常,请重试。```javapublic class GlobalExceptionResolver implements HandlerExceptionResolver{ private final static Logger LOGGER = Lo...
2019-04-24 16:49:31
1131
原创 mybatis-存在则更新 ON DUPLICATE KEY UPDATE
欢迎使用Markdown编辑器绝大多数,一般的情况是:业务逻辑、调用接口时是知道的,这条记录是新增add还是修改update的。但是有些场景,比如添加购物车,里面有三个商品,p_001,p_002,p_003,现在顾客删除了p_003,新增了p_004.如何实现呢?方案1:a 先去数据库查询购物车之前的商品列表:p_001,p_002,p_003,第一次sql;b 和新的购物车的商品列...
2019-04-24 12:44:06
6068
1
原创 fiddler https 443 终极解决办法
如果你是在自己家里,几乎没上面的问题。有问题参照https://www.cnblogs.com/joshua317/p/8670923.html 几乎都可以解决。如果参照上面还是无法解决,一般是在公司的网络环境下。当你按照教程怎么都不行时,而别人都是可以的时候,你一定会骂娘的。。Well, it seems that in the end it was a Windows Issue...
2019-03-13 10:40:53
11118
3
原创 源码构建.DMG
小白教程。。。最近使用mos这个软件,GitHub地址:https://github.com/Caldis/Mos官方下载链接在亚马逊上,被墙了。无法下载。国内也有版本低。所以就想自己构建这个app。毕竟有过Android开发,应该差不多(下载源码,xcode导入源码,打包...)。步骤:1 从https://github.com/Caldis/Mos 下载源码2 打开xc...
2019-01-03 16:51:52
538
原创 团队协作
1 问题:经常有员工离职,离职后其他同事无法查看他们之前提交的开发环境申请的各种搭建流程。大公司对OA系统(办公系统)的权限管理的很严格,这是好的方面,应该这样。无规矩不成方圆。现在有这样一种现象:有很多组提各种流程,比如MQ、mysql、RPC、redis等待的申请,都不是项目经理的账号,全部下发给组员,而且是每个组员都可以(具体就是觉得谁有时间就让谁去学习下提个流程,这里吐槽下,很多流...
2018-11-14 09:17:23
155
原创 tomcat-源码编译环境 Mac idea
下载的源码默认是ant构建。修改成maven,只需要添加一个pom.xml.具体参照。https://zhuanlan.zhihu.com/p/29665847下面是遇到的问题。强大的idea里面有个黄色的警告提示了:Reports any Maven dependency inside an OSGi project which points to a library which ...
2018-11-07 11:48:51
581
原创 Java 集合-TreeMap
写的很好的一篇:https://www.cnblogs.com/skywang12345/p/3310928.htmltomcat StandardContext-loadOnStartup方法里面treeMap 相比较Hashmap,特点就是有序(也是不非锁线程不安全的)。但是 loadOnStartup外面的方法startInternal()有synchronized.所以是线程...
2018-11-07 10:20:57
134
原创 Mac-svn
idea 使用svn报错: svn: E230001: Server SSL certificate verification failed: certificate issued for a different hostname, issuer is not trusted浏览器出入svn代码地址提示:按网上教程 在mac 的 钥匙串访问里面 把证书放到系统目录,无效。最...
2018-11-05 11:43:18
429
原创 内存泄漏-单例模式引起的
参见:https://blog.youkuaiyun.com/cao_dayong/article/details/64447191?locationNum=14&fps=1
2018-11-04 09:16:12
380
转载 并发-并发工具类Phaser
转写的很好。 我是攻城师 https://cloud.tencent.com/developer/article/1350849特性:Phaser是一个可重复使用的同步栅栏,功能上与 CountDownLatch 和 CyclicBarrier类似但支持的场景更加灵活,这个类可能是目前并发包里面实现最复杂的一个了。Phaser的灵活性主要体现在在构造函数时不需要强制指定目前有多...
2018-11-01 15:41:38
174
原创 并发-并发工具类-Semaphore
源码注释里面有例子;主要方法是 :acquire() 子线程调用,申请一个令牌,不一定会获取到,该方法是阻塞方法,获取不到的子线程等待,等有可用令牌时去release() 子线程调用,令牌会释放(前提你得获取到令牌否则你释放啥。。。)/** * 厕所4个位子,6个人--资源不够 * 一般结合线程池使用 */public class SemaphoreTest { ...
2018-11-01 15:29:35
205
原创 并发-4个同步辅助类(CountDownLatch、CyclicBarrier、Semphore、Phaser)
先来看下前2个直译过来:countDownLatch是一个同步的辅助类,允许一个或多个线程,等待其他一组线程完成操作,再继续执行。CyclicBarrier是一个同步的辅助类,允许一组线程相互之间等待,达到一个共同点,再继续执行。解读下:首先是有个分组的概念,谁等谁,所以有2组角色,比如A组,B组。countDownLatch:A组中的一个或者多个线程await(),B...
2018-11-01 14:11:14
266
原创 elasticsearch-下载安装
ES一致快速更新中,相关的工具curl更新也快。网上看到的和自己操作的不一样。记录下。1 curl的安装:这个页面和一些网友的很不一样,估计更新了 老套的环境变量就不说了。2 API查询返回 计算集群中文档的数量 本地: ...
2018-10-27 21:59:15
679
原创 设计模式-dubbo
最近在看dubbo源码,发现一个设计模式用的很多。代码结构就是:subClass(N)-->abstract(1)-->interface(1);中间一个抽象类可以包含一些公共方法等。那这个模式是模板方法还是策略模式呢?https://www.cnblogs.com/08shiyan/p/4989203.html代理负载算法时: ...
2018-10-24 11:54:39
324
原创 设计模式-策略Strategy(算法)
很常见的一种算法:1 不使用这个模式我们是怎么做的? 比如针对会员有多个算法,v1,v2,v3,简单就是一个业务类XxxBiz里面写三个if else就可以了。简单直接高效。 但是要是作为jar包供第三放使用,你是无法修改这个类的。如何处理?引入万能的接口啊。XxxBiz里面引用这个算法接口IStrategy,if else里面的多个算法用多个实现类来实现 V1Strate...
2018-10-24 10:15:05
228
原创 设计模式-适配器 adapter
来简单实现springmvc先来2个接口,Adapter--[关联]--> Controllerpublic interface Controller { //抽象的业务方法 处理http请求和响应 并返回 ModelAndView //由不同的实现类去实现 ModelAndView handleRequest(String request, String ...
2018-10-23 15:15:41
134
原创 设计模式-代理proxy
类似生活中的代购、中介,为什么会有他们,因为他们在他们的领域是专业高效的,比起你(调用方)自己去直接调用目标类,更高效、解耦。设计的概念:调用者client、目标target、代理proxyTartget 共三个概念特点:简单 设计的类很少代理也分类:静态代理 、动态代理。看名字也知道动态的牛逼。1 静态代理-按代理对象的生成方式是继承类还是实现接口,所以代码实现有分为2种 都...
2018-10-23 11:36:24
130
原创 性能优化概述
性能优化的指标:响应时间(二线的app对比下大厂的app)、并发量:秒杀 双11(比如微博的几次拓机)QPS:TQP:具体的实时方案:一 代码级别(效果很明显,以自之力是可以完全实现):缓存:本地缓存、redis等。(效果最明显 提升1000倍以上)批处理:比如myslq 批插入,redis 的hset等( 提升N倍)并发:多线程、线程池技术,ExecutorS...
2018-10-23 10:43:25
127
原创 设计模式-单例模式
本来不想写这篇的,以为这模式很简单,平时最常用的模式之一。但是昨天面试我回答的却很不好。为什么叫“单例”,就是整个JVM里面这个对象只有唯一的一个。这个理论“道”的层面。场景:比如项目里唯一的一个管理员,数据库实例,redis实例、用于创建bean对象的工厂...如何实现(“术”的层面):只要能实现唯一的一个对象,禁止多次new XXX,所以方法很多....。下面是经典的方法:1 ...
2018-10-18 17:54:26
117
原创 设计模式-建造者模式
-建造者:不同的对象,动态设置不同的属性通过返回设置后的当前对象。如JDK里面的StringBuilder 抽象一个方法append(...)面向对象的举例:装修房子厨房,你需要的一些属性(对象)热水器 、燃气灶、灯、水槽等等。这些属性创建时都预留了位置,你需要上面就可以放进去啥,然后每个东西的颜色什么的都可以自由选择。最后不同的人装修出来不同的厨房。 public...
2018-10-18 17:53:36
104
原创 设计模式-原型模式
大白话就是复制、克隆模式。生活场景就是,比如 现在我写的文章分了 1 2 3 模板结构,那我再写篇新的时候就想复用这个模板。类似的就是word execl的复制。用的技术实现:克隆(深拷贝、浅拷贝) /* @desc 使用Object 的clone() 必须实现 Cloneable 接口 */public class WeeklyLog implements Cloneable...
2018-10-18 17:53:08
111
原创 设计模式-工厂模式
创建多个对象时考虑适用。依葫芦画瓢<(* ̄▽ ̄*)/分类:简单工厂(也叫静态工厂)、工厂方法(解决新增产品需要修改工厂类的缺点)、抽象工厂一 简单工厂-一个工厂类1 public class DrinkFactory { /** * 工厂根据传入的参数来管理创建对象 * 缺点:新增饮品,需要修改该工厂类 * * @param ...
2018-10-18 16:34:17
103
原创 mycat-调试环境
参照 http://www.iocoder.cn/MyCAT/build-debugging-environment/ 1 运行提示:提示 MYCAT_HOME is not set;在idea 设置VM 参数:-DMYCAT_HOME=E:\codeDB\Mycat-Server-1.6\src\main navicat打开mycat 比较。3 默认端口...
2018-10-17 15:50:24
1423
原创 spring setter注入 构造器 顺序
public class AwareBean implements BeanFactoryAware, BeanNameAware, ApplicationContextAware, InitializingBean { private String beanName; private ApplicationContext applicationContext; p...
2018-09-03 17:44:24
946
原创 设计模式概述
就像物理 数学公式一样。比如几何,分析后知道用那个、那些公式来解决该问题。模式也就是套用模板,类似习题做多了,也就有感觉了。缺点:因为要职责分离 独立等需要拆分类、类里面的方法,会引入接口,这样会增加很多的类。因为增加了很多类,还有层级,看代码的时间其实也是增加了(可读性还是进步了)。不要滥用,不要滥用,不要滥用。公司的很多业务代码都可以按照设计模式来修改,但是代码复杂度,类的数量...
2018-09-03 17:34:40
264
转载 SolrCloud-理解SolrCloud的事务日志、软提交和硬提交
理解SolrCloud的事务日志、软提交和硬提交https://blog.youkuaiyun.com/limengliang4007/article/details/78092252
2018-09-03 17:34:22
269
转载 Solr-缓存
Solr缓存https://blog.youkuaiyun.com/huanghai200911/article/details/51240766
2018-09-03 17:33:49
379
原创 性能优化-list嵌套list
功能是评价列表,抓包结果如上图。每一行元素又嵌套“商品信息”和图片数组。看下xx写的主要逻辑。 最外层从mysql查询到基本数据的列表,然后在for循环里面再从db里面查询图片列表和商品信息。这个性能绝对不好。查了下rpc接口的时间:如果只在db层,该如何优化呢。1 今天一个同事提醒了下,查询嵌套的数据时,可以取外面的outIds,然后查询里面的嵌套的数据时,使用in(:o...
2018-09-03 17:31:41
1133
原创 设计模式-桥接bridge
1 使用场景存在两个(多个)独立变化的维度,且这两个维度都需要进行扩展。一般这2个变化的对象有一个主从关系。从的是依附的,没有不影响主的最基本的使用。 2 代码结构 上面的主就是一个抽象类,里面关联从的变化对象。从是接口。 3 举例 画图软件。先画出形状,为了丰富功能需要着色、音效等。代码实现:/** * 2个(多个)变化的维度 形状和颜色 ...
2018-08-23 11:18:39
106
原创 设计模式-模板方法
在代码结构上:1 一个抽象类:不是接口 因为里面有个实现方法,多个抽象方法2 这个抽象类里有一个主方法:cook(),3 主方法里面包含几个共性的固定的抽象方法(getRice(),fry(),getOut()),并且顺序一定的。4 用户访问类DanChaoFanCooker里面依赖关联这个抽象类。这边引用:https://www.cnblogs.com/08shiyan/p/49...
2018-08-20 14:16:38
165
转载 事务-多个 annotation-driven
参照https://blog.youkuaiyun.com/z69183787/article/details/8111026
2018-08-19 14:35:52
479
原创 Validator -性能很差
/** * 使用hibernate的注解来进行验证 */ private static Validator validator = Validation .byProvider(HibernateValidator.class).configure().failFast(true).buildValidatorFactory().getVali...
2018-08-14 09:46:45
2943
5
原创 代码规范样例讨论-注释1
“其实没啥需要多说的,大家参照阿里 java 开发规范就好了。仅仅记录工作中遇到的讨论”1 简单的逻辑注释是否真的需要?参照王垠推荐的方法行数保持在40行,大约是电脑屏幕的高度。减少上下滑动的操作,可以更加专注。所以减少无用的注释。2 由上面代码行数引出的一个问题,方法内的简单的注释是否可以放到方法的后面?比如这样? 我觉得是没问题的参照:ali java规范 是强制要...
2018-07-18 11:04:05
289
原创 代码规范样例讨论-简化1
“其实没啥需要多说的,大家参照阿里 java 开发规范就好了。仅仅记录工作中遇到的讨论”看图说话。主要是看看大家的意见。好还是不好 为什么? 上面的建议: 1 参数的检验代码冗余复杂,可以使用校验框架比如注解,然后统一异常来处理。让参数校验的“切面”功能独立出来。 ...
2018-07-18 10:48:14
238
原创 Unable to add window -- 终极解决方案
在使用Popup Window时候,一般都会遇到:Unable to add window -- token null is not valid。一般给出的解决方案是延时几百毫秒。我遇到的问题是延时了1秒种还不行。其实界面都显示了 Activity onresume也走了。但是很怪的是:getWindowToken()一直为null.最后直接用 window.getDe
2016-12-15 17:50:46
3088
原创 android studio Unknown attribute
android studio layout 和manifest文件提示报错。:This inspectionhighlights unknown XML attributes in Android resource files android studioUnknown attribute。昨天加班出现这个问题 重启 怎么检查都不行。尽早问了下同事,突然提醒了我
2016-06-20 09:58:32
5560
原创 获取view的坐标值
Left 相对父类的从左边算起子view左边相对父view的左边的水平距离;Right 相对父类的从左边算起子view右边相对父view的左边的水平距离;getWidth =Right - left; top相对父类的从上边算起子view上边相对父view的上边的水平距离;Bottom 相对父类的从下边算起子view下边相对父view的上边的水平距离;
2016-05-21 17:38:55
395
转载 service不被杀死
网上有很多办法, 方法一:在JNI里面fork出子进程 service在单独的进程中,在service中调用JNI的代码,然后fork出一个进程,然后让我们的service进程和fork出来的子进程一直运行. 在5以下是可以的,在5以上无效, 5.0的代码: Process.killProcessQuiet(app.pid); Process.killProcessGroup(app.i
2016-05-12 17:52:11
764
原创 gradle classpath 升级报错
今天手贱,公司突然放网了,看到AS有新版本了,就升级了。 折腾半天构建 大的app时,limit of 64K only for methods in an single dex 出现下面的报错。而我之前1.3.0是好的。 不得己 我换回1.3.0 或者1.5.0又可以了。 具体原因不知道。反正好了 又可以安心巧代码了。
2016-05-09 15:43:45
960
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人