JAVA
另眼观世界
研究方向数据挖掘,高手过招,点到不止。
展开
-
Java多态:重写和重载
Java是一种面向对象的语言,有四个典型的特征:抽象、继承、封装和多态。 多态是指允许不同类型的对象对同一消息作出响应,Java多态性的概念可以被说成“一个接口,多个方法”。Java实现运行时多态性的基础是动态方法调度,它是一种在运行时而非编译期调用重载方法的机制,是面向对象程序设计代码重用的一个最强大的机制。 Java的多态性表现为两种:一是重写override和重载overload。重写o原创 2013-06-13 12:46:46 · 916 阅读 · 0 评论 -
Hashmap与Trove4j
HashMap 的实例有两个参数影响其性能:初始容量 和加载因子。容量是哈希表中桶的数量,初始容量只是哈希表在创建时的容量。加载因子是哈希表在其容量自动增加之前可以达到多满的一种尺度。当哈希表中的条目数超出了加载因子与当前容量的乘积时,则要对该哈希表进行 rehash 操作(即重建内部数据结构),从而哈希表将具有大约两倍的桶数。 通常,默认加载因子 (0.75) 在时间和空间成本上寻求一种折原创 2013-11-03 16:15:57 · 3358 阅读 · 0 评论 -
VIM中空格和TAB的替换
http://andylin02.iteye.com/blog/830430转载 2013-06-24 15:30:11 · 740 阅读 · 0 评论 -
Java类的加载过程
JVM中类的装载是由ClassLoader和它的子类来实现的。Java ClassLoader 是一个重要的Java运行时系统组件,它负责在运行时查找和装入类文件的类。 Java类的加载过程顺序如下: 基类的static域→子类的static域→Main函数→基类的非静态域→基类的构造函数→子类的非静态域→子类的构造函数 PS:关于ClassLoader的加载过程详见: http:原创 2013-06-13 16:05:27 · 553 阅读 · 0 评论 -
Java中的协变
Java用到协变的两个地方: ①如果A是B的父类,即A[]是B[]的父类,则用到A[]的地方可以用B[]代替; ②在重写或者重载的时候,返回值类型不一致是不被允许的,但是在子类中可以以此来重写父类的方法,这就是协变。 PS:但是在泛型中,却不能利用协变:基于上面的①,List和List没有什么关系。原创 2013-06-13 15:43:46 · 1056 阅读 · 0 评论 -
Java异常
Def:异常是指程序运行过程中可能出现的非正常状态。Java异常可以分为两类:可检查异常和非检查异常。 可检查异常:Checked异常。非可检查异常:Runtime异常和Error。 Checked异常:是指可以在编译阶段被处理的异常,所以它强制程序处理所有的Checked异常。 Runtime异常:是运行时异常,表示虚拟机的通常操作中可能存在的异常,是一种的常见的运行错误,无须强制处理。原创 2013-06-13 15:28:05 · 697 阅读 · 0 评论 -
Java中的equals方法和hashcode方法
注意事项: ①equal方法必须做到自反、对称、传递、一致、非空(与null不相等); ②改写equal就必须改写hashCode,否则你的类将不可以成功充当Map的key。 PS:编写一个完美的equals方法的建议: ①是否引用同一个对象 ②other是否为null ③this和other是否属于同一个类 ④将other转换为相应的类类型变量原创 2013-06-13 16:15:55 · 596 阅读 · 0 评论 -
Java程序绑定:动态与静态
写在前面: 动态绑定和静态绑定: 如果是private,static,final方法或者是构造器,那么编译器将可以准确的知道应该调用哪一个方法,将这种调用方式称之为静态绑定。与此对应,如果调用的方法依赖于映射参数的实际类型,并且在运行时实现动态绑定,则称之为动态绑定。 PS:每次调用方法都要进行搜索,时间开销相当大,所以虚拟机预先为每个类创建了一个方法表,其中列出了所有方法的签名和实际调用的转载 2013-06-13 15:39:41 · 812 阅读 · 0 评论 -
Java泛型
Java的泛型是靠擦除来实现的,编译器看到的只是原生类型。具体见《java编程思想》P373 Set是个参数化类型,表示可以包含任何对象类型的集合;Set则是一个通配符类型,表示只能包含某种未知对象类型的一个集合;Set则是一个原生态类型,它脱离泛型系统。前两种是安全的,最后一种是不安全的。 泛型只是在编译时强化它们的类型信息,并在运行时丢弃(或者擦除)它们的元素类型信息。擦除就是使泛型可以与原创 2013-06-13 16:06:55 · 566 阅读 · 0 评论 -
Java可变参数
Java1.5增加了新特性:可变参数:适用于参数个数不确定,类型确定的情况,java把可变参数当做数组处理。注意:可变参数必须位于最后一项。当可变参数个数多余一个时,必将有一个不是最后一项,所以只支持有一个可变参数。因为参数个数不定,所以当其后边还有相同类型参数时,java无法区分传入的参数属于前一个可变参数还是后边的参数,所以只能让可变参数位于最后一项。 可变参数的特点: ①只能出现在参数列原创 2013-06-13 15:57:42 · 574 阅读 · 0 评论 -
Java static import
static import 是java 5新增功能,目的就是导入该类中的静态成员,使之和本类成员一样直接调用。如果使用import导入类,则在调用该类的成员时,必须使用(类名.成员名)的形式进行访问。原创 2013-06-13 16:08:16 · 608 阅读 · 0 评论 -
Java中的容器
Java中的容器主要分为两类:Collection和Map。 Collection ├List 接口 │├LinkedList 链表 │├ArrayList 顺序结构动态数组类 │└Vector 向量 │ └Stack 栈 └Set(Hashset Treeset) Map ├Hashtable ├HashMa原创 2013-06-13 15:53:23 · 660 阅读 · 0 评论 -
Java内部类
内部类Def:内部类是指定义在另一个类中的类。 使用内部类的原因有以下三点: ①内部类可以访问其外部类的任何数据,包括私有数据。 ②内部类可以对同一个包中的其他类隐藏起来。 ③当想要定义一个回调函数且不想编写大量代码时,使用匿名内部类比较便捷。 注意事项: ①内部类对象通过this指针引用其外部类的对象。 ②只有内部类可以是私有的,常规类只能试包可见性或者公有可见性。原创 2013-06-13 14:05:34 · 546 阅读 · 0 评论 -
JVM的内存设置
原文地址: http://www.cnblogs.com/zcshan/archive/2011/03/10/jvm.html 在一些规模稍大的应用中,Java虚拟机(JVM)的内存设置尤为重要,想在项目中取得好的效率,GC(垃圾回收)的设置是第一步。 PermGen space:全称是Permanent Generation space.就是说是永久保存的区域,用于存放Clas转载 2013-06-13 13:12:47 · 589 阅读 · 0 评论 -
Java中的Native关键字
Native方法一般用于两种情况: ①在方法中调用一些不是由java语言写的代码。 ②在方法中用java语言直接操纵计算机硬件。原创 2013-06-13 13:09:53 · 625 阅读 · 0 评论 -
如何打开微博的门禁
在实验室,一直处理爬虫程序,对于微博数据也是抓了又抓,微博的门禁如何开启,进入之后方能游刃有余,还是先把这个大门开启吧。先后,对方换了几把锁,越换越垃圾,还真说不定以后全开放啦。 现在下面这段代码,仅仅适用于2013年11月至今(2013年12月),以后对方肯定还会换锁,不过大同小异,先来看看代码吧。 import java.io.IOException; import java.io.Uns原创 2013-12-23 20:45:06 · 1095 阅读 · 0 评论