随记
Iovems
这个作者很懒,什么都没留下…
展开
-
1.二叉树树的层次遍历
当对二叉树进行层次遍历的时候,如何才能对不同层次的节点做隔离,主要有三个办法:方法一:数组长度做隔离获取当前的队列的长度length,一次只遍历length个节点,后续加入的元素在下一次循环遍历queue = [node] // 新建一个队列,并将根节点放入队列while queue.lengh != 0 length = queue.length // 获取当前队列的长度 ...原创 2018-03-13 10:12:24 · 463 阅读 · 0 评论 -
进程和线程
进程是对正在运行的程序的一个抽象;顺序进程(简称,进程)。进程进程模型 一个进程就是一个正在执行的程序的实例,包括程序计数器,寄存器和变量的当前值; 假设只有一个CPU,那么就只有一个物理程序计数器,每个进程被执行时,进程的程序计数器被装入物理程序计数器,执行结束(或暂停)时,物理程序计数器被保存在该进程的程序计数器中(在内存中);创建进程 有4种情况下,会去创建进...原创 2018-05-21 19:39:51 · 1116 阅读 · 0 评论 -
5.数据流Stream(一)
前言 Stream与Java IO的InputStream和OutputStream是完全不一样的,数据流Stream是单体(Monad),并在Java 8函数式编程起着重要的作用。 在函数式编程中,单体是一种结构,表示为步骤序列的计算过程。单体结构的类型与它对链式操作,或嵌套函数的含义相关。...原创 2018-05-21 19:39:26 · 1234 阅读 · 0 评论 -
2.实战:OutOfMemoryError(OOM)异常
前言 除了程序计数器外,虚拟机内存的其他运行时区域都有发生OutOfMemoryError(OOM)异常的可能; 本文工作分两部分:1.通过代码验证各个运行时区域存储的内容;2.遇到内存溢出异常的时候,如何根据异常的信息快速判断是哪个区域的内存溢出,知道什么样的代码可能会导致这些区域内存溢出,以及出现这些异常后该如何处理;Java堆溢出 堆用来存储对象实例,只...原创 2018-05-21 19:39:10 · 1538 阅读 · 0 评论 -
2.Context的创建
Spring Boot的启动类@SpringBootApplication@ComponentScan(basePackages = {"com"})public class SpringSourceApplication { public static void main(String[] args) { ApplicationContext ctx = Spring...原创 2018-05-21 19:38:56 · 1084 阅读 · 0 评论 -
1.JDK源码分析-ArrayList<E>
public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable{ private static final long serialVersionUID = 8683452...原创 2018-04-03 20:58:57 · 900 阅读 · 0 评论 -
1.Linux网络I/O模型概述
Linux网络I/O模型概述 Linux内核将所有的外部设备都看成一个文件来操作,对一个文件的读写操作会调用内核提供的系统命令,返回一个file descriptor(fd,文件描述符)。 而对一个socket的读写也会有相应的描述符,称为socketfd(socket描述符),描述符就是一个数字,它指向内核中的一个结构体(文件路径,数据区等属性)。 UNIX提供...原创 2018-04-05 23:58:35 · 1270 阅读 · 0 评论 -
欢迎使用CSDN-markdown编辑器111
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I...转载 2018-04-10 11:48:57 · 1060 阅读 · 0 评论 -
10.JDK并发包-同步控制之读写锁(ReadWriteLock)
读写分离锁可以有效地减少锁竞争,以提高系统性能。原创 2018-04-03 20:59:08 · 907 阅读 · 0 评论 -
2.传统的BIO编程
网络编程的基本模型是Client/Server模型,也就是两个进程之间进行通信。其中服务端提供位置信息(绑定的IP地址和监听端口),客户端通过连接操作向服务器监听的地址发起连接请求,通过三次握手建立连接,如果连接成功,双方就可以通过网络套接字(Socket)进行通信。...原创 2018-04-06 14:13:42 · 1113 阅读 · 0 评论 -
3.伪异步I/O编程
1111原创 2018-04-06 14:14:17 · 1041 阅读 · 0 评论 -
4.NIO编程
前言 之前老的I/O类库是阻塞I/O,NIO(New I/O)是非阻塞I/O,所以我更喜欢称NIO为非阻塞I/O(Non-block I/O)。 与Socket类和ServerSocket类相对应,NIO提供了SocketChannel和ServerSocketChannel两种不同的套接字通道实现。这两种新增的通道都支持阻塞和非阻塞两种模式。 阻...原创 2018-04-06 14:18:43 · 1038 阅读 · 0 评论 -
计算机操作系统
概述操作系统基本特征并发 并发性是指宏观上在一段时间内能同时运行多个程序,而并行性则指同一时刻能运行多个指令; 并行需要硬件支持,如多流水线或者多处理器; 操作系统通过引入进程和线程,使得程序能够并发运行;共享 共享是指系统中的资源可以供多个并发进程共同使用; 有两种共享方式:互斥共享和同时共享; 互斥共享的资源称为临界资...原创 2018-05-21 19:40:04 · 1101 阅读 · 0 评论