1. 程式人生 > >就業準備

就業準備

沒有 fin align tab int 無法 引用 類型 bool

一,java基礎和數據結構

  1.equals和==的區別

package testJavaBase;

public class TestEquals {

    public static void main(String[] args) {
        int i=10;
        int j=10;
        System.out.println(i == j);//對於基本數據類型==就是比較其值是否相同,true
        
        
        Person p1 = new Person();
        p1.setName("ji");
        Person p2 
= new Person(); p2.setName("ji"); System.out.println(p1 == p2);//對於引用數據類型==比較的是地址是否相同,false System.out.println(p1.equals(p2));//false //此equals方法是從Object中繼承來的 //在Objecy中的定義就是return (this == obj);
//當Person重寫了equals時就是true了 String str1 = new String ("jiyunfei"); String str2 = new String ("jiyunfei"); System.out.println(str1 == str2);//false,兩次new就是兩個地址 System.out.println(str1.equals(str2));//true,此equals方法是String類重寫的 String str3 = "ji"; String str4
= "ji"; System.out.println(str3 == str4);//true,因為"ji"是在 字符串常量池 中的,str3和str4都指向這塊地址 System.out.println(str3.equals(str4));//true,此equals方法是String類重寫的 } } class Person{ private String name; public void setName(String name) { this.name = name; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; Person other = (Person) obj; if (name == null) { if (other.name != null) return false; } else if (!name.equals(other.name)) return false; return true; } }

  2.abstract修飾的方法不能有方法體

以下是不能用abstract修飾的
屬性 抽象是為了讓子類重寫,屬性沒有必要
私有方法 私有方法無法被子類重寫,會報錯的
構造器 子類無法重寫父類的構造器
靜態方法 靜態方法可以用類名直接調用
final方法 final表示不能重寫

  3.final修飾符

    final一旦修飾了變量,那麽此變量就是一個常量,必須也僅能賦一次值

    final修飾類,那麽此類不能被繼承

    final修飾方法,則此方法不能被重寫

    final若修飾的是一個引用,那麽此引用不能再引用其他地址

就業準備