Java语言与C++语言的差异总结(二)

2014-11-24 03:05:53 · 作者: · 浏览: 1
支持可选操作,某个类型的对象可以不支持这些接口,如果对这种对象调用这个接口就会抛出UnsupportedOperationException异常,这种动态语言特性C++不支持。

46、Java的标准输入输出对象是System.in/System.out,而C++是cin/cout。

47、Java中的enum类型比较像类,可以有方法,除了不能继承,而C++的enum不提供这个机制。

48、Java支持注解机制,可以在代码中嵌入一定格式的元数据,而C++不提供这个机制。

49、Java的线程库提供Thread.yield()方法,能够主动让出线程的执行权,而C++不支持这个特性。

50、Java语言支持内置的synchronized关键字来标记一个方法或语句块受到锁的保护,并且一个对象的所有synchronized方法或一个类的所有静态synchronized方法共享同一个锁,而C++不提供这个机制。

51、Java的Object.wait()会暂停当前线程进入睡眠状态,同时会释放持有的锁,当另一个进程调用Object.notify()后,睡眠线程会重新持有锁,然后被唤醒继续执行,而C++在调用操作系统的同类函数时,是不能在持有锁的时候睡眠的,因为睡眠不会释放锁。