java学习笔记

最近突然对java产生了兴趣,学习的过程中记下学习笔记

  java深化了对象的概念,除了基本类型,一切皆类,即使是基本数据,也可以包装成对象。

  java限制了重载,只有在string类中使用了‘+’和'-'的重载,并且禁止用户自己定制运算符的重载。

  java中数组是一种类,而不像c/c++中那样,是一段内存。

  类中的main函数默认为静态的。

  c++中初始化和清理是很重要的步骤,所以刚接触java的时候对于初始化和清理这一块总感觉有点怪怪的,可能是以前没接触过垃圾回收机制。java中的构造器可以通过this指针调用其他构造器,这就可以最大限度的使用默认构造器了便捷,以前在使用c++中没有使用过类似的技巧,以后有时间可以研究一下。java中初始化基类对象没有使用初始化列表,而是在构造器中使用supper()对基类进行初始化。关于清理,java引入了垃圾回收机制,但是垃圾回收器只知道释放由new申请的内存,而对于不是由new申请的内存如何清理呢?java允许在类中定义一个finalize()方法,但是finalize()不是c++中的析构函数。也就是说调用finalize()后对象可能不会被析构。垃圾回收只与内存有关,当内存用尽的时候垃圾回收才会去回收内存。

  有一点需要指出,java类内部中的变量的初始化要早于方法的初始化,无论这个变量是否放在方法后,而变量的初始化顺序取决于变量的先后顺序。静态数据的初始化,因为静态数据只占用一份存储域,所以他无法是局部变量。

  java中取消了多重继承,避免了菱形集成的问题,但是也相应的减少了编程的灵活性,而所有对象都集成自object类,所以所有的java类本质上都是一种类。这就让我想起了我们在做的项目,虽然它是在c++上做起来的,但是使用了单根继承。有时间应该研究一下单根继承的好处。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值