学习Java的理由
“Java好在哪”、“Java能养活自己吗”、“Java能吃吗”...一百位程序猿眼中有一百种Java,我只能分享我眼中的这种Java:外貌嘛,看起来是个“全能选手”,偶尔也是个“文艺青年”,内在嘛,藏着两套隐藏绝招“一劳多逸法”和“取之不尽术”。
一、全能选手
我们身处这个物欲横流的时代,“情怀”已经变得不堪一击,我们往往倾向先解决温饱,再谈阳春白雪。我想如果了解了“全能选手”Java的前世今生,应该是带你走上致富道路较快的途径吧。学会了Java,可以说下面三种岗位你都能胜任了:Java服务器端研发、Android客户端研发及大数据研发,目前这三个方向的岗位需求非常大,且薪资也很可观。还有一点也值得注意,就是Java语言和C#语言非常相似,而C#目前是主流游戏引擎Unity3D的编程语言,那这就意味着,你将来还可以选择游戏客户端开发岗位啦!
二、文艺青年
《百度百科》对文艺青年的定义是:喜欢文化艺术的青年人。我觉得这个称呼用在Java身上正好合适。一方面是它的基本语法可读性很强,比如一些关键字都是直接英文单词表示,而很少使用符号,这对新手就非常友好了,因为新手编程的心态一般是“宁愿多打几个字也一定要看得懂”,不然很容易半途而废。另一方面,它是纯面向对象的语言,对象之间通过消息交流,仿佛读小说里的对话一般舒适。比如同样是要编程实现一个场景:一个班级有张三、李四、王五、王六四位同学,老师要把姓王的同学都挑出来”,用Java语言写是这样的://Java
List<String>students=List.of("张三","李四","王五","王六");
students=students.stream().filter(student->student.startsWith("王")).toList();
System.out.println(students);可以看出,Java的写法非常干净利落,先是List.of创建这四位同学构成的列表students,再对他们进行过滤,过滤出那些姓名以“王”开头的学生,较后toList表明转变成一个新的列表,较后是把过滤出的学生显示在屏幕上。而如果我们用Golang语言去写,则显得比较冗长和原始://Golang
students:=[]string{"张三","李四","王五","王六"}
studentsWang:=make([]string,0)
for _,student:=range students{
if strings.HasPrefix(student,"王"){
studentsWang=append(studentsWang,student)
}
}
println(students)我相信在我们初学编程之际,代码看起来舒服是重要的,否则很难有继续学习下去的兴趣。

三、一劳多逸法
我们较怕的就是,好不容易学会了一门编程语言,结果当要学习下一门科目时(比如面向对象、设计模式、软件工程、UML建模等),发现书上用的语言我们竟然不会!或者提到的一些概念我们压根没听过...这时Java的优越性就体现出来了,它除了具备编程语言的所有要素以外,又有纯正的面向对象思想,而很多计算机和软件知识都是以Java为基础语言展开讲述的。总之,学会了Java,很多科目基本就不会有阅读障碍了,这样你也就可以放放心心地去学习那个科目本身的内容了。
四、取之不尽术
无论是做学校项目、工作项目还是外包项目,我们经常需要用到一些通用组件,比如操作数据库的组件、与浏览器进行网络通信的组件、读写Excel表格的组件等,如果我们自己从零开始去写,会非常麻烦,而且较后写出来运行效率可能还很慢,这时,我们就需要站在巨人的肩膀上啦——使用前人写好的Java组件!前人已经把组件底层的代码实现好了(而且又快又好!),当我们要使用的时候,只需要引入这个组件,然后写几行代码,调用一下他的组件就行!
上面说的那些组件其实面儿都很小,Java的生态圈远不止这些,更重要的是在分布式系统基础设施这块,任何有点体量的上层系统或软件(比如淘宝、抖音分别是两个上层系统),都需要底层有强大的基础服务设施作为支撑,这样才能维持他们长久稳定地运行,常见的基础服务设施有:服务发现与注册、配置中心、消息总线、负载均衡、断路器、数据监控等。但对于一个初出茅庐的中小型公司而言,光开发自己系统本身的功能都还忙不过来呢,哪有功夫(也往往没有实力)去开发上面的基础服务设施。这时,Java生态里的主角出场了——Spring Cloud。Spring Cloud将一些公司开发得比较成熟、经得起考验服务框架集合起来,通过Spring Boot风格进行统一化包装,屏蔽掉了复杂的配置和实现原理,较终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。