很多C++er(包括曾经的我)都蜜汁自信:学了C++,再学Java很容易上手。到底是谁给你的勇气?
很多人经常不屑的说,Java这种虚拟机语言,连虚拟机都是C++写出来的,有什么难的?
TCP协议是在IP协议之上,有没有听说过学完IP协议,再学TCP就很容易上手的?
说出这种话的原因是因为:他们以为做Java开发就只是学一个Java语言而已。
C++的人在折腾哪些东西:C、C++、进程、内存、指针、栈、堆、调试、汇编、编译、链接、操作系统···
Java的人在折腾哪些东西:Java、Spring、SpringMVC、SpringBoot、MyBatis、JVM、Dubbo、K8S、Jetty、Netty、Docker、微服务···
这完全是两个维度的东西,C++是面向计算机系统编程,Java是面向软件架构和业务编程,它们可能是会有一些重叠的知识部分,但绝不是学完一个学另一个就容易,这是对另一个技术方向的傲慢与轻视。
话说回来,学了C++,再学Java有优势吗?
优势那肯定是有的,我自己就是做了多年C++后再学的Java,对此深有体会。有了C++开发的经验和对内存管理、进程线程、同步与异步这些操作系统的知识后,在学习Java编程的时候会站在一个更全局的视角,去探究Java程序背后的工作原理,比起一开始直接学Java的同学会理解的更透,学的也更快。
但Java这条路,学完Java语言,只是迈出了第一步,所谓的很容易也只限于此。
C++和Java要走的路线完全不同,与其纠结于语言的选择,莫不如问一问自己,自己是喜欢面向计算机编程还是面向业务编程?