2018年1月7日

linux网络编程IO模型

摘要: 同步与异步: 同步就是一个任务的完成需要依赖另外一个任务时,只有等待被依赖的任务完成后,依赖的任务才能算完成。 异步是不需要等待被依赖的任务完成,只是通知被依赖的任务要完成什么工作,依赖的任务也立即执行,只要自己完成了整个任务就算完成了,异步一般使用状态、通知和回调。 阻塞与非阻塞 阻塞是指调用结果 阅读全文

posted @ 2018-01-07 22:04 LG一直在努力 阅读(325) 评论(0) 推荐(0) 编辑

2017年12月28日

网络中两台主机通信的完整过程

摘要: 主机A和主机B通信报文的转发过程 1、主机A和主机B在同一个二层网络中,直接走二层交换 主机A查看自己的ARP缓存,检查是否有主机B的IP到MAC的映射,如果有映射,构造报文,目的IP为主机B的IP,源IP为主机A的IP,目的MAC为主机B的MAC,源MAC为主机A的MAC,将报文发送给交换机C,交换机C进行MAC地址表学习,将主机A的MAC和报文入端口号记录下来,然后交换机C查看自己的... 阅读全文

posted @ 2017-12-28 19:57 LG一直在努力 阅读(9346) 评论(0) 推荐(0) 编辑

2017年7月19日

类加载机制

摘要: 类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Using)和卸载(Unloading),其中验证、准备和解析3个部分统称为连接(Linking)。加载、验证、准备、初始化和卸载这5个阶段的顺序是确定的,... 阅读全文

posted @ 2017-07-19 11:49 LG一直在努力 阅读(163) 评论(0) 推荐(0) 编辑

2017年7月17日

Java垃圾回收

摘要: 如何判断一个对象是可回收的? Java虚拟机采用可达性分析算法来判断对象是否存活。算法基本思想:通过一系列称为“GC Roots”的对象作为起点,从这些节点开始向下搜索,搜索锁走过的路径称为引用链,当一个对象到GC Roots没有任何引用链相连时,证明此对象是不可用的,将会被判定为可回收对象。 可作 阅读全文

posted @ 2017-07-17 22:53 LG一直在努力 阅读(855) 评论(0) 推荐(0) 编辑

2017年7月15日

Java内存区域

摘要: 方法区:用于存放已被虚拟机加载的类信息、常量、静态变量、编译器编译后的代码等数据。 运行时常量池:是方法区的一部分,用于存放编译器生成的各种字面量和符号引用。 当方法区无法满足内存分配需求时,会抛出OutOfMemoryError异常。 方法区是线程共享的。堆:在虚拟机启动时创建,用于存放对象实例和数组元素。 如果堆中没有内存完成实例分配,并且堆也无法扩展时,会抛出OutO... 阅读全文

posted @ 2017-07-15 16:45 LG一直在努力 阅读(178) 评论(0) 推荐(0) 编辑

2017年7月13日

高并发

摘要: synchonrized和lock的区别 synchronized:在需要同步的对象中加入此控制,synchronized可以加在方法上,也可以加在特定代码块中,括号中表示需要锁的对象。是原生语法层面的互斥锁。lock:需要显示指定起始位置和终止位置。一般使用ReentrantLock类做为锁,多个线程中必须要使用一个ReentrantLock类做为对象才能保证锁的生效。且在加锁和解锁处需要通过l... 阅读全文

posted @ 2017-07-13 20:37 LG一直在努力 阅读(203) 评论(0) 推荐(0) 编辑

2017年7月10日

集合框架

摘要: 基于jdk1.7ArrayList和LinkedList的区别 ArrayList底层实现是可变大小的数组,在内存是一片连续的空间,支持快速随机访问,时间复杂度O(1),插入和删除一个元素的时间复杂度是O(n)。ArrayList默认初始容量为10,每次添加元素前会检查容量,如果容量不足,则扩容至1.5倍,并将原有元素复制到新数组,并指向新数组。 LinkedList底层实现是双向链表... 阅读全文

posted @ 2017-07-10 11:38 LG一直在努力 阅读(218) 评论(0) 推荐(0) 编辑

2017年7月7日

面向对象基础概念

摘要: 面向对象3大特点 封装:封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。 继承:继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。通过继承创建的新类称为“子类”或“派生类”,被继承的类称为“基类”、“父类”或“超类”。 多态:多态是同一个行为具有多个不同表现形式... 阅读全文

posted @ 2017-07-07 14:44 LG一直在努力 阅读(173) 评论(0) 推荐(0) 编辑

2016年1月14日

java synchronized详解

摘要: synchronized是Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。 不适用synchronized修饰代码的情况: public class SynchornizedTest implements Runnable{ publi 阅读全文

posted @ 2016-01-14 09:39 LG一直在努力 阅读(295) 评论(0) 推荐(0) 编辑

2016年1月13日

java使用DOM操作XML

摘要: XML DOM简介 XML DOM 是用于获取、更改、添加或删除 XML 元素的标准。 XML 文档中的每个成分都是一个节点。 DOM 是这样规定的: 整个文档是一个文档节点 每个 XML 标签是一个元素节点 包含在 XML 元素中的文本是文本节点 每一个 XML 属性是一个属性节点 注释属于注释节 阅读全文

posted @ 2016-01-13 09:41 LG一直在努力 阅读(651) 评论(0) 推荐(0) 编辑

导航