数据结构 一、栈 1.1定义 下压栈(简称栈)是一种基于后进先出(LIFO)策略的集合类型。1.2API1.3实现1.3.1数组实现可动态调整大小的栈实现(数组方式):当栈容量满时,采用遍历数组的方式进行扩容,默认调整为原容量的2倍。当栈容量变成1/4时,默认调整为原容量的1/2。
算法导论 一、算法基础 插入排序 插入排序:类似于抓扑克牌,从牌堆中拿牌,跟手上已经排序的排作比较,插入合适的位置 时间复杂度O(n)-O(n2)
Java并发编程的艺术(上) 一、Java并发机制的底层实现原理 1.1volatile的定义与实现原理 Java编程语言允许线程访问共享变量,volatile确保共享变量能被准确和一致地更新; 实现原理:①Lock前缀指令会引起处理器缓存回写到内存;②一个处理器地缓存回写到内存会导致其他处理器地缓存无效
内存溢出 一、问题表现凌晨6点半,线上服务器内存报警! 二、排错因为报警第一时间未能及时查看服务器,需要注意时间差。首先执行top命令,然后shift+m,按内存进行排序:如果是第一时间查看,能够发现内存占用较高的程序,因为隔了一顿时间,只能对内存占用前几的项目进行排查;
Java自动内存管理机制 一、Java内存区域与内存溢出异常 1.1运行时数据区域 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干不同的数据区域。 1.1.1程序计数器 程序计数器是一块较小的内存,可以看作是当前线程所执行的字节码的行号指示器;
Git操作集锦一、回滚版本通过两步实现:①回滚本地代码;②回滚远程代码;1.1回滚本地代码右键项目,选择git—show history,选择需要回滚的版本,右键复制版本号:右键项目,选择git—repository—reset headReset Type选择hard,To Commit粘贴回退的
Java多线程编程核心技术二 四、Lock的使用 4.1使用ReentrantLock类 4.2公平锁和非公平锁
Java多线程编程核心技术 一、Java多线程技能 1.1停止线程在Java中有以下3种方法可以终止正在运行的线程