Fork me on GitHub

随笔分类 -  备战阿里

摘要:附一张图方便理解,一个类的执行过程 类的加载过程,简明的来说 类装饰器就是寻找类的字节码文件并构造出类在JVM内部表示的对象组件。在Java中,类装载器把一个类装入JVM中,要经过以下步骤: 类装载工作由ClassLoader及其子类负责,ClassLoader是一个重要的Java执行时系统组件,它 阅读全文
posted @ 2016-06-30 21:56 郑斌blog 阅读(3852) 评论(0) 推荐(0) 编辑
摘要:虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。 在Java语言中,类型的加载、连接和初始化过程都是在程序运行期间完成的,这种策略虽然会令类加载时稍微增加一些性能开销,但是会为Java应用程序提 阅读全文
posted @ 2016-06-30 21:49 郑斌blog 阅读(680) 评论(0) 推荐(0) 编辑
摘要:Java学了有两年了,要让详细说说JRE、JDK、JVM,确实不能脱口而出。下面在别人博客的基础上,总结一下。 JVM(Java Virtual Machine 即Java虚拟机) 它是整个Java实现跨平台的核心部分。所有的Java程序会首先被编译为.class的类文件,这种类文件可以在虚拟机执行 阅读全文
posted @ 2016-06-30 17:51 郑斌blog 阅读(531) 评论(0) 推荐(0) 编辑
摘要:CPU主要由什么构成? CPU包括运算逻辑部件、寄存器部件和控制部件等。 逻辑部件:可以执行点或浮点算术远算操作、移位操作以及逻辑操作,也可以执行地址运算和转换。 寄存器部件:存储程序、数据和各种信号、命令等信息,并在需要时提供这些信息。 控制部件:负责对指令译码,并且发出为完成每条指令所要执行的各 阅读全文
posted @ 2016-06-28 11:06 郑斌blog 阅读(669) 评论(0) 推荐(1) 编辑
摘要:啥是泛型? 泛型(generic)是指参数化类型的能力。可以定义带泛型类型的类或方法,随后编译器会用具体的类型来代替它。 举个栗子 上述代码在编译期没有问题,但在运行期,将会报错。就是因为List的add方法的参数为Object,所以如果在程序员在不知道List类型时,通过强转获值,这时就会报错了。 阅读全文
posted @ 2016-06-28 10:48 郑斌blog 阅读(5114) 评论(3) 推荐(2) 编辑
摘要:线程和进程的区别 1)调度:在传统的操作系统中,拥有资源的基本单位和独立调度、分派的基本单位都是进程。 而引入线程的操作系统,则把线程作为调度和分派的基本单位,而进程作为资源拥有的基本单位。 2)并发性:在引入线程的操作系统中,进程之间可并发执行,在一个进程中的多个线程亦可并发执行。 3)拥有资源: 阅读全文
posted @ 2016-06-27 23:40 郑斌blog 阅读(661) 评论(0) 推荐(0) 编辑
摘要:两种模式的特点 装饰模式: 在不改变接口的前提下,动态扩展对象的访问。 动态继承,让类具有在运行期改变行为的能力。 装饰模式,突出的是运行期增加行为,这和继承是不同的,继承是在编译期增加行为。 强调:增强 代理模式: 在不改变接口的前提下,控制对象的访问。 1.从封装的角度讲,是为了解决类与类之间相 阅读全文
posted @ 2016-06-26 21:08 郑斌blog 阅读(11623) 评论(0) 推荐(3) 编辑
摘要:一、引用计数法 给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1,当引用失效时,计数器值就减1,任何时刻计数器为0的对象就是不可能再被使用的。 但是它很难解决对象之间相互循环引用的问题。 比如说两个对象互相引用对方,导致它们的引用计数都不为0,于是引用计数算法无法通知GC收集器回收 阅读全文
posted @ 2016-06-25 23:39 郑斌blog 阅读(787) 评论(0) 推荐(0) 编辑
摘要:1.标记-清除算法 最基础的收集算法,如其名,算法为“标记”和“清除”两个阶段:首先标记出所有需要回收的对象,在标记完成后统一回收所有被标记的对象。 两个不足: 1)效率问题,标记和清除两个过程的效率多不高; 2)空间问题,标记清除之后会产生大量不连续的内存碎片,空间碎片太多可能会导致以后在程序运行 阅读全文
posted @ 2016-06-25 23:36 郑斌blog 阅读(810) 评论(2) 推荐(0) 编辑
摘要:在Java虚拟机规范中将Java运行时数据划分为6种,分别为: PC寄存器(程序计数器) Java栈 堆 方法区 运行时常量池 本地方法栈 一、PC寄存器(程序计数器) PC寄存器(Program Counter Register)严格来说是一个数据结构,它用于保存当前正常执行的程序的内存地址。 线 阅读全文
posted @ 2016-06-25 22:18 郑斌blog 阅读(2006) 评论(0) 推荐(1) 编辑
摘要:首先,写好Java代码,保存到硬盘中。然后在命令行中输入: 此时,这个Java类文件将编译成字节码(.class)文件。如果用Eclipse等IDE开发工具,则当你保存代码的时候,这些开发工具已经完成了上述的手动编译工作,所以可以在对应的目录看到class文件。此时的class文件依然保存在硬盘中保 阅读全文
posted @ 2016-06-25 21:30 郑斌blog 阅读(396) 评论(0) 推荐(0) 编辑
摘要:三次握手:建立TCP连接 连接建立过程: B的TCP服务器进程先创建传输控制块TCB(存储了每一个连接中的一些重要信息,如:TCP连接表,到发送和接收缓存的指针,到重传队列的指针,当前的发送和接收序号,等),准备接受客户进程的连接请求。然后服务器进程就处于LISTEN(收听)状态,等待客户的连接请求 阅读全文
posted @ 2016-06-22 17:53 郑斌blog 阅读(1475) 评论(0) 推荐(1) 编辑
摘要:简述 每个万维网网点都有一个服务器进程,它不断地监听TCP的端口80,以便发现是否有浏览器向它发出连接建立请求。一旦监听到连接建立请求并建立了TCP连接之后,浏览器就向万维网服务器发出浏览某个页面的请求,服务器接着就返回所请求的页面作为响应。最后,TCP连接就被释放了。 HTTP协议的底层传输默认使 阅读全文
posted @ 2016-06-22 16:06 郑斌blog 阅读(608) 评论(0) 推荐(0) 编辑
摘要:TCP:传输控制协议 TCP特点: 1)TCP是面向连接的运输层协议。所以,应用程序在使用TCP协议之前,必须先建立TCP连接。在传送数据完毕后,必须释放已经建立的TCP连接。 2)每一条TCP连接只能有两个端点,每一条TCP连接只能是点对点的。 3)TCP提供可靠交付的服务。通过TCP连接传送的数 阅读全文
posted @ 2016-06-21 17:34 郑斌blog 阅读(597) 评论(0) 推荐(0) 编辑
摘要:一、OSI七层协议体系结构域TCP/IP四层体系结构对比 ISO/OSI模型,即开放式通信系统互联参考模型(Open System Interconnection Reference Model),是国际标准化组织(ISO)提出的一个试图使各种计算机在世界范围内互连为网络的标准框架,简称OSI。 T 阅读全文
posted @ 2016-06-21 16:58 郑斌blog 阅读(1038) 评论(0) 推荐(0) 编辑
摘要:关于'<<'与'>>'操作: m<<n,表示m二进制,右边尾部加0; m>>n,表示m二进制,右边尾部去掉1位; m>>>n,表示m二进制,忽略其符号位,从左至右,去掉最后的n位; 不存在'<<<'; 阅读全文
posted @ 2016-06-19 14:58 郑斌blog 阅读(635) 评论(0) 推荐(0) 编辑
摘要:Servlet 有以下四个阶段: 1.加载和实例化 2.初始化 3.请求处理 4.服务终止 也可以概括为: *注意 Struts2 1.流程图: 2.流程叙述: 详情链接:struts2执行原理(执行流程) SpringMVC 1.流程图: 2.流程描述: 也可以说: Struts2与SpringM 阅读全文
posted @ 2016-06-18 17:16 郑斌blog 阅读(4008) 评论(0) 推荐(0) 编辑
摘要:1.final 2.finally 3.finalize 阅读全文
posted @ 2016-06-15 16:28 郑斌blog 阅读(545) 评论(0) 推荐(0) 编辑
摘要:static this final abstract instanceof super 阅读全文
posted @ 2016-06-15 14:41 郑斌blog 阅读(358) 评论(0) 推荐(0) 编辑
摘要:Java 关键字(如abstract)【详解】 String【相关面试题】 String、StringBuffer、StringBuilder区别 String中有没有使一个字符串反转的方法 线程的实现方式【多线程面试题】【多线程总结】 JVM GC原理(垃圾回收器的基本原理是什么?) 编译时的一些 阅读全文
posted @ 2016-06-13 18:00 郑斌blog 阅读(984) 评论(0) 推荐(0) 编辑