- 浏览: 68510 次
- 性别:
- 来自: 北京
最新评论
-
laoguan123:
试过了,实现不了,除非还用了别的框架或文件
html中表格table冻结行和列
文章列表
<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;
================== ...