随笔分类 - Java
1
摘要:内存分配 1、对象优先在Eden区分配 2、大对象直接进入老年代 3、长期存活的对象将进入老年代 虚拟机给每个对象定义了一个年龄计数器。年龄计数器的工作原理?对象如果在Eden区出生并且经过第一次Minor GC之后仍然存活,并且能被Survivor容纳的话,将被移动到Survivor空间中,并将对
阅读全文
摘要:1、生产者-消费者模式,使用Executor框架通常是最简单的方式。 2、线程池,在线程池中执行任务线程,重用存在的线程,而不是创建新的线程。这样的好处是,请求到来时,会节省一部分创建线程的时间,提高了响应性。 3、
阅读全文
摘要:三个概念的理解:程序、进程和线程 程序:静态实体 进程:动态实体,存于内存,又叫任务,是程序的运行时期 线程:进程创建的更小粒度 编写线程安全的代码,本质上就是管理对状态的访问,而且通常都是共享的、可变的状态。所谓共享是指一个变量被多个线程访问;所谓可变是指变量的值在其生命周期内可以改变。 线程安全
阅读全文
摘要:IO流的典型使用方式 1、缓存输入文件 字符串sb用来存储文件的内容。 2、从内存输入 借助上一步的sb里面保存的文件的内容来进行处理,将内存中的内容输出到控制台。 3、格式化的内存输入 4、基本的文件输出 FileWriter对象可以向文件写入数据。首先,创建一个与指定文件连接的FileWrite
阅读全文
摘要:异常的限制(这个地方很有意思) 通过强制派生类遵守基类方法的异常说明,对象的可替换性得到了保证。在继承和覆盖的过程中,特定方法的“异常说明接口”不是变大了而是变小了。 异常发生在构造器中 异常匹配 异常处理系统会按照代码的书写顺序找出最近的处理程序。找到之后,就不在继续查找。书写顺序——派生类写前面
阅读全文
摘要:1、java容器类库中的两种主要类型:Map和Collection 两者的显著区别就是:前者每个元素存两个值,后者每个元素存一个值。 Collection:List,Set,Queue; 2、Collection和Iterator 实现Collection接口就必须提供iterator()方法。ja
阅读全文
摘要:1、内部类 特性:内部类拥有其外部类所有元素的访问权,这个是编译器帮我们处理好了访问的细节。 2、.this和.new 2.1如果你想要在内部类中生成对外部类对象的引用,可以使用外部类的名字后面紧跟.this。这样产生的引用自动的具有正确的类型,这一点在编译期就被知晓并受到检查,因此没有任何运行时期
阅读全文
摘要:1、抽象类 包含抽象方法的类叫做抽象类,可以包含一个或多个抽象方法。为抽象类创建对象是不安全的行为。 抽象类特征如下: 抽象类和抽象方法都必须用abstract关键字修饰 抽象类不能被实例化,也就是不能用new关键产生对象,但是可以有构造函数 抽象方法只需声明 抽象方法必须定义的抽象类中,抽象类的子
阅读全文
摘要:本片将讨论java是如何让我们在运行时识别对象和类的信息。主要有两种方式:①“传统的”RTTI(Run Time Type Identification)——它假定我们在编译时已经知道了所有的类型②“反射”机制,它允许我们在运行时发现和使用类的信息 1、为什么需要RTTI 2、Class对象 2.1
阅读全文
摘要:1、一切都是对象,用引用操作对象 1.1程序存储的地方 引用存放在堆栈区(通用的RAM),所有对象存储在堆(一种通用的内存池)。堆和堆栈的区别:堆栈中的这些引用,java系统是要知道确切的生命周期,堆里面的对象数据java系统就不需要知道。堆里面的数据的分配和清理可能会更耗费时间。 1.2高精度数字
阅读全文
摘要:Cache缓存主要分为两类:一、文件缓存;二:内存缓存,也就是实现一个类中静态Map,对这个map进行常规的增删改查; 1、文件缓存 XML格式,序列化DAT文件格式或者其他格式 2、内存缓存
阅读全文
摘要:题目链接:http://www.lintcode.com/zh-cn/problem/search-range-in-binary-search-tree/ 1、描述 给定两个值 k1 和 k2(k1 < k2)和一个二叉查找树的根节点。找到树中所有值在 k1 到 k2 范围内的节点。即打印所有x
阅读全文
摘要:参考博客:http://www.cnblogs.com/rollenholt/archive/2011/09/11/2173787.html Java IO体系结构 1、要弄清楚其体系结构,先明白两点: (1)对称性之:InputStream和OutputStream(字节输入输出体系) ,Read
阅读全文
摘要:1、域的隐藏 代码如下: 先猜猜输出什么吧?还是编译都不通过? 父类Base和子类Derived中都有变量className,尽管Base有一个公共域className,但是这个域没有被继承到Derived类中,因为它被Derived中的className隐藏了。又因为Derived中的classN
阅读全文
摘要:XML(Extensible Markup Language) 定义:一种可扩展的标记性语言 XML有丰富的编码工具,比如Dom4j、JDom等。 JSON(JavaScript Object Notation) 定义:一种轻量级的数据交换格式 JSON也有json.org提供的工具,但是JSON的
阅读全文
摘要:1、Java中的不可变对象和可变对象 (1)不可变类:当你获得这个类的实例的引用之后,你不可以改变这个实例的内容。比如:String,BigInteger,BigDecimal,还有基本数据类型的封装类,这些都是不可变类。用实例来调用方法时,不会改变里面的变量的值。代码: import java.m
阅读全文
摘要:1、令人混淆的构造器 代码如下格式: 分析:null这个参数,两个构造器都可以接受,会怀疑这段代码是否会通过编译,运行后发现可以通过编译并且打印出double array?Why? 正解:知识点——Java重载解析过程是以两个阶段运行的。第一个阶段,选取所有可以获得并且可以使用的方法或构造器。第二阶
阅读全文
摘要:1、谜题36 try和finally语句,代码如下,判断输出 最后的输出为false,为什么呢?这是因为try的异常结束(例如return,break,continue,throws)是不会影响finally语句块的执行。 2、谜题37 考察try catch的规则掌握程度 这段代码看着会编译通过,
阅读全文
1

浙公网安备 33010602011771号