摘要:57.面向对象软件开发的优点 代码开发模块化,更易于维护 代码复用 增强代码的可靠性和灵活性 增强代码的可理解性 面向对象编程有很多重要的特性,比如:封装,继承,多态和抽象 57.面向对象软件开发的优点 58.封装 封装给对象提供了隐藏内部特性和代码的能力.对象提供一些被其他对象访问的方法来改变它的
阅读全文
摘要:41.Servlet Servlet 是处理客户端请求并产生动态网页内容的Java类.Servlet主要是用来处理或者存储HTML表单提交的数据,产生动态内容,在无状态的HTTP协议下管理状态信息.所有的Servlet都必须要实现的核心接口是java.servlet.Servlet.每一个Servl
阅读全文
摘要:访问标志 在前面分析了 class文件的魔数,次版本号,主版本号,常量池入口,常量池,那么在常量池结束后,紧接着的两个字节代表访问标志(access_flages).这个标志用于识别一些类或者接口层次的访问信息,包括:这个class是类还是接口,是否定义为public类型,是否定义为abstract
阅读全文
摘要:37.JDBC JDBC是允许用户在不同数据库之间做选择的一个抽象层.JDBC允许开发者用JAVA写数据库引用程序,而不需要关心底层特定数据库的细节. 37.JDBC JDBC是允许用户在不同数据库之间做选择的一个抽象层.JDBC允许开发者用JAVA写数据库引用程序,而不需要关心底层特定数据库的细节
阅读全文
摘要:27.Java中垃圾回收的目的及回收的时机 垃圾回收的目的是识别并且丢弃不再使用的对象来释放和重用资源. 如果对象的引用被置为null,垃圾收集器不会立即释放对象占用的内存. 什么时候进行垃圾回收,主要取决于JVM.可以参考 http://www.cnblogs.com/lrh-xl/p/52924
阅读全文
摘要:在.java文件,讲过javac编译后产生的 .class文件中,头4个字节表示的是魔数,接着魔数后面的第5,6个字节存储的是次版本号,第7,8个字节存储的主板本号.那么再接下来的就是表示常量池入口了. 在.java文件,讲过javac编译后产生的 .class文件中,头4个字节表示的是魔数,接着魔
阅读全文
摘要:恢复内容开始 14.Java集合类框架的基本接口 集合类接口指定了一组叫做元素的对象.集合类接口的每一种具体的实现类都可以选择以它自己的方式对元素进行保存和排序.有的集合类允许重复的键,有的不允许. Java集合提供了一套设计良好的支持对一组对象进行操作的接口和类.Java集合类里面最基本的接口有:
阅读全文
摘要:linux内核链表的定义(定义了双向链表,不含数据域) 定义在 /linux-source-3.13.0/include/linux/types.h 头文件中. 1 struct list_head { 2 struct list_head *next, *prev; 3 }; 我们可以利用这个数据
阅读全文
摘要:10.进程和线程 进程是执行者的应用程序,而线程是进程内部的一个执行序列.一个进程可以有多个线程.线程又叫轻量级进程. 创建线程的三种方式: I> 继承Thread类 II> 实现Runnable接口 III> 应用程序可以使用Executor框架来创建线程池 实现Runnable接口这种方式更受欢
阅读全文
摘要:1.Java虚拟机和“平台无关语言” Java虚拟机是可以执行字节码的虚拟机进程。Java源文件被编译成被Java虚拟机执行的字节码文件。 Java被设计成允许应用程序运行在任意的平台,而不需要程序员为每一个平台单独重写或者重新编译。Java虚拟机让这个变成了可能,因为它知道底层硬件平台的指令长度和
阅读全文
摘要:魔数(Magic Number) 魔数和Class文件的版本. 一个文件能否被Java虚拟机接受,不是通过文件的扩展名来进行识别的,而是通过魔数来进行识别.这主要是基于安全方面的考虑,因为文件的扩展名可以随意改动.而且在很多文件存储标准中都使用魔数来进行身份识别,例如图片格式. 每个Class文件的
阅读全文
摘要:JDK命令行工具 当我们进入JDK的安装目录里面的/bin目录,会发现有很多小工具,有我们熟悉的也经常用的java,javac,也有很多我们不怎么用到很陌生的工具.下面看看哪些平时不怎么用到的工具吧. JDK命令行工具 当我们进入JDK的安装目录里面的/bin目录,会发现有很多小工具,有我们熟悉的也
阅读全文
摘要:无关性的基石 I> "平台无关性"实现在操作系统的应用层上:sun公司以及其他虚拟机提供商发布了许多可以运行在各种不同平台上的虚拟机,这些虚拟机都可以载入和执行同一种平台无关的字节码,从而实现了程序的"一次编码,到处运行". II> 各种不同平台的虚拟机与所有平台都统一使用的程序存储格式--字节码是
阅读全文
摘要:我的内核版本是: 所以接下来就是先安装内核源码: 执行后,/usr/src / 目录就多了两个文件夹: 这样源码就下载下来了,然后将源码解压: 解压之后 /usr/src/linux-3.13.0/文件夹里面的就是内核源码了. 然后再对源码进行编译. 先进入/usr/src/linux-3.13.0
阅读全文
摘要:简单介绍一下Java技术体系下的Java虚拟机内存分配与回收策略. 1.对象优先在Eden分配 大多数情况下,对象在新生代Eden区中分分配.当Eden区已没有足够空间进行分配时,虚拟机将发起一次 Minor GC. 新生代GC(Minor GC):指发生在新生代的垃圾收集动作,因为Java对象大多
阅读全文
摘要:Java虚拟机规范中对垃圾收集器应该如何实现并没有任何规定,因此不同的厂商,不同版本的虚拟机所提供的垃圾收集器可能会有很大差距. Java虚拟机规范中对垃圾收集器应该如何实现并没有任何规定,因此不同的厂商,不同版本的虚拟机所提供的垃圾收集器可能会有很大差距. HotSpot虚拟机示意图: 说明:两个
阅读全文
摘要:当Java虚拟机进行垃圾收集的时候,那么它必须要先判断对象,是否还存活,如果存活就不能对它进行回收。所以判断一个对象是否存活是Java虚拟机必须要实现的。 当Java虚拟机进行垃圾收集的时候,那么它必须要先判断对象,是否还存活,如果存活就不能对它进行回收。所以判断一个对象是否存活是Java虚拟机必须
阅读全文
摘要:1.对象的创建 当虚拟机遇到一条new指令时,首先去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已经被加载、解析和初始化。如果没有,那必须先执行相应的类加载过程。 在类加载检查通过后,接下来虚拟机将为新生对象分配内存。对象所需内存大小在类加载完成后,便课
阅读全文
摘要:运行时数据区示意图 1.程序计数器(Program Counter Register):是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器。 -->字节码解释器工作就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖计
阅读全文
摘要:题目描述: 请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 分析: 看到这个题目,我们都会有一个比较直观的加法,那就是遍历字符串,每当遇到空格,就在当前位置插入“%20”,当前位置的字符往后移
阅读全文
摘要:请看题目描述: You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes contain a
阅读全文
摘要:求两个数之和。这个问题够简单吧!能做对绝对不是问题,问题是你是否能做的比较好。好了,请看题目: Given an array of integers, return indices of the two numbers such that they add up to a specific targ
阅读全文
摘要:首先,不得不说这是一本好书!!! 我接触这本书是在学长的推荐下去看的,而且口碑还是挺好的一本书,豆瓣的评分也比较高,当我刚看了它,我就深深的爱上了这本书,到现在为止,我已经看了三遍这本书了,平时无聊时侯也会拿这本书来翻翻。还有就是做一般的算法题,没有思路的时候,我也会翻开这本书来寻找一些解题思路。我
阅读全文
摘要:一、静态数据成员 C++允许将类的数据成员定义为静态成员。静态数据成员是属于类的,整个类只有一个备份,相当于类的全局变量,能够被该类的所有对象共用。 1.静态成员的声明 在类数据成员的声明前加上关键字static,就将该成员指定成了静态数据成员。静态数据成员遵守public、private、prot
阅读全文
摘要:在C++的类中,都会有一个或多个构造函数、一个析构函数、一个赋值运算操作符。即使我们自己定义的类中,没有显示定义它们,编译器也会声明一个默认构造函数、一个析构函数和一个赋值运算操作符。例如: 1 //声明一个空类 2 class Empty{}; 3 4 //但是这个空类和下面这个类是等同的 5 c
阅读全文
摘要:const在C++中很常用,在编程中也建议多使用const去告诉编译器和其他程序员某个值应该保持不变。 const可以用在很多地方: (1)用在classes外部修饰global或namespace作用域中的常量 (2)修饰文件、函数、或区块作用域中被声明为static的对象 (3)修饰classe
阅读全文
摘要:1.C++虚函数的工作原理 虚函数(virtual function)需要虚函数表(virtual table)才能实现。如果一个类有函数声明成虚拟的,就会生成一个虚函数表,存放这个类的虚函数地址。若子类没有覆写虚函数,该子类的虚函数表就会存放父类的函数地址。调用这个虚函数时,就会通过虚函数表解析函
阅读全文
摘要:一、区分final 、 finally 、 finalize 1.关键字final Java语言的关键字final可以用于变量、类或方法,但是含义会有所不同。 -用于变量:一旦初始化,变量值就不能修改 -用于方法:该方法不能被子类重写(overrride) -用于类:该类不能派生出子类 2.关键字f
阅读全文