- 博客(30)
- 资源 (1)
- 收藏
- 关注
原创 六大全局唯一ID生成算法策略,效率对比。 总有一款是你的菜
前言ID在程序设计中,无处不在,至关重要。分布式锁中,我们会用唯一ID宣誓锁的归属。数据库中用主键ID记录每一行并绑定Data。分库分表的系统中,用ID生成,来保证全局唯一等等。今天我们就来做下总结。不可少的往上介绍雪花算法,号段模式的文章很多。分布式ID的要求UNIQ 唯一性:ID,ID 要的就是唯一HP 高性能:生成ID的服务,不能成为瓶颈HA 高可用:保...
2020-05-08 17:29:48 4166
原创 JAVA对象拷贝 — Interge自动转Long?效率比拼
前言今天开发中遇到一个小问题。因为前期沟通不到位。有同学把一个后台接口(用于获取ES中的商品数据)的id相关字段,都设置成了Interge。而我们公司ID的要求是Long。这导致数据后期维护十分不方便。还容易出错,举个例子因为泛型擦除所以并不会报错,而iidMap真实的类型是Map<Interge, ItemTO>。导致调用containsKey永远得不到。而因为是Dubb...
2020-05-06 21:24:20 1181
原创 Redis系列04 - 主从复制
前言Redis体系学习整理,点我点我解决问题:1:单点问题,机器宕机,服务不可用,数据丢失。2:容量瓶颈。 简而言之,保障Redis的HP和HA主从复制三大步骤如果我们要自己设计一个主从同步的系统,你会怎么处理?大家都能想到,最简单的思路也是三步机器建立连接数据复制后续新指令维护我们来看下Redis的具体步骤。因为都是人设计出来其实思路是一致的。链接阶段:Slave ...
2020-05-06 18:45:17 241
原创 Redis系列03 -持久化介绍(RDB & AOF)
redis的持久化前言持久化数据的常用方案复制(snapshot快照)日志(操作日志)RDB启动方式人工启动配置启动特殊启动优缺点优点缺点AOF开启方式AOF的重写机制简介:启动命令:后记前言解决问题:redis数据在内存中,断点了数据丢失怎么办?Redis作为Nosql中一员,因其完全基于内存,支持多样的数据结构,单线程,使用多路复用I/O等特点,逐渐成为了各企业技术选型中缓存模块的首选。...
2020-04-26 19:53:24 271
原创 Redis系列02 - 数据的删除策略和淘汰策略
Redis的数据删除策略数据删除过期删除的三种策略。定时删除惰性删除定期删除逐出算法(淘汰机制)数据删除redis中setEx是我们用的最多的指令。我们享受着他自动过期的遍历。但是过期(删除)数据,到底是怎么做的呢? 难道有计时器一直在后台跑嘛?还是说有其他更好策略。如果你也有这种疑惑,就来看看今天的文章吧。先举个例子:和Redis类似,日常生活中,我们也会有扔垃圾的需求。这样我们就有几种...
2020-04-26 18:19:19 345
原创 Redis系列01 - 开坑!启程
在一家公司居然已经5年半了。客户端转后端也3年半有余。今年目标:对整体后端技术栈进行复习和总结,并结合工作中的案例进行渗透。30岁前达到P8的技术水平,纸巷子,加油呀!第一个系列,就先从缓存相关的东西,开始聊起。附上之前学习的记录,供大家参考。诸葛亮说过学习要,不求甚解 ,观其大略!在学习的时候一定要有大菊观。逐步点亮,当然所有东西问到最后都是数据结构的选择和运用0.0,所以夯实基础是程...
2020-04-20 21:46:20 203
原创 Redis系列05 - redis+guava实现多级缓存
JAVA 基础体系前言场景与使用:虽然面对的是高并发场景,单今天只关注缓存,不讨论线程安全和锁相关的问题。前言日常工作中,时常要面对抽奖活动,奖励发放,商品秒杀等大流量高并发的场景。高并发场景面对的第一个问题是DB的IO瓶颈。 这时比较通用缓存方式是加一层redis,用内存的性能来解决IO的瓶颈。但是引入Redis就一劳永逸了嘛?不是的,相对应的高并发场景又会引发Redis热KEY和大K...
2020-04-20 21:11:08 1355
原创 总结:Android启动模式 ——IntentFilter解析
引入一个新的版本发出,抽空复习一下开发基础。温故而知新~↖(^ω^)↗ 今天的主题是 Android的启动模式。 我们从常用的Activity的启动开始展开。对于Acitivity的启动大家一定如数家珍。常用方式如下 Intent intent = new Intent(SplashActivity.this, HomeActivity.class); start
2016-02-29 12:21:48 727
原创 markdown中插入图片怎么定义图片的大小或比例?
使用markdown的时候要缩小图片尺寸怎么破? 我在知乎上找到了一个切实有效的解决方案: 在图片地址链接后面加上 ?imageView/2/w/450/q/90例子: 原图http://img.blog.csdn.net/20150831171908612指定尺寸http://img.blog.csdn.net/20150831171908612?imageView/2/w/450/
2015-08-31 18:03:23 2718
原创 闹钟倒计时动画效果实现。仿聚美优品H5闪购动画。
我们先来看一下聚美优品的效果: 这个闹钟会有三个动画效果:类似雷达扫描的效果,在1秒内旋转一圈,就是图中的黄底。闹钟中间的数字由大到小展示。6秒内的时候,闹钟会有一个shake振动的效果。下面展示一下我丑陋的实现效果,大家看下原理,画面可以自己优化。 我5秒的时候整个屏幕都在振动=。=这个效果涉及到的知识还是比较多的。计时器的使用,不太了解的看官可以看这篇博客Android计时工具
2015-08-31 17:34:01 1824 1
原创 match_parent和fill_parent的区别
match_parent和fill_parent的区别应该很多朋友在开发的时候match_parent和fill_parent是混用的,并不太清楚他们之间的区别。实际上在实现的效果上他们也是一样,那他们的区别在哪里? 带着这个问题我去读了Android的源码。 然后我发现了一个X了狗的事情。他们是同一个东西。。。没错,你没有听错,在API8之后,Android通过映射,将所有的fill_pare
2015-08-26 21:10:47 3509
原创 Android View的绘制之 从源码了解measure的过程。
Android View的绘制之measure过程初解。前言每个Android开发者,开发到一定程度后,都不可避免的涉及到各种自定义控件,各种性能优化的问题。 而学习和了解View的绘制过程,会对你的控件开发,性能优化等东西有很大的帮助。今天写这边博客,就是希望带大家从View和ViewGroup的基本的源码中,了解View的绘制过程。整个View的绘制涉及测量(measure),布局(layou
2015-08-25 11:32:37 578
原创 【感悟】一篇文章入门rocketmq? 如何写好一篇技术博文?
不废话先说结论:要先抛出问题!为什么抛出问题如此重要?我来说一下我的感悟有开发经验的同学都知道,每一个优秀的开源项目或者商业性框架。都不是一蹴而就的。迭代升级一直是每个优秀系统的自我修养。反过来说,在项目启动之初,就考虑的大而全。往往会把问题复杂化。考虑不全不说,反而会大幅增加问题拆解和项目落地的难度,而且大部分问题,都会在系统的使用中陆续暴露,所以这又给迭代升级添加了一定的宿...
2019-11-06 19:16:12 282
转载 抓包层面,进一步理解网络链接的3次握手和4次挥手。
原博主链接:https://www.cnblogs.com/FJuly/p/4772040.html一:三次握手三次的握手的过程是:1.由发起方HostA向被叫方HostB发出请求报文段,此时首部中的同步位SYN=1,同时选择一个序列号seq=x。TCP规定,SYN报文(即SYN=1的报文段)不能携带数据,但要消耗一个序列号。这时,TCP客户端进程进入SYN-SENT(同步已发送)状态...
2018-08-19 18:36:12 159
转载 【问题集】 java.lang.OutOfMemoryError: GC overhead limit exceeded
UNEXPECTED TOP-LEVEL ERROR:java.lang.OutOfMemoryError: GC overhead limit exceeded at com.android.dx.dex.code.OutputFinisher.findExpandedOpcodeForInsn(OutputFinisher.java:525) at com.android.dx
2016-04-14 16:18:53 541
转载 自动化清理Android中无用的资源文件。
我们直接在公司项目中使用,效果良好!分享出脚本代码,希望对Android研发的同学有帮助。提示,初学python,开发环境是Sublime Text 2,直接Ctrl+B的,其他环境下没调试过。应该差不多^^复制代码#环境: win + python 2.7作者:马波邮箱:mabo02@baidu.com部门:hao123-无线说明:首次使用时lint分析会耗几分钟,请耐心等待。使用前先clean工
2016-03-25 15:22:37 490
原创 【问题集】Provided dependencies can only be jars
Your provided dependencies can only be jars, your custom Android Libraries in your project should be compile at build time.example:provided 'com.MyCompany:MyLibrary:1.0'provided 'com.google.android.gm
2016-03-16 21:17:45 1357
原创 【问题集】Android Studio编译器的文件图标消失,代码助手失效问题修复
Android Studio编译器的文件图标消失,代码助手失效问题修复原因: 打开了Power save Mode.解决方案: 点击File,弹框下面的最后一个选项就是Power Save Mode.点击关闭它即可。
2016-03-10 10:55:20 935
原创 【写给自己】项目组件化,修改远程依赖库的流程,特殊情况处理。
特殊情况除了第一种正常的单层依赖。可能你项目依赖一个库A,那个库A内部还依赖另一个库B。如果不跑单元你想在项目中直接修改库B这种情况怎么处理? 栗子: 项目A依赖于库B,库B依赖于库C,库D,库PullToRefresh。 这时你要修改PullToRefresh库,就不能单纯的源码引入库B,在源码引入库PullToRefresh了。处理方案: 1:将对应的库的源码Down下来,记录下放置的路
2016-02-29 15:56:38 1173 2
原创 【写给自己】项目组件化,gradle项目如何修改远程依赖库的源码?
修改流程(以下拉刷新库举例)1:将对应的库的源码Down下来,记录下放置的路径。2:在项目的setting.grade文件中,进行库的源码引入include ':PullToRefresh'project(':PullToRefresh').projectDir = new File('../CommonProject/Android-PullToRefresh')3:在对应的module的bui
2016-02-29 15:20:59 2648 1
原创 【问题集】出现error: The following untracked working tree files would be overwritten by checkout
错误描述git使用的时候,常常会出先很多unTracked working tree files(一般是在解冲突时产生的一些暂存的数据)放在files in working tree中,一般git控制软件会在这些文件前打了一个问号,提交的时候很麻烦。如何处理呢?处理方式打开命令行,cd到对应的程序目录中,输入git clean -d -fx即可清理对应unTracked working tree f
2016-02-29 13:34:38 3958 1
转载 synchronized详解。
记下来,很重要。Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。 一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。 二、然而,当一个线程访问object的
2015-10-27 15:55:40 386
转载 FragmentPagerAdapter与FragmentStatePagerAdapter区别
在一个 Android 应用中,我使用 FragmentPagerAdapter 来处理多 Fragment 页面的横向滑动。不过我碰到了一个问题,即当 Fragment 对应的数据集发生改变时,我希望能够通过调用 mAdapter.notifyDataSetChanged() 来触发 Fragment 页面使用新的数据调整或重新生成其内容,可是当我调用 notifyDataSetChange
2015-10-21 14:25:02 330
原创 【问题集】点9图(9-patch image)导致的"No resource found"
错误现象:默认打包都没问题.而且都可以运行.而用 ant的build.xml文件进行打包编译时出现以下错误: error: Error: No resource found that matches the given name (at 'drawable' with value '@drawable/xxx'). 分析:一般是因为你的项目中的图片出了问题,最有可能的就是9-patch ima
2015-09-29 19:53:10 975
转载 FragmentTransaction的commit和commitAllowingStateLoss的区别
1、什么是FragmentTransaction?使用Fragment时,可以通过用户交互来执行一些动作,比如增加、移除、替换等。所有这些改变构成一个集合,这个集合被叫做一个transaction。可以调用FragmentTransaction中的方法来处理这个transaction,并且可以将transaction存进由activity管理的back stack中,这样用
2015-09-21 11:42:32 563
原创 Activity中动态添加Fragment.
在Activity中添加Fragment。//获取支持包中的FragmentManager();FragmentManager mFragmentManager = getSupportFragmentManager();//动态添加的FragmentExampleFragment mExampleFragment = new mExampleFragment();//通过beginTran
2015-09-02 15:55:52 2510
原创 MeasureSpec介绍
看Android绘制view的时候,有一个很关键的类叫MeasureSpec. 下面我来简单的介绍一下MeasureSpec。MeasureSpec作用:MeasureSpec用来存储子view的宽或高的信息。 一个MeasureSpec存储了一个Mode和一个Size的信息, 用一个整型表示,高32位记录了Mode类型,低16位记录了Size大小。 Mode类型有三种可能的情况 1. M
2015-08-27 12:06:10 488
转载 Mars老师的Android学习路线。
记录一下Mars老师推荐的Android学习路线:很多朋友都对学习路线问题感到迷茫,特别是还在上学的朋友们。在这里就详细的为大家介绍一下。1.Java基础很多朋友一上手就开始学习Android,似乎太着急了一些。Android应用程序开发是以Java语言为基础的,所以没有扎实的Java基础知识,只是机械的照抄别人的代码,是没有任何意义的。那么Java学到什么程度才算是过关呢?我
2015-08-24 16:04:32 2081
原创 Android时间工具解析与使用——Calendar日历工具与CountDownTimer计时器工具
最近在公司做项目的时候涉及到了许多关于倒计时功能的开发,于是在这里做一下Calendar和CountDownTimer的学习总结: 先附上CountDownTimer样例代码:计时器使用案例传送门Calendar介绍 Calendar是JAVA中的非常实用的日历工具。 只要给他一个时间,你就可以非常轻松的得到这个时间的各种含义。比如,这是一年中的几月,这是一年中的第几天,这是一天中的第一秒等
2015-02-27 20:03:16 1579
原创 LayoutInflater 的基本使用; LayoutInflater ,setContentView,findViewById三者的对比。
在代码中,我们时常会使用LayoutInflater来实例化 layout中的布局。兴趣使然就去查阅了一下相关的资料做一个自己的总结。说到实例化 xml文件成View,我们第一个会想起的是 setContentView()方法 以及指定widget控件的findViewById()方法;下面总结一个这之中的相同点和区别。作用:1:setContentViewsetConte
2014-12-28 14:55:26 494
圆环扫描动画+scale+振动,组合实现聚美的抢购页的闹钟效果。
2015-08-31
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人