从0开始学习JAVA。
所用教材为《thinking in JAVA》
JAVA是一种面向对象oop的语言,和C++类似,我个人认为它是一门C++-的语言,有以下区别
1.废除了C++中独立存在的变量和函数,必须使用类。
2.取消了指针的使用,JAVA 中的传入到方法的对象是其引用,而C++传入到方法的形参可以是指针,引用或者是调用拷贝构造出的新的对象。
3.JAVA中程序员使用new在堆上分配空间调用构造函数来实例化变量,C++中也用new来分配内存,但是需要自己delete掉内存否则会内存泄漏,java的垃圾回收机制则会尽量避免内存泄露的情况。
4,C++回收资源,通常会调用析构函数,JAVA有类似函数的叫finalize()。但是JAVA并不一定调用。finalize通常是在垃圾回收器准备好释放对象占用的存储空间时才调用的,问题在于,对象可能并不会被垃圾回收。如果一个对象最终没有被回收,在进程结束时会被系统回收资源。
不过目前只学了一点点的皮毛,JAVA的三大框架没有过多的了解。
而且和C++的预处理,编译,汇编,链接相比,Java的编译过程更复杂,因为有了jvm虚拟机,导致了java没有C++的sizeof,在不同平台下基础变量的字节大小都一样,也不用考虑文件传输时的大小端问题。
拿java搞socket网络通信?tcp udp通信?应该可以但是效率没有C和C++高。



