Java基础学习笔记

面向对象的程序设计的3个特征:

1. 封装性。对外部不可见,必须通过实例化一个类的对象,通过对象才能访问此类的属性及方法。private的属性,不能由对象直接进行访问,须通过setter和getter方法设置和取得。

        

2. 继承性。子类继承父类,子类只能继承一个父类。

3. 多态性。

    方法重载、重写:一个类中,允许多个同名的方法,但方法的参数个数或参数的类型不同

    对象多态:子类对象与父类对象相互转换


    类属于引用数据类型。

    所有对象名称都保存在栈内存中,而对象的具体内容则保存在堆内存。Person per=new Person(),对象名称per保存在栈内存,保存的内容是其对应的堆内存空间的访问地址。

每当出现关键字new的时候必定表示开辟了新的堆内存空间。


    构造方法:当调用关键字new实例化对象时才会调用构造方法。在Java中如果一个类中没有明确地声明一个构造方法,在编译时则会直接生成一个无参数的,什么都不做的构造方法。


    匿名对象:没有明确给出名称的对象。一般匿名对象只使用一次,且匿名对象只在堆内存中开辟空间,而不存在栈内存的引用。匿名对象没有栈内存引用它,所以匿名对象在用过一次之后就等待被垃圾收集机制回收。

    一个字符串就是一个String类的匿名对象,匿名对象就是已经开辟了堆内存空间的并可以直接使用的对象。“hello”.equals("hello"),一个字符串可以调用String类中的方法,也就证明了一个字符串就是一个String类的匿名对象。

    String str1=“hello”; 先在堆内存开辟了一个空间,内容那个是“hello”,然后把这个堆内存的地址给了str1。如果一个字符串已经被一个名称引用,则以后再有相同的字符串声明时,就不会再重新开辟空间,继续使用已经开辟好的堆内存。

    String str=new String("hello");一个字符串是一个String类的匿名对象,而如果使用new关键字,不管如何都会再开辟一个新的空间,但此时,此空间的内容还是hello。所以此代码实际上是开辟了两个内存空间(如果在之前已经声明过一个hello的匿名对象,此代码就只开辟了一个空间),真正使用的是new开辟的空间,另外一个匿名的,就等待被回收。

    字符串的内容一旦被声明则不可改变。String str=“hello”; String str=str+" world";

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值