已合并

目录

 

一.hashCode()和equals()

二:java的三大特征

1.封装

public class Test {

    }

}

2.继承

3.多态

三.Object类的方法

四:进程和线程(我老是不能说出这两者的概念)、协程

 


一.hashCode()和equals()

1.hashCode()和equals()都是object的固有属性

equals()得出对象的地址   hashcode()我觉得得出的整数值也是对应对象的地址的

2.规定:equals()相等的两个对象,hashcode()一定相等;

   hashcode()相等,equals()可能相等,也可能不等。 

3.对于String,他重写了equals()和hashCode()。。

例如:

String s1=new String("nishizhu");

String s2=new String("nishizhu");

他们两个是s1==s2

equals现在变为比较值是否相同, 但是他们其实并不是存储在同一个地址,所以必须重写hashcode。

 

为什么equals()不同的但是hashcode()却相同呢?   因为在往hsah表里面添加数据的时候产生了hash冲突,利用拉链法会把数据添加到链表上面去,所有就造成了hashcode相同,但是equal()(比较的是地址)不同的情况

 

 

二:java的三大特征

1.封装

封装就是将类的一些信息隐藏在类的内部,只有本类能访问,不允许外部程序直接访问,并通过该类提供的方法来实现对隐藏信息的操作和访问

实现步骤:

 在属性前面加上private,

例如:

public class Dog {
    private String name="zzh";     
    int sex=1 ;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

public class Test {

    public static void main(String[] args) {
        Dog dog=new Dog();
        int a=dog.sex;//直接调用sex能调用,因为他是public修饰的
       
       //dog.name;会报错,因为他是private修饰的,不能直接调用,得需要通过getter和setter方法调用
       dog.setName("nima");
        System.out.println(dog.getName());
        System.out.println(a);

    }

}

 

 

 

 

2.继承

 

继承就是就是子类继承父类的特征和行为,使子类具有父类的一些方法和属性

 

3.多态

多态是同一个行为具有多个不同表现形式或形态的能力。

多态就是同一个接口,使用不同的实例而执行不同操作

继承也是多态的实现形式

使用的 时候的具体表现就是向上转型啊。。就是父类引用可以持有子类对象。那么父类的引用只能使用父类中有的方法,并且调用的时候调出来的是子类中重写过的

向上转型就是多态的一种形式:

 形式:父类类型 变量名=new 子类类型();
此时,虽然该变量指向的是子类对象,但表现为一个父类的形象,可以调用一切父类的方法,子类特有的方法将不能调用。
因此在调用多态的时候要注意:1.在成员变量的编译看父类中是否存在,不存在就编译失败
                            2.成员变量运行父类中的变量
                            3.成员方法编译看父类中是否存在,不存在就编译失败
                            4.成员方法运行子类重写的方法

 

三.Object类的方法

1.getcCass()方法

getClass()返回一个对象的运行时类  如:

Class a=对象.getClass();//得到的是该对象的字节码文件 a.getName()得到名字

2.equals()

3.hashcode()

4.toString()方法:

Object 类的 toString 方法返回一个字符串,该字符串由类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制表示组成

5.notify() 唤醒在此对象监视器上等待的单个线程

6.notifyAll() 唤醒在此对象监视器上等待的所有线程

7.wait() 导致当前线程等待

四:进程和线程(我老是不能说出这两者的概念)、协程

1.进程是操作系统资源分配的基本单位

2.而线程是任务调度和执行的基本单位

系统运行一个程序即是一个进程从创建,运行到消亡的过程。

一个进程在其执行的过程中可以产生多个线程。

3.协程:协程是一种比线程更加轻量级的存在,正比如一个进程下有一些线程,一个线程下面也有若干个协程,协程是人为控制,不受操作系统的管理和调度

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值