<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[火火的专栏]]></title><description><![CDATA[自我学习、总结、不断思考、不断进步！]]></description><link>https://blog.youkuaiyun.com/u014150409</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; u014150409]]></copyright><item><title><![CDATA[abstract]]></title><link>https://blog.youkuaiyun.com/u014150409/article/details/72473111</link><guid>https://blog.youkuaiyun.com/u014150409/article/details/72473111</guid><author>u014150409</author><pubDate>Thu, 18 May 2017 16:21:59 +0800</pubDate><description><![CDATA[abstract注：抽象类是一种专门用来当作父类的类，目的是要设计者依据它来修改并创建新的类，抽象类不能直接创建对象（不能直接new），只能通过抽象类派生出新的类； 
1. 包含一个抽象方法的类必须是抽象类； 
2. 抽象类和抽象方法都要使用abstract关键字声明； 
3. 抽象方法只需要声明而不需要实现 
4. 抽象类必须被子继承，子类（如果不是抽象类）必须覆写抽象类中的全部抽象方法#定义一个]]></description><category></category></item><item><title><![CDATA[final]]></title><link>https://blog.youkuaiyun.com/u014150409/article/details/72473067</link><guid>https://blog.youkuaiyun.com/u014150409/article/details/72473067</guid><author>u014150409</author><pubDate>Thu, 18 May 2017 16:19:08 +0800</pubDate><description><![CDATA[final
使用final声明的类不能有子类
使用final声明的方法不能被子类所覆盖
使用final声明的变量即成为常量，常量不可以修改
final变量的命名规则：要去全部大写；
#first
final class A{
}
class B extends A{
    //不能继承使用final声明的类
}
#second
class A{
    public final void prin]]></description><category></category></item><item><title><![CDATA[static]]></title><link>https://blog.youkuaiyun.com/u014150409/article/details/72470173</link><guid>https://blog.youkuaiyun.com/u014150409/article/details/72470173</guid><author>u014150409</author><pubDate>Thu, 18 May 2017 15:27:29 +0800</pubDate><description><![CDATA[static
Java中常用的内存区域 
栈内存空间：保存引用的堆内存空间的地址
堆内存空间：保存每个对象的具体属性内容
全局数据区：保存static类型的属性
全局代码区：保存所有的方法定义
static不能调用任何非static内容的，（程序中所有的属性和方法必须在对象开辟堆内存之后才可以调用，而static类型在对象未被实例化时就可以被类名调用）
理解main方法 
pulic:表示此方法可以]]></description><category></category></item><item><title><![CDATA[RandomAccessFile]]></title><link>https://blog.youkuaiyun.com/u014150409/article/details/71209275</link><guid>https://blog.youkuaiyun.com/u014150409/article/details/71209275</guid><author>u014150409</author><pubDate>Fri, 05 May 2017 14:51:05 +0800</pubDate><description><![CDATA[RandomAccessFile
RandomAccessFile类同时实现了DataInput和DataOutput接口，提供了对文件随机存取的功能，利用这个类可以在文件的任何位置读取或写人数据；
RandomAccessFile类提供了一个文件指针，用来标志要进行读写操作的下一数据的位置；
该方法把文件的读入，写出，写到一起了，是操作文件比较好的方法；
import java.io.*;
cla]]></description><category></category></item><item><title><![CDATA[基本的流类]]></title><link>https://blog.youkuaiyun.com/u014150409/article/details/70888552</link><guid>https://blog.youkuaiyun.com/u014150409/article/details/70888552</guid><author>u014150409</author><pubDate>Fri, 28 Apr 2017 10:36:36 +0800</pubDate><description><![CDATA[基本的流类
FileInputStream和FileOutputStream;(file 1) 
节点流，用于从文件中读取或往文件中写入字节流。如果在gouzao
BufferedInputStream和BufferedOutputStream；(file 2) 
过滤流，需要使用已经存在的节点流来构造，提供带缓冲的读写，提高了读写的效率；
DataInputStream和DataOutputStr]]></description><category></category></item><item><title><![CDATA[HashMap]]></title><link>https://blog.youkuaiyun.com/u014150409/article/details/70262929</link><guid>https://blog.youkuaiyun.com/u014150409/article/details/70262929</guid><author>u014150409</author><pubDate>Thu, 20 Apr 2017 15:55:11 +0800</pubDate><description><![CDATA[HashMap
HashMap对key进行散列；
keySet()、values()、entrySet();
与TreeMap的比较 
和Set类似，HashMap的速度通常都比TreeMap快，只有在需要排序的功能的时候，才使用TreeMap
import java.util.*;
class HashMapTest{
    public static void main(String[] ar]]></description><category></category></item><item><title><![CDATA[TreeSet]]></title><link>https://blog.youkuaiyun.com/u014150409/article/details/70262847</link><guid>https://blog.youkuaiyun.com/u014150409/article/details/70262847</guid><author>u014150409</author><pubDate>Thu, 20 Apr 2017 15:54:29 +0800</pubDate><description><![CDATA[TreeSet
TreeSet是依靠TreeMap来实现的；
TreeSet是一个有序集合，TreeSet中元素将按照升序排列，缺省是按照自然顺序进行排列，意味着TreeSet中元素要实现Comparable接口；
我们可以在构造TreeSet对象时，传递实现了Comparator接口的比较器对象；
HashSet和TreeSet的比较 
HashSet是基于Hash算法实现的，其性能通常都优于Tr]]></description><category></category></item><item><title><![CDATA[HashSet]]></title><link>https://blog.youkuaiyun.com/u014150409/article/details/70230332</link><guid>https://blog.youkuaiyun.com/u014150409/article/details/70230332</guid><author>u014150409</author><pubDate>Tue, 18 Apr 2017 17:06:05 +0800</pubDate><description><![CDATA[HashSet
实现Set接口的hash table(哈希表)，依靠HashMap来实现的；(file 1)
我们应为要存放到散列表的各个对象定义hashCode()和equals();(file 2)
散列表 
散列表又称为哈希表。散列表算法的基本思想是：以结点的关键字为自变量，通过一定的函数关系（散列函数）计算出对应的函数值，以这个值作为该结点存储在散列表中的地址；
当散列表中的元素存放太满，就]]></description><category></category></item><item><title><![CDATA[LinkedList]]></title><link>https://blog.youkuaiyun.com/u014150409/article/details/70230280</link><guid>https://blog.youkuaiyun.com/u014150409/article/details/70230280</guid><author>u014150409</author><pubDate>Tue, 18 Apr 2017 17:02:35 +0800</pubDate><description><![CDATA[LinkedList
LinkedList是采用双向循环链表实现的；
利用LinkedList实现栈(stack)、队列(queue)、双向队列(double-ended queue);
ArrayList和LinkedList的比较 
ArrayList底层采用数组完成，而LinkedList则是以一般的双向链表(double-linked list)完成，其内每个对象除了数据本身外，还有两个引用]]></description><category></category></item><item><title><![CDATA[集合框架中的实现类-ArrayList]]></title><link>https://blog.youkuaiyun.com/u014150409/article/details/70212226</link><guid>https://blog.youkuaiyun.com/u014150409/article/details/70212226</guid><author>u014150409</author><pubDate>Mon, 17 Apr 2017 15:40:55 +0800</pubDate><description><![CDATA[集合框架中的实现类-ArrayList
ArrayList:我们可以将其看作是能够自动增长容量的数组；（file 1）
利用ArrayList的toArray()返回一个数组；（file 2）
Array.asList()返回一个列表；（file 3）
迭代器（Iterator）给我们提供了一种通用的方式来访问集合中的元素；（file 4）
## file 1 ##
import java.util]]></description><category></category></item><item><title><![CDATA[线程wait-notify-notifyAll]]></title><link>https://blog.youkuaiyun.com/u014150409/article/details/70154439</link><guid>https://blog.youkuaiyun.com/u014150409/article/details/70154439</guid><author>u014150409</author><pubDate>Thu, 13 Apr 2017 10:11:18 +0800</pubDate><description><![CDATA[wait-notify-notifyAll
每一个对象除了有一个锁之外，还有一个等待队列（waitset），当一个对象刚创建的时候，它的等待队列是空的；
我们应该在当前线程锁住对象的锁后，去调用该对象的wait方法；
当调用对象的notify方法时，将从该对象的等待队列中删除一个任意选择的线程，这个线程将再次成为可运行的线程；
当调用对象的notifyAll方法时，将从该对象的等待队列中删除所有等待]]></description><category></category></item><item><title><![CDATA[多线程程序]]></title><link>https://blog.youkuaiyun.com/u014150409/article/details/70154340</link><guid>https://blog.youkuaiyun.com/u014150409/article/details/70154340</guid><author>u014150409</author><pubDate>Thu, 13 Apr 2017 10:05:55 +0800</pubDate><description><![CDATA[多线程程序
Java在语言级提供了对多线程程序设计的支持
实现多线程程序的两种方式： 
从Thread类继承；（file 1，file2）
实现Runnable接口；(file 3) 大多数情况下，如果只想重写 run() 方法，而不重写其他 Thread 方法，那么应使用 Runnable 接口;
Java运行时系统实现了一个用于调度线程执行的线程调度器，用于确定某一时刻由哪一个线程在CUP上运行]]></description><category></category></item><item><title><![CDATA[数组的相关操作]]></title><link>https://blog.youkuaiyun.com/u014150409/article/details/70154323</link><guid>https://blog.youkuaiyun.com/u014150409/article/details/70154323</guid><author>u014150409</author><pubDate>Thu, 13 Apr 2017 10:04:46 +0800</pubDate><description><![CDATA[数组的相关操作
在Java中，所有的数组都有一个缺省的属性length，用于获取数组中元素的个数；
数组的复制：System.arraycoye(Object src, int srcPos, Object dest, int destPos, int length);（file 1）
数组的排序：Arrays.sort();
在已排序的数组中查找某个元素：Arrays.binarySearch()]]></description><category></category></item><item><title><![CDATA[函数的调用-基本数据类型/引用类型]]></title><link>https://blog.youkuaiyun.com/u014150409/article/details/70154293</link><guid>https://blog.youkuaiyun.com/u014150409/article/details/70154293</guid><author>u014150409</author><pubDate>Thu, 13 Apr 2017 10:02:27 +0800</pubDate><description><![CDATA[函数的调用-基本数据类型/引用类型
在Java中，传参时，都是以传值的方式进行；
对于基本数据类型，传递的是数据的拷贝；对于引用类型，传递的引用的拷贝；
## file 1 ##
class test{
    public static void change(int x,int y){
        x = x + y;
        y = x - y;
        x = x - y]]></description><category></category></item><item><title><![CDATA[“==”和“equals”的用法]]></title><link>https://blog.youkuaiyun.com/u014150409/article/details/70154251</link><guid>https://blog.youkuaiyun.com/u014150409/article/details/70154251</guid><author>u014150409</author><pubDate>Thu, 13 Apr 2017 09:59:48 +0800</pubDate><description><![CDATA[“==”和“equals”的用法
在Java中，boolean、byte、short、int、long、char、float、double这八种是基本数据类型，其余的都是引用类型。
“==”是比较两个变量的值是否相等，“equals”是比较两个对象变量所代表的对象的内容是否相等；
对象的内存分配图 
 
当我们声明一个引用类型变量时，系统只为该变量分配了引用空间，并未创建一个具体的对象；当用new为]]></description><category></category></item><item><title><![CDATA[Java编程规范]]></title><link>https://blog.youkuaiyun.com/u014150409/article/details/70154183</link><guid>https://blog.youkuaiyun.com/u014150409/article/details/70154183</guid><author>u014150409</author><pubDate>Thu, 13 Apr 2017 09:53:36 +0800</pubDate><description><![CDATA[Java编程规范
package的命名 
package的名字由全部小写的字母组成
class和interface的命名 
由大写字母开头而其它字母都小写的单词组成，例如Person
class变量的命名 
变量的名字用一个小写字母开头，后面的单词用大写字母开头，例如：currentImage
class方法的命名 
方法的名字用一个小写字母开头，后面的单词用大写字母开头
static final变]]></description><category></category></item><item><title><![CDATA[异常处理]]></title><link>https://blog.youkuaiyun.com/u014150409/article/details/70154158</link><guid>https://blog.youkuaiyun.com/u014150409/article/details/70154158</guid><author>u014150409</author><pubDate>Thu, 13 Apr 2017 09:51:56 +0800</pubDate><description><![CDATA[异常处理
打开一个不存在的文件、网络连接中断、数组小标越界、正在加载的类文件丢失等都会引发异常；
Java中的异常类定义了程序中遇到的轻微的错误条件；
Java中的错误类定义了程序周昂不能恢复的严重错误条件；如内存溢出、类文件格式错误等；这一类错误由Java运行系统处理，不需要我们去处理；
Java程序在执行过程中如出现异常，会自动生成一个异常类对象，该异常对象将被提交给Java运行时系统，这个过程]]></description><category></category></item><item><title><![CDATA[内部类2]]></title><link>https://blog.youkuaiyun.com/u014150409/article/details/70154137</link><guid>https://blog.youkuaiyun.com/u014150409/article/details/70154137</guid><author>u014150409</author><pubDate>Thu, 13 Apr 2017 09:49:44 +0800</pubDate><description><![CDATA[内部类2
在方法中定义的内部类，如果要访问方法中定义的本地变量或方法的参数，则变量必须被声明final（内部类可以定义在类中、方法中、判断语句中、块中）；
内部类可以声明为private或protected;还可以声明为abstract或final；
非static的内部类中的成员不能声明为static的，只有在顶层类或static的内部中才可声明static成员；
  file 1
    pub]]></description><category></category></item><item><title><![CDATA[内部类]]></title><link>https://blog.youkuaiyun.com/u014150409/article/details/70154064</link><guid>https://blog.youkuaiyun.com/u014150409/article/details/70154064</guid><author>u014150409</author><pubDate>Thu, 13 Apr 2017 09:43:05 +0800</pubDate><description><![CDATA[内部类
在一个类中定义另一个类，这个类就叫做内部类或内置类（inner class）;
内部类可以让我们将逻辑上相关的一组类组织起来并由外部类（outer class）来控制内部类的可见性；
当我们建立一个inner class时，其对象就拥有了与外部类对象之间的一种关系，这是通过一个特殊的this reference形成的，使得内部类对象可以随意的访问外部类中所有的成员；
    public c]]></description><category></category></item><item><title><![CDATA[接口]]></title><link>https://blog.youkuaiyun.com/u014150409/article/details/70154044</link><guid>https://blog.youkuaiyun.com/u014150409/article/details/70154044</guid><author>u014150409</author><pubDate>Thu, 13 Apr 2017 09:40:57 +0800</pubDate><description><![CDATA[接口
接口中所有的方法都是public abstract； 
定义为抽象类，只能用来继承，不能实例化；
如果一个类中有抽象方法，那么这个类必须定义为抽象类
抽象类没有方法体，如果一个类实现（implements）了抽象方法，那么这个类必须重写抽象方法(code implements-three)；
在接口中声明方法时，不能使用native、static、final、synchronized、priv]]></description><category></category></item></channel></rss>