`
文章列表
1、相同点:都是用来实现集合中元素大小的比较。 2、不同点:      1)Comparable采用的是内部比较法(本身有默认的比较规则),而Comparator属于外部比较法(一个外部的比较器,开发人员可以实现定义的比较规则)。     2)采用Comparable比较时,集合中的元素必须实现Comparable接口(比如String和Integer),使用的比较方法是:int compareTo(T o);     3)采用Comparator比较时,使用的比较方法是:int compare(T o1 ,T o2);     4)Comparable位于java.lang包中(无需导 ...
通过new新建一个对象时,涉及到类的装载及对象的实例化两方面。 1、类的装载       1)类装载时,先装载父类,然后到子类。     2)装载父类后,执行静态动作(初始化静态变量或执行静态代码程序(两者根据代码顺序执行))。     3)装载子类后,执行静态动作(初始化静态变量或执行静态代码程序(两者根据代码顺序执行))。   2、对象的实例化       1)实例化子类时,会(需要)先实例化父类。     2)实例化父类时,先完成实例变量的初始化,然后调用构造函数完成实例化工作,子类同理。   3、概括来说,初始化顺序如下:       父类的静态代码 -- ...
1、静态方法:       1)静态方法代表一种不依靠实例变量也就不需要对象的行为。     2)静态方法通过直接使用类名调用(最常用),非静态方法通过对象的引用变量来调用。     3)可以通过对象的引用变量代替类名调用静态方法(容易造成误解,不常用)。     4)带有静态方法的类通常(虽然不一定是这样)不打算被初始化。     5)静态的方法不能调用(访问)非静态的变量。     原因:因为非静态的变量(实例变量)是归属于某个实例(对象)的,所以尝试在静态方法中访问实例变量时,编译器会抱怨说:“我是属于类的,我可不知道你说的是哪个实例(对象)的变量!”。     6)静 ...
1、构造函数是一段新建对象的时候会执行的程序代码。   2、构造函数名称必须与类同名且没有返回类型。   3、可以通过构造函数初始化被创建对象的状态。   4、如果你没有写构造函数,编译器会自动为你新建一个默认的无参构造函数。   5、最好能有无参构造函数,能让人可以选择使用默认值。   6、重载的构造函数意思是有超过一个以上的构造函数。   7、重载的构造函数必须是参数的类型或个数不同或顺序不同(不同类型),如String func(int a,String b){}与String func(String a,int b){}属于重载。   8、实例变量有默认值 ...
1、先看下在JAVA中有以下六个区域可以存放数据(见《Java编程思想》):     1)寄存器(register)。这是最快的存储区,因为它位于不同于其他存储区的地方——处理器内部。但是寄存器的数量极其有限,所以寄存器由编译器根据需求进行分配。你不能直接控制,也不能在程序中感觉到寄存器存在的任何迹象。      2)堆栈(stack)。位于通用RAM中,但通过它的“堆栈指针”可以从处理器哪里获得支持。堆栈指针若向下移动,则分配新的内存;若向上移动,则释放那些内存。这是一种快速有效的分配存储方法,仅次于寄存器。创建程序时候,JAVA编译器必须知道存储在堆栈内所有数据的确切大小和生命周期, ...
1、定义:在程序中定义的某个引用变量具体所指向的类型和调用的方法在编码时并不能确定,而只有在运行的时候才能确定。   2、简单理解:你定义的引用变量是父类型,而你创建的对象是子类型,用这个父类型的引用变量指向这个子类型的对象,然后当你调用这个对象的方法的时候,具体是调用的父类的还是子类的方法只有在运行的时候才能确定,可能调用的是父类的方法也有可能调用的子类的方法,这样不用修改代码,就可以让成徐选择多个运行的状态,这就是多态。   3、要点:       1)多态的三大必要条件:继承、覆写、父类引用指向子类对象。     2)父类的实例方法可以被覆盖,属性不能被覆盖。      ...
1、Java中共有6种变量类型:        1)类变量:包括在类中定义的静态数据成员以及在接口中声明的静态或非静态的数据成员。      2)实例变量:在类体中声明的非静态变量(注:“变量成员”指的是类变量和实例变量)。      3)方法参数:传入方法体的参数。      4)构造函数参数:传入构造函数的参数。      5)异常处理参数:用来传入一个try语句中的catch块的的参数。      6)局部变量:代码块(包括方法中)或一个for语句中声明的变量。   2、实例 class Base { int x = 1; static int y = 2; ...
1、关于构造函数:子类需要继承父类的构造函数。         1)如果父类无构造函数或有无参构造函数,则调用子类构造函数前会自动调用父类的无参构造函数。       2)如果父类只有有参数的构造函数,则子类必须显式调用父类的构造函数,否则编译出错。       3)如果父类同时具有有参和无参的构造函数,则调用子类构造函数前会自动调用父类的无参构造函数。   2、成员变量覆盖:子类不能覆盖父类的成员变量,但可以隐藏父类的成员变量。         1)子类“覆盖”父类的成员变量时,父类的方法使用的永远是父类的成员变量,子类的方法使用的永远是子类的成员变量(除非显示使用supe ...
问题说明:安装SDK更新时,无法连接到https://dl-ssl.google.com。 解决方法: 1、将https://dl-ssl.google.com改为http://dl-ssl.google.com,如下图,在Android SDK Manager->Tools-Options...选项界面,将“Force https://… sources to be fetched using http://…”勾选!      2、修改hosts文件   目录:C:\Windows\System32\drivers\etc\hosts,在文件末尾添加以下内容: 203 ...
转载:原文见http://blog.csdn.net/indexman/article/details/8023740/,感谢作者   本篇主要内容如下: 8.1 触发器类型 8.1.1 DML触发器 8.1.2 替代触发器 8.1.3 系统触发器 8.2 创建触发器 8.2.1 触发器触发次序 8.2.2 创建DML触发器 8.2.3 创建 ...
  1、错误原因:JDK1.5版本不支持在对接口的实现时使用@override注解。     2、说明:JDK1.6版本修复以上BUG,即子类在对父类方法覆盖以及对接口的实现都支持@override注解。     3、解决方法:将MyEclipse(以及项目)的JDK版本修改为1.6即可。     1)、选择eclipse菜单Windows->Preferences-->java->Compiler-->compiler compliance level选择 1.6,刷新工程,重新编译。   2)、右键项目,依次选择 Properties-->Ja ...
   有时我们再导入新的项目时,会出现报错信息:Java compiler level does not match,原因是myeclipse的jdk版本与导入项目的JDK版本不一致。   解决方法: 修改导入项目的JDK版本与myeclipse的jdk版本一致(假设为1.6)。     1、右键项目名称,依次进入:properties-->java Compiler,设置为1.6,如下图所示。         2、右键项目名称,依次进入:properties---Myeclipse---project Facets,设置为1.6,如下图所示。          通过以上两 ...
Global site tag (gtag.js) - Google Analytics