为什么学Java语言

古有编程圣经《21天学通C语言》人手一本,昨有 “人生苦短,我用Python”,今有Golang带领程序猿走进新时代...编程语言千千万,作为励志要成为程序猿的我们,要独爱哪一门呢?

学生时代的我也曾为学什么语言犯过愁:我嫌弃C语言的太过暴露,讨厌C++的啰里八嗦,嘲笑Python的没有内涵,更不屑于C#的拿来主义...谁叫咱也是个讲究人。或许是冥冥之中吧,14年那时候(暴露年龄了)智能手机刚兴起,安卓APP开发迅速引爆了互联网,我也随大流,稀里糊涂地买了一本李刚老师的《疯狂Android讲义》来学,从此便一发不可收拾地喜欢上了安卓APP的编程语言——Java。虽然工作已有快4年之久,但时至今日,我依然觉得Java是最适合初学者、性价比最高的语言!


学习Java的四大理由

“Java好在哪”、“Java能养活自己吗”、“Java能吃吗”...一百位程序猿眼中有一百种Java,我只能分享我眼中的这种Java:外貌嘛,看起来是个 “全能选手”,偶尔也是个 “文艺青年”,内在嘛,藏着两套隐藏绝招 “一劳多逸法” 和 “取之不尽术”。

1 全能选手

我们身处这个物欲横流的时代,“情怀” 已经变得不堪一击,我们往往倾向先解决温饱,再谈阳春白雪。我想如果了解了 “全能选手” Java的前世今生,应该是带你走上致富道路最快的途径吧。学会了Java,可以说下面三种岗位你都能胜任了:Java服务器端研发、Android客户端研发及大数据研发,目前这三个方向的岗位需求非常大,且薪资也很可观。还有一点也值得注意,就是Java语言和C#语言非常相似,而C#目前是主流游戏引擎Unity3D的编程语言,那这就意味着,你将来还可以选择游戏客户端开发岗位啦!

2 文艺青年

《百度百科》对文艺青年的定义是:喜欢文化艺术的青年人。我觉得这个称呼用在Java 身上正好合适。一方面是它的基本语法可读性很强,比如一些关键字都是直接英文单词表示,而很少使用符号,这对新手就非常友好了,因为新手编程的心态一般是 “宁愿多打几个字也一定要看得懂”,不然很容易半途而废。另一方面,它是纯面向对象的语言,对象之间通过消息交流,仿佛读小说里的对话一般舒适。

比如同样是要编程实现一个场景:一个班级有张三、李四、王五、王六四位同学,老师要把姓王的同学都挑出来”,用Java语言写是这样的:

//Java
List 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)

我相信在我们初学编程之际,代码看起来舒服是第一重要的,否则很难有继续学习下去的兴趣。

3 一劳多逸法

我们最怕的就是,好不容易学会了一门编程语言,结果当要学习下一门科目时(比如面向对象、设计模式、软件工程、UML建模等),发现书上用的语言我们竟然不会!或者提到的一些概念我们压根没听过...这时Java的优越性就体现出来了,它除了具备编程语言的所有要素以外,又有纯正的面向对象思想,而很多计算机和软件知识都是以Java为基础语言展开讲述的。总之,学会了Java,很多科目基本就不会有阅读障碍了,这样你也就可以放放心心地去学习那个科目本身的内容了。

4 取之不尽术

无论是做学校项目、工作项目还是外包项目,我们经常需要用到一些通用组件,比如操作数据库的组件、与浏览器进行网络通信的组件、读写Excel表格的组件等,如果我们自己从零开始去写,会非常麻烦,而且最后写出来运行效率可能还很慢,这时,我们就需要站在巨人的肩膀上啦——使用前人写好的Java组件!前人已经把组件底层的代码实现好了(而且又快又好!),当我们要使用的时候,只需要引入这个组件,然后写几行代码,调用一下他的组件就行!

组件调用

上面说的那些组件其实面儿都很小,Java的生态圈远不止这些,更重要的是在分布式系统基础设施这块,任何有点体量的上层系统或软件(比如淘宝、抖音分别是两个上层系统),都需要底层有强大的基础服务设施作为支撑,这样才能维持他们长久稳定地运行,常见的基础服务设施有:服务发现与注册、配置中心、消息总线、负载均衡、断路器、数据监控等。

但对于一个初出茅庐的中小型公司而言,光开发自己系统本身的功能都还忙不过来呢,哪有功夫(也往往没有实力)去开发上面的基础服务设施。这时,Java生态里的大主角出场了——Spring Cloud。

Spring Cloud 生态

Spring Cloud将一些公司开发得比较成熟、经得起考验服务框架集合起来,通过Spring Boot风格进行统一化包装,屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。我们再也不用东拼西凑地去篡一套基础服务设施啦!Spring Cloud真的是我们的福音!

这一节冒出的术语可能稍微有点多,有听不懂的很正常,也不必担心,下面我都会逐一为大家解释的,先有一个感性的认识最重要!知道了Java的厉害和前途,我们就有信心往下走了,等到后面,你自然就理解这些术语了~


该如何开始

师父领进门,修行在个人。学习终究还是要靠自驱,特别是计算机的学习,如果你还希望同步读一本书的话,这里我推荐两本Java的入门书籍,可以选一本看~ 他们分别是《Java核心技术》与《Head First Java》,前者是文字较多的学院派风格,后者是带有情景的寓教于乐风格,两本都非常不错,很适合入门食用。

JAVA核心技术 卷1

Head First Java

如果没有时间买来看也没关系,大家不用着急,下一章我马上会讲如何搭建一个Java的开发环境,编写一份简单的代码,运行我们的Java程序~


题外话

要您觉得这篇文章对您有用的话,欢迎点赞和评论,也欢迎关注我的微信公众号——躺着学编程~ 我会持续更新的~

展开阅读全文

页面更新:2024-03-29

标签:语言   取之不尽   科目   组件   选手   设施   代码   基础   程序   系统

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top