
java
hello_my_snow
Snow is the globe, and I need more strength to pull it.
展开
-
java的内存分配机制
Java的内存分为两种:一种是栈内存,一种是堆内存。 在函数中定义的一些基本类型变量和对象的引用都在函数的栈内存中分配。当在一个代码块中定义一个变量的时候,java就在栈中为其分配内存,当超过作用域的时候内存自动释放。 对内存用来存放new创建的对象和数组。在堆中分配的内存,由java虚拟机的垃圾回收机器管理。java的堆是运行时数据区,堆的优势是可以动态的分配内存大小,生原创 2014-10-20 23:46:54 · 1368 阅读 · 0 评论 -
设计模式-代理模式
定义:为其他对象提供一种代理以控制这个对象的访问。使用场景:在一些情况下,客户端不能直接访问一个对象,那么代理就起到中介的作用。有时,一次性创建一个对象需要很大开销时,可以使用代理来存储这个对象的信息,当需要那一部分时,再由创建。有时,当使用一个对象之前还需要做一些处理,这时候也可以用到代理。一个最简单的代理模式的demo:我们在登陆一个系统时,登陆之前先检查用户名是否合法,并且纪录登陆和原创 2014-12-06 19:14:48 · 842 阅读 · 0 评论 -
设计模式-模版方法模式
模版方法是一个非常简单,使用频率比较高的设计模式。意图:定义一个操作中算法的骨架,而将将一些方法的实现延迟到子类中,TemplateMethod使得子类可以不改变算法的结构即可重定义算法的特定方法。参与者:AbstractClass,抽象类。定义抽象的操作,具体的子类将重新定义各自的实现算法。ConcreteClass,具体的实现类。回想一下,在之前的开发中用到过这种模式,原创 2015-01-11 11:26:18 · 695 阅读 · 0 评论 -
设计模式-命令模式
转载:http://www.cnblogs.com/ikuman/archive/2013/08/06/3233092.html意图:将一个请求封装为一个对象,从而可用不同的请求对客户进行参数化;对请求排队或记录日志,以及支持可撤销的操作动机:将”发出请求的对象”和”接收与执行这些请求的对象”分隔开来。效果:1)、command模式将调用操作的对象和实现该操作的对象解耦2)、可转载 2014-12-14 15:37:46 · 730 阅读 · 0 评论 -
设计模式-观察者模式
观察者模式又称发布-订阅模式,用于定义对象间的一种一对多的关系,当一个对象的状态发生改变时,所有依赖它的对象都得到通知,并且自动更新原创 2014-11-22 19:02:51 · 773 阅读 · 0 评论 -
设计模式-监听器模式
监听器模式是监听对象的行为,例如工作的进度监听,事件监听等等。它是Android开发中经常使用的一种设计模式,每一个控件(Button,ImageView...)都有各种Listener。还有一个中场景,监听异步任务状态的改变。这里,直接引用Android中View的源代码:public class View implements Drawable.Callback, KeyEvent.C原创 2014-11-22 20:39:53 · 1377 阅读 · 0 评论 -
设计模式-工厂模式
工厂模式分为三种情况:简单工厂模式,工厂方法模式,抽象工厂模式,根据不同的场景选择相应的模式。简单工厂模式用于生产单一的产品,一般使用静态方法,根据传入的参数返回不同的对象实例。工厂方法模式,定义一个用于创建对象的接口,让子类决定创建哪个类,它使一个类型实例化延长到了子类。原创 2014-11-06 22:51:48 · 1272 阅读 · 1 评论 -
设计模式-Adapter模式
最近在工作中遇到了一种场景,大概是这样:一个项目中,包含Widget(桌面小部件),它是由RemoteViews来渲染和实现的,而现在的需求是,要在应用程序里面对Widget上的字体大小和颜色进行设置,并且在应用里面能够看到变化,这就需要由View来渲染和实现。但是View和RemoteViews事两个不相关的类,他们渲染的方式完全不一样,但是我又不想重新写一套View的渲染代码,这就想到了Ada原创 2014-12-19 21:40:34 · 727 阅读 · 0 评论 -
java中静态代码块的用法 static用法详解
(一)java 静态代码块 静态方法区别一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,在不创建对象的情况下,其他程序来调用的时候,需要使用静态方法,这种代码是被动执行的. 静态方法在类加载的时候 就已经加载 可以用类名直接调用比如main方法就必须是静态的 这是程序入口两者的区别就是:静态代码块是自动执转载 2014-11-24 23:22:50 · 710 阅读 · 0 评论 -
HashSet集合是如何保证元素的唯一性的?
HashSet集合的特点是元素无序和不重复 。首先,HashSet的底层数据结构是哈希表。哈希表就是存储一系列哈希值的表,而哈希值是由对象的hashCode()方法生成的。确保元素唯一性的两个方法,hashCode()和equals()方法。当调用add()方法向集合中存入对象的时候,先比较此对象与原有对象的哈希值有没有一样的,如果都不一样就直接存入;如果有与之相同的哈希值原创 2014-10-20 23:36:57 · 5673 阅读 · 0 评论 -
Java I/O的简单理解
首先,以字符的形式进行读取的类:Reader和Writer(这里就讨论一个方面,Reader)。其子类:—BufferedReader(构造函数参数:Reader) 创建一个默认大小输入缓冲区的缓冲字符输入流。BufferedReader(构造函数参数:Reader和int)创建一个指定大小输入缓冲区的缓冲字符输入,从字符输入流中读取文本,缓冲各个字符,从而实现字符,数组,行的高效读取。原创 2014-10-20 23:44:30 · 1387 阅读 · 0 评论 -
Java String 的简单理解
<br />1、String a = "a1";<br />2、String b = "a" +1:<br />System.out.print(a==b) //result = true ;<br />3、String a = "atrue" ;<br />4、String b = "a" + "true" ;<br />System.out.print(a==b) //result = true ;<br />分析:JVM对于字符串常量“+”连接,将程序编译期,将常量字符串的“+”连接值优化为连接后原创 2011-03-08 21:24:00 · 1235 阅读 · 0 评论 -
Timer理解
Timer的官方描述是:A facility for threads to schedule tasks for future execution in a background thread. Tasks may be scheduled for one-time execution, or for repeated execution at regular intervals.意思就是原创 2014-11-01 16:47:45 · 1613 阅读 · 0 评论 -
ASCII,Unicode,UTF-8编码
我们都知道,我们的信息存储在计算机中,z原创 2014-11-16 16:57:39 · 986 阅读 · 0 评论 -
java类文件结构
我们都知道我们编写的java程序是要经过编译器编译成class文件,然后由java虚拟机执行class文件,来运行程序的。今天我们简单分析一下class文件的结构。原创 2014-11-12 15:50:11 · 932 阅读 · 0 评论 -
设计模式-备忘录模式
意图:在不破坏对象封装性的前提下,在对象的外部得到并保存对象内部的状态,这样对象以后还能恢复到原来的状态。像是备份对象的内部信息。参与者:memento(备忘录),存储原发器的内部状态。Originator(原发器),创建备忘录,纪录自己当前的状态,以及使用备忘录恢复对象的状态。CareTaker(负责人),负责保存好备忘录,并且保护备忘录不能被改变。原创 2014-12-28 21:19:15 · 529 阅读 · 0 评论