摘要:
线性表有两种存储结构: 顺序存储结构 用一段地址连续的存储单元依次存储线性表的数据元素 当用数组来实现线性表的顺序存储结构时,每个元素分配地址长度是固定的,根据元素的位置我们可以很容易的计算出元素的地址。所以,顺序表的存取时间复杂度是0(1)的。 2. 链式存储结构 阅读全文
摘要:
面试总结 [TOC] java基础问题 集合 list、set、map的区别 说说HashMap,put方法、get方法、以及扩容机制 arrylist、linklist的区别 hashset、treeset的区别 HashMap、hashTable的区别 说说treeMap concurrentH 阅读全文
摘要:
线程是操作系统资源调度的基本单位,一个进程可以产生多个线程,进程有独立的地址空间,线程自己不拥有系统资源,一个进程中的多个线程共享进程的内存空间,进程之间切换开销大,线程间的切换开销小。 进程属于程序,线程属于进程。进程结束后它拥有的所有线程都将销毁,而线程的结束不会影响同个进程中的其他线程。 进程 阅读全文
摘要:
启动类加载器(Bootstrap Class Loader),加载 jre/lib 下面的 jar 文件,如 rt.jar。 修改核心类库可以使用下面的命令: 我们可以使用public final ClassLoader getParent();来获取父类加载器,但是在通常的JDK/JRE实现中,扩 阅读全文
摘要:
1. springboot可以简化spring应用的初始搭建以及开发过程,在springboot里头约定大于配置(即使用默认配置的方式,减少开发人员需要定义样板化的配置,减少了配置文件的使用,当存在特殊需求时候,自定义下配置即可),去繁从简,快速创建能够独立运行的spring项目与主流框架的集成。 阅读全文
摘要:
列表 list 创建列表 []、list() :创建一个空列表 1 list.append(obj) 在列表末尾添加新的对象 2 list.count(obj) 统计某个元素在列表中出现的次数 3 list.extend(seq) 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表) 阅读全文
摘要:
对象存货判定算法 引用计数法 给每个对象添加一个引用计数器,每当有一个地方引用它时,计数器家1,;当引用失效时,计数器减1,;任何时刻计数器为0的对象,则该对象可被回收。 引用计数会存在一个问题,它无法解决对象循环引用的问题。 可达性分析算法 通过一系列GC ROOT对象作为起点,向下搜索,搜索过的 阅读全文
摘要:
首先java的跨平台不是指java语言本身具有跨平台特性,而是不同平台上都有可以让java运行环境,这个运行环境就是jre。JRE由JVM和其目录下类库组成,JVM 是 Java 平台的基础,是整个java实现跨平台的最核心的部分,所有的Java程序首先会编译成.class类文件字节码,字节码不能直 阅读全文
摘要:
jdk7的put过程 1. 先判断key是否为null,如为null则调用putfornullkey(value)方法,在数组的表头位置插入或覆盖null kye的值; 2. 根据键值key计算hash值得到插入的数组索引; 3. 若该索引位置有值,则遍历该处的链表,若链表操作相同key,则覆盖并返 阅读全文
摘要:
java内存模型(JMM)是一种规范,定义了程序中变量的访问规则,目的是解决由于多线程通过共享内存进行通信时,由工作内存数据不一致、编译器指令重排序、处理器优化等带来的原子性、有序性和缓存一致性等问题。 在多核CPU的环境下,多线程分别在不同的核心上执行,当多个线程访问进程中的某个共享内存时,每个核 阅读全文