08 2019 档案
摘要:LockSupport是一个线程阻塞工具类,所有的方法都是静态方法,可以让线程在任意位置阻塞,当然阻塞之后肯定得有唤醒的方法。主要有两类方法:park和unpark。 为什么叫park呢,park英文意思为停车。我们如果把Thread看成一辆车的话,park就是让车停下,unpark就是让车启动然后
阅读全文
摘要:一、常用 git 命令 1.1 git clone <url> [<directory>] 从远程库 clone 代码到本地,directory 用于指定一个新目录名 1.2 git status 检查本地状态,可以查看当前所在分支、新增或被修改的文件 1.3 git checkout <file>
阅读全文
摘要:Arrays在float/long/int/char等进行排序时,使用的算法是快速排序;而对于Object数组排序则是使用的是归并排序。 LegacyMergeSort.userRequested大致意思是“用户请求传统归并排序”的意思,通过System.setProperty("java.util
阅读全文
摘要:java.util.Collections,是不属于java的集合框架的,它是集合类的一个工具类/帮助类。此类不能被实例化, 服务于java的Collection框架。 https://www.jianshu.com/p/0494cce4312a https://www.cnblogs.com/Ea
阅读全文
摘要:1、配置准备:下载Spring和commons-logging的jar包2、新建Java工程,将jar包导入工程中 或maven加载jar,spring的依赖共有以下四个方面: 1)spring核心依赖spring-core、spring-beans、spring-context 2)spring
阅读全文
摘要:一、设计模式的分类 总体来说设计模式分为三大类: 创建型模式,共五种: 工厂方法模式 抽象工厂模式 单例模式 建造者模式 原型模式。 结构型模式,共七种: 适配器模式 装饰器模式 代理模式 外观模式 桥接模式 组合模式 享元模式。 行为型模式,共十一种: 策略模式 模板方法模式 观察者模式 迭代子模
阅读全文
摘要:https://blog.csdn.net/a745233700/article/details/80959716 https://blog.csdn.net/qq_36520235/article/details/88257749 Spring Ioc IOC(控制反转),将类的创建和依赖关系写配
阅读全文
摘要:转自:https://my.oschina.net/zhangxufeng/blog/3017521 Full GC次数过多 首先我们可以使用top命令查看系统CPU的占用情况 top - 08:31:10 up 30 min, 0 users, load average: 0.73, 0.58,
阅读全文
摘要:在并发编程中,有时候需要使用线程安全的队列,如果要实现一个线程安全的队列有两种实现方式:阻塞算法、非阻塞算法。 使用阻塞算法的队列可以用一个锁(出入队列用同一把锁),或两个锁(入队和出队用不同的锁),非阻塞的实现方式则可以用循环CAS的方式实现。 一 非阻塞方式实现线程安全的队列 Concurren
阅读全文
摘要:Executor框架的主要成员:ThreadPoolExecutor、ScheduledThreadPoolExecutor、Future接口、runnable接口、Callable接口和Executors。 ThreadPoolExecutor 通常使用工厂类executors来创建。execut
阅读全文
摘要:IO 与NIO https://www.jb51.net/article/50621.htm BIO 与NIO https://mp.weixin.qq.com/s/lBg2YAunczH1DUjBvIurhQ Java BIO : 同步并阻塞,服务器实现模式为一个连接一个线程,即客户端有连接请求时
阅读全文
摘要:List , Set, Map都是接口,前两个继承至Collection接口,Map为独立接口Set下有HashSet,LinkedHashSet,TreeSetList下有ArrayList,Vector,LinkedListMap下有Hashtable,LinkedHashMap,HashMap
阅读全文
摘要:socket概述 我们知道进程通信的方法有管道、命名管道、信号、消息队列、共享内存、信号量,这些方法都要求通信的两个进程位于同一个主机。但是如果通信双方不在同一个主机又该如何进行通信呢?使用tcp/ip协议族就能达到我们想要的效果。但是,当我们使用不同的协议进行通信时就得使用不同的接口,还得处理不同
阅读全文
摘要:一部动画电影,背后有上千人的努力。几秒钟的特效,一个画面,可能要几个月的时间完成,你必须认真对待每一帧,十年磨一剑,把一件事,一个工作,一个任务,深究、完善到极致,你才可能拔尖出众,必须很努力才优秀。
阅读全文
摘要:转自:https://blog.csdn.net/sunfeizhi/article/details/51926396 左边的整个区域表示一个Zookeeper集群,locker是Zookeeper的一个持久节点,node_1、node_2、node_3是locker这个持久节点下面的临时顺序节点。
阅读全文
摘要:ThreadLocal,即线程本地变量。如果你创建了一个ThreadLocal变量,那么访问这个变量的每个线程都会有这个变量的一个本地拷贝,多个线程操作这个变量的时候,实际是操作自己本地内存里面的变量,从而起到线程隔离的作用,避免了线程安全问题。 ThreadLocal内存结构图 当多个线程同时读写
阅读全文
摘要:应用场景-集合覆盖问题 假设存在下面需要付费的广播台,以及广播台信号可以覆盖的地区。 如何选择最少的广播台,让所有的地区都可以接收到信号。 贪心算法介绍 1)贪婪算法(贪心算法)是指在对问题进行求解时,在每一步选择中都采取最好或者最优(即最有利)的选择,从而希望能够导致结果是最好或者最优的算法。 2
阅读全文
摘要:KMP算法介绍 KMP是一个解决模式串在文本串是否出现过,如果出现过,最早出现的位置的经典算法。Knuth-Morris-Pratt 字符串查找算法,简称为 “KMP算法”,常用于在一个文本串S内查找一个模式串P 的出现位置,这个算法由Donald Knuth、Vaughan Pratt、James
阅读全文
摘要:future 模式 生产者-消费者模式 生产者-消费者模式是一个经典的多线程设计模式。它为多线程间的协作提供了良好的解决方案。 在生产者-消费者模式中,通常由两类线程,即若干个生产者线程和若干个消费者线程。生产者线 程负责提交用户请求,消费者线程则负责具体处理生产者提交的任务。生产者和消费者之间则通
阅读全文
摘要:https://blog.csdn.net/zhangjg_blog/article/details/18319521 什么是不可变对象?众所周知, 在Java中, String类是不可变的。那么到底什么是不可变的对象呢? 可以这样认为:如果一个对象,在它创建完成之后,不能再改变它的状态,那么这个对
阅读全文
摘要:临界区 – 临界区用来表示一种公共资源或者说是共享数据,可以被多个线程使用。但是每一次,只能有一个线程 使用它,一旦临界区资源被占用,其他线程要想使用这个资源,就必须等待。 阻塞(Blocking)和非阻塞(Non-Blocking) – 阻塞和非阻塞通常用来形容多线程间的相互影响。阻塞,当一个线程
阅读全文