java 基础

java的三大特征

继承,封装,多态

1.封装

关键字的使用

保护类的特性和行为

同时给外部类提供一些改变数据的方法

2. 多态的理解

向上转型 List list = new ArrayList

父类引用指向子类对象,但是子类的方法没有办法获取到

3. ==和.equals 的区别

==比较的是引用是否指向对上的同一地址

所有的类都是继承于Object

Object中.equals 方法实际上没有任何区别 就是使用的==比较。

但是会有一些类重写equals方法比如String类,重写的方法为:

public boolean equals(Object anObject) {
        if (this == anObject) {
            return true;
        }
        if (anObject instanceof String) {
            String anotherString = (String)anObject;
            int n = value.length;
            if (n == anotherString.value.length) {
                char v1[] = value;
                char v2[] = anotherString.value;
                int i = 0;
                while (n-- != 0) {
                    if (v1[i] != v2[i])
                        return false;
                    i++;
                }
                return true;
            }
        }
        return false;
    }

当==不相同时,会判断二者的长度和内容是否相等

情况一:

String s1 = new String("java");
String s2 = new String("java");

都是new出来的对象,二者在对上的地址不相同。结果== false, equals true

情况二:

String s1 = new String("java");
String s2 = s1;
二者只不过是引用不相同,但是指向的地址都是相同的,所以两个都是true

情况三:

String s1 = "java";
String s2 = "java";

两个方法都是true。

s1和s2都储存在栈中,第一句执行时会在字符串常量池中找有没有hello,如果没有则创建,第二次执行时直接使用已经存在的

4. Hashcode和equals

所有的Object中都有hashcode()方法,他是在计算对象在队中的索引。

但是两个不同对象计算出来的索引位置可能是相同的,这是hashcode的计算方法所决定的

5. 接口与继承

接口中的方法必须重写

但是继承的方法可以不重写

6. 重写和重载

重写:子类重写父类方法

重载:在一个类中,类的方法名一样但是传入进的参数不相同,典型案例:构造方法

7. 抽象类和接口

三点区别:

1.抽象类中可以有普通方法,但是接口中必须是public static方法

2.抽象类成员可以是各个类型的,但是接口中必须是public static final类型的

3. 抽象类只能有一个,但是接口可以继承很多

应用场景:

接口:A like B

继承抽象类:A is a

8. 反射

9. 注解的原理

10. 抽象类 和内部类

11. 匿名内部类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值