`
LiYinlei
  • 浏览: 68460 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
  <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>完美冻结列和行 </title> <style type="text/css"> .FixedHeaderColumnsTableDiv { overflow: auto; position: relative; } .Fixed ...
Set:无序,不可以重复。 Set集合集合中的方法和Collection是一致的。它的取出方式只有一种。迭代器。 |-HashSet:底层数据结构是哈希表,该集合是线程不同步的。 HashSet集合是如何保证元素唯一性的呢? 通过元素的hashCode方法和equals方法来完成的唯一性的判断。 如果hashCode值相同,再继续判断元素的equals方法是否为true 如果hashCode值不同,不会判断equals方法。 HashSet的contains和remove依据都是hashCode方法,如果该方法返回值相同, ...
List:有序,有索引,可重复。 |--ArrayList:底层数据结构是 数组结构.是线程不同步的(不安全的).查询速度很快,但是增删较慢。              构造一个初始容量为 10 的空列表,当放满了10个元素后,以50%的长度加长集合容器的长度。     List 接口的大小可变数组的实现,即:可以直接指定容量大小 |--LinkedList:底层数据结构是 链表结构。对元素的增删速度很快。但是查询速度很慢。线程是不同步的。 |--Vector:底层数据结构也是数组结构,是线程同步的(安全的),效率低,被ArrayList替代了。1.2版本以后的集合都是不同步的 ...
上一篇已经说过了Iterator迭代器的原理是使用内部类实现的,现在说说 迭代器的取值方式和对元素操作的注意事项:   1.迭代器的取值方式一般有两种: public class IteratorDemo { public static void main(String[] args) ...
/* * 集合框架里Iterator内部实现原理:使用内部类 interface Collection { } interface Iterator { public boolean hasNext(); public Object next(); } class ArrayList ...
内部类概念: 其实就是类定义到了另一个类的内部。 内置类,嵌套类。   内部类可以直接访问外部类中的成员。 外部类要想访问内部类,只能建立内部类的对象才可以访问内部类中的成员。   什么时候定义内部类呢?   当对事物进行描述的时候,在描述过程中该事物的内部还有具体的事物, 这是这个具体的事物可以通过内部类来进行描述。   内部类定义是可以存在外部类的任意位置上。 1,可以存放在成员位置上, 可以被成员修饰符修饰。 public 默认权限   通常都会将内部类私有化。通过对外提供公有的方式对其方式,以便于控制 static 当内部类被static修饰时,该 ...
package cn.java.objectoriented; /** 匿名内部类:内部类的简写格式。 前提: 内部必须继承或者实现一个外部类或者外部接口。 匿名内部类其实就是一个子类匿名对象。 场景之一: 当函数的参数是接口类型时,e而且该接口中的方法不超过3个时, 可以给这个函数传递一个匿名内部类。这样书写较为简单。 格式: new 父类名or接口名(){} */ abstract class AbsDemo { abstract void show(); } //正常内部类 class OuterClass { ...
  先继承还是先实现呢,现在的开发工具会在编译时期自动的限制你先实现,后继承,这是为什么呢,下面我们看一个例子吧。   class classDemo{ public void show(){ System.out.println("不要把我无情的弄丢了哦..."); } } interface InteDemo{ public void show(); }  class SubTest extends classDemo implements InteDemo   { } /* 在子类SubTest中,需要先覆盖实现的接口InteDemo ...
当子父类中的成员变量同名时,要表示父类的成员变量,可以使用super关键字来标识。   但是一般开发不常见,因为父类已经定过了变量,子类extends过来的使用即可,不需要在重新定义。下面来看一个有趣的例子吧.   class FuTest { int num = 4; } class ZiTest extends FuTest { //第一处 int num = 5;   public void show() {                  //第二处 int num = 6;   System.out.println(super.num);//输 ...
/** 继承中的构造函数初始化顺序      先初始化父类里的构造函数,之后再执行子类里的构造函数。   */ ============================================================================= class FuQin{ FuQin(){ System.out.println("Fu run..."); } } class ErZi extends FuQin{ ErZi(){        //super ();子类默认构造函数的第一行都有一条隐式的语句。 System.o ...
/**  *        Person p = new Person();       1,加载Person.class文件。       2,执行Person类中的静态代码块对Person类进行初始化。       3,在堆内存开辟空间分配内存地址,并对对象中的属性进行默认初始化和构造代码块初始化。          注:(构造代码块的初始化跟对象中的默认属性是一致的,谁在前,就先实例化谁。)          如:下面则先运行int x=4;                  在运行构造代码块,之后再执行int y=5;       ================== ...
Global site tag (gtag.js) - Google Analytics