摘要:
1 2 final修饰 类不能继承 ,方法不能重写,值不可改变 3 static 修饰常量 编译期绑定常量 4 final修饰的类不能继承和重写,而抽象类本身无实现,只能通过子类实现,也就是说必须被继承。所以他们无法同时修饰同一个类; 阅读全文
摘要:
输出: ((A)new B()).Start实例化一个B对象,并转换成A类型,调用转换后对象的start PS: (A)new B().start实例化一个B对象,并调用start,返回值转成A类型。 阅读全文
摘要:
计算后得出: 测试得出: ~3 = -4; ~(-3) = 2: 阅读全文
摘要:
输出: 第一个因为继承了父类[因为子类没有g(),所以直接输出父类的g(), g()调用的是本类的f();第二个因为子类重写了父类的k(),相当于覆盖了父类的k(),所以调用的是子类的f() 阅读全文
摘要:
public: 使接口的实现类可以使用这个常量 static: static修饰就表示它属于类的,随的类的加载而存在的,如果是非static的话, 就表示属于对象的,只有建立对象时才有它,而接口是不能建立对象的,所以 接口的常量必须定义为static final:final修饰就是保证接口定义的常量 阅读全文
摘要:
PS:不管那些花里胡哨的东西,将方法拆开实现,简单直接. 阅读全文
摘要:
final的类不能被重写和继承; 而abstract的类是抽象类,本身没有实现,只能通过子类来实现,也就是说必须被继承。 所以说它们是没法同时做修饰符的。 阅读全文
摘要:
什么是变量:就是内容可以改变的量,它与常量相对应。而这三大变量实际上是从变量的作用域来定义和划分的。 1、类变量,是归属类的变量,它是通过在定义类的属性的时,增加static修饰符,所以又称为静态变量。类变量不仅可以直接通过类名+点操作符+变量名来操作,也可以通过类的实例+点操作符+变量来操作,大多 阅读全文
摘要:
就近原则(Principle of Proximity)-把相关的操作放在一起,例如让注释靠近它所描述的代码,让控制循环的代码靠近循环本身等。变量的就近原则指尽可能在靠近第一次使用变量的位置声明和定义该变量。就近原则实际上也是变量的作用域最小化的一种实现手段。过早地声 明局部变量不仅会使它的作用域过 阅读全文
摘要:
1、在类中的位置不同 成员变量:在类中方法外面 局部变量:在方法或者代码块中,或者方法的声明上(即在参数列表中) 2、在内存中的位置不同 成员变量:在堆中(方法区中的静态区) 局部变量:在栈中 3、生命周期不同 成员变量:随着对象的创建而存在,随着对象的消失而消失 局部变量:随着方法的调用或者代码块 阅读全文
摘要:
当通过new关键字完成初始化时,虚拟机已经为声明的list对象开辟了内存空间,只是其中有0个元素。 通过contains()方法查找为null的元素。无匹配元素,故返回false; 阅读全文
摘要:
看到一个三目表达式,看了一会才明白(本人菜鸟,勿喷) 输出: == 优先级高于三目运算符,先判断true == true,此时返回true,运算之后的表达式为 Bool b = true?false:true?false:true; 此时三目运算符执行顺序为:从右向左执行,true?false:tr 阅读全文
摘要:
输出: System.out.print(); // 输出语句 (Base) s // 把s对象强制转换为 Base 类型 ((Base) s).FOO // 获取s对象的 FOO成员属性 阅读全文
摘要:
子类B 继承 父类A 输出: 阅读全文
摘要:
引用地址的变化 阅读全文
摘要:
代码块:在Java中,使用{}括起来的代码被称为代码块。根据其位置和声明的不同,可以分为 局部代码块:局部位置,用于限定变量的生命周期。构造代码块:在类中的成员位置,用{}括起来的代码。每次调用构造方法执行前,都会先执行构造代码块。作用:可以把多个构造方法中的共同代码放到一起,对对象进行初始化。静态 阅读全文
摘要:
原理:比较两个相邻的元素,将值大的元素交换至右端。 思路:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。重复第一趟步骤,直至全部排序 阅读全文