`
lemonhandsome
  • 浏览: 11846 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表

分割日期

/** * 将指定的时间段,减去多个指定的已用的时间段,最终返回有效的时间段 * 整体思路就是将所有时间打散,变成集合,然后求指定时间段的补集,最终将结果中连续的时间放到一起,返回开始结束时间的列表 * @param startDay 指定时间段的开始时间 比如1月1日 * @param endDay 指定时间段的结束时间 比如1月30日 * @param usedDay 指定的已用的时间段 比如[1-3到1-6],[1-18到1-20],[1-25到2-6] * @return 返回[1-1到1-2],[1-7到1-17],[1-21到2-24] */ publi ...

分割日期

/** * 将指定的时间段,减去多个指定的已用的时间段,最终返回有效的时间段 * 整体思路就是将所有时间打散,变成集合,然后求指定时间段的补集,最终将结果中连续的时间放到一起,返回开始结束时间的列表 * @param startDay 指定时间段的开始时间 比如1月1日 * @param endDay 指定时间段的结束时间 比如1月30日 * @param usedDay 指定的已用的时间段 比如[1-3到1-6],[1-18到1-20],[1-25到2-6] * @return 返回[1-1到1-2],[1-7到1-17],[1-21到2-24] */ pub ...
一、伪共享和CPU的缓存机制有关 二、cpu缓存结构 三、缓存是以行为单位存在在cache中的,通常而言,一个缓存行大概是64byte。对于java类而言,一个javalong的对象长度为8字节,因此一个缓存行就是8个long的长度。 四、对于位于同一个缓存行上的两个变量,被不同线程操作,会引起竞争消耗 五、解决方式 1、使用注解@sun.misc.Contended,且在jvm启动参数增加-XX:-RestrictContended 2、定义多个无效变量,用来填充隔离这两个变量 volatile long x; //这些变量的存在,会使x, ...
一、伪共享和CPU的缓存机制有关 二、cpu缓存结构 三、缓存是以行为单位存在在cache中的,通常而言,一个缓存行大概是64byte。对于java类而言,一个javalong的对象长度为8字节,因此一个缓存行就是8个long的长度。 四、对于位于同一个缓存行上的两个变量,被不同线程操作,会引起竞争消耗 五、解决方式 1、使用注解@sun.misc.Contended,且在jvm启动参数增加-XX:-RestrictContended 2、定义多个无效变量,用来填充隔离这两个变量 volatile long x; //这些变量的存在,会使x, ...
# 高效的JDK多任务执行框架 在并发编程中,我们经常用到非阻塞的模型,在之前的多线程的三种实现中,不管是继承Thread类还是实现Runnable接口,都无法保证获取到之前的执行结果。通过实现Callback接口,并用Future可以来接收多 ...
以下内容来自文章: https://blog.csdn.net/wangbiao007/article/details/53183764 FactoryBean是一个接口,当在IOC容器中的Bean实现了FactoryBean后,通过getBean(String BeanName)获取到的Bean对象并不是FactoryBean的实现类对象,而是这个实现类中的getObject() ...
一、查看是否关闭 SIP   1、查看 SIP 状态:csrutil status   2、关闭 SIP:     关机 -> 关机后,按住 command + R 直到开机画面显示到进度条 -> 顶部菜单栏:实用工具 -> 终端命令输入:csrutil disable 二、设置挂载:sudo mount -uw / 三、设置权限:chmod 777 具体文件 四、上述设置会在重启失效,可以通过设置软连接解决。
Map<Integer,Integer> a = new HashMap<Integer,Integer>();        a.put(3,3);        a.put(18,18);        a.put(33,33);        a.put(48,48);        a.put(71,71);        a.put(86,86);        a.put(101,101);        a.put(116,116);        a.put(138,138);        a.put(155,155);        a.put(16 ...
说一种情况:比如我的订单,缓存是按照pin做key来做的突然加一个过滤条件,比如轻松购订单不显示了,有以下几种解决方式1、数据库条件改一下,缓存查询时简单按过滤一下,问题是,分页1-10页,可能第一页有3条,所以返回前端的就是7条 缺点:不严谨,并且要看前端分页是怎样判断最后一页的,如果是根据“当前页条数”<“每页固定条数”就算最后一页,那这种做法不可取2、还是简单过滤,如果发现当前页不足10条,继续查,补足 缺点:处理复杂,并且有可能影响一点性能3、强制缓存失效,重新放到缓存中,要做标记,比如pin:XXXX已经做过强制更新这种 具体做法,建立缓存标记位(增加一份新缓存,但空间 ...
import org.apache.log4j.Level;import org.apache.log4j.LogManager;import org.slf4j.Logger;import org.slf4j.LoggerFactory;     private void updateLogLevel(String levelString) {        if (StringUtils.isNotBlank(levelString) && !"null".equalsIgnoreCase(levelString)) {            En ...
小乌龟的方式 1、show log,找到想要还原的历史节点 2、右键reset “分支” to this 3、revert掉需要commit的代码 4、push(选中force,否则提交不上)   命令的方式: 查看git的提交版本和id 拿到需要恢复的版本号     命令:git log       2. 恢复到指定版本     命令:git reset --hard 44f994dd8fc1e10c9ed557824cae50d1586d0cb3   //后面这一大串44f994dd8fc1e10c9ed557824cae50d1586d0cb3就是版本id   ...
一、杂 apt-get(Advanced Package Tool),主要用于自动从互联网的软件仓库中搜索、安装、升级、卸载软件或操作系统sudo使一般用户取代超级用户作为管理帐号,不需要知道管理员密码RPM是RedHat Package Manager(RedHat软件包管理工具)类似Windows里面的“添加/删除程序”wget 下载工具、rpm应用管理安装、apt-get:ubuntu下的软件安装、yum:redhat,centos下的软件安装方式df -行号:vim set nu下载文件:sz 文件名查看端口:ps -ef解压:jar -xvf project.war   二、 ...
type显示的是访问类型,是较为重要的一个指标,结果值从好到坏依次是: system > const > eq_ref > ref > fulltext > ref_or_null > index_merge > unique_subquery > index_subquery > range > index > ALL 一般来说,得保证查询至少达到range级别,最好能达到ref。   参考链接:http://database.51cto.com/art/201108/284783.htm
命令:ps -aux 列stat的值有很多如:S,Ss,S<,SN,Sl,Ss等,示意如下: D    不可中断     Uninterruptible sleep (usually IO)    R    正在运行,或在队列中的进程    S    处于休眠状态    T    停止或被追踪    Z    僵尸进程    W    进入内存交换(从内核2.6开始无效)    X    死掉的进程    <    高优先级    N    低优先级    L    有些页被锁进内存    s    包含子进程    +    位于后台的进程组;    l    多线程,克隆 ...
 说一下这篇文章的目的,很重要的一点,是针对上一篇文章中最后提到的 1、消除不恰当的依赖 2、通过其它方式依赖,可参考倚赖倒置原则 那我们就从如何通过其它依赖的方法,解决类的依赖关系(需要强调的是,要想完全 ...
Global site tag (gtag.js) - Google Analytics