zl程序教程

您现在的位置是:首页 >  后端

当前栏目

学了三年Java,只会一个Hello World....

JAVA 一个 World 三年 Hello 只会 ....
2023-06-13 09:15:59 时间

前言

初次接触编程是13年9月份,大一的第一节C语言课上,学了一个简单的max(a,b)。当时属于代码看不懂,所以也没有考虑学这个有什么用,只是觉得nblity。

后来Java课堂上接触到第一个程序:Hello World!继续学了一段时间,开始不禁思考:学这个有什么用? 但局限于那个时候,只是单纯地为了应付考试的学习思维,后来这个想法就只停留在了萌芽阶段。

16年开始自学Java的时候,这个想法又涌上心头。幸得大佬舍友指点迷津,再加上后来的大作业实践中又窥得几分答案,故得以在Java这条路上坚持了许久。

Java作为我的主语言,学了很多年。虽然在最后的职业选择中,没有成为一名优秀的Java开发,但是Java还是与我的工作内容息息相关。这里就根据我自己所见所经历的,来浅谈一下Java能干什么。

Java能干什么

学数据类型、if、while、for语句、集合这些东西,到底有什么用?或者说到底学到什么时候,才能做出一个产品?只能说,让子弹飞一会

现在仔细想,其实后来课堂上的学习,就这个问题也给出了很多答案,只是那时候我不懂,就错过了。

1. 桌面应用开发

桌面应用开发就是基于Swing做的C/S架构的程序。以前好多管理系统都是C/S的,不过现在常用的都是B/S架构。这里C指的是Client,即客户端,B指的是Browser,即浏览器。而S就是Server,即服务的意思。

大一下学期的Java课程,我记得一共是做过两次大作业。第一次题目是基于Swing做一个管理系统,我做的是运动会报名系统。通过JDBC连接MySQL就是核心代码,不超过二十行的那种。在界面上输入姓名,选择一个项目,点击确认,插入到数据库,完成。

当时做完这个大作业的时候,我觉得自己无敌了,拿捏了~ 其实现在想想,那时候懂个der啊。第二次是做一个音乐播放器。我记得我做出来了,也是基于Swing。

2. 安卓开发

应该是大二,开设了安卓课。当时学渣一枚,课堂上没学到什么东西,然后就直接过渡到大作业实践阶段。

当时实践内容是仿照微博做一个APP,电脑上安装了安卓模拟器,老师也给了一大堆素材,后来我记得我应该是做出来了....

当时听得最多的名词就是SDK,当然,到实践结束我也没搞明白SDK是什么。

3. 后端开发

"后端开发是当前Java开发者扎堆最多的职业。"

后端开发主要使用的技术,从我刚入学听说的的SSH框架(Sping、Struts2、Hibernate),到我自学Java时的SSM(Spring、SpringMVC、Mybatis),再到后来学习的Springboot。这一路走来,低耦合、低配置化,让学习和开发难度在逐渐降低。

有的后端开发会调侃自己是'CURD工程师',有时候也无可厚非。框架帮我们造了轮子、制定了开发模板,我们只需要在固定的地方,编写承上启下的业务代码逻辑。启下:增删改查数据库;承上:接口返回数据到前端。

当然,后端要学的框架还有很多。例如微服务框架SpringCloud、分布式框架Dubbo、NIO框架Netty、权限控制安全框架SpringSecuriy/Shiro等。

4. 大数据开发

在我大数据开发的生涯中,接口写的比较少,虽然偶尔也会写,但都是分内之外的事情。更多的是偏向于数据采集接入和处理。

17年8月份实习期开始学习大数据,11月份开始接触Java开发的程序。18年开始接触Spark,但Spark开发我都是用Scala,Java在自定义Hive的UDF和Flume的组件时会用到。

大数据和Java是息息相关的,这一点是毋庸置疑的。大数据组件很多源码都是基于Java开发的。当然,如果你只想做一个ETL工程师的话,是可以不用学Java的。

5. 其他

上面列举的4种Java用途,都是我个人经历过的。其他的用途还需要大家来扩展。

基础的意义

如果把上面的Java用途比作上层建筑,那么数据类型、if、while、for这些,就是下层基础。学好Java基础是关键。所以Hello World也是极具意义的,它让你明白一个如何定义一个类、一个程序的入口是main()函数。

在Java基础学习的概念,比如「面向对象、封装、继承、多态」等,是奠定Java开发的核心理论。在后面开发中,经常遇到的集合、I/O、泛型、反射、异常等这些基础类,也是在Java基础阶段学到的。

Java体系

画了一张图,用斗破苍穹修炼等级来比喻了一下Java的学习过程。Java基础相当于斗气凝结成气旋,只有成为斗者才能走上修炼之路。JavaWeb的斗气化翼,相当于积累之后质变的阶段,初窥后端开发流程。

而Java框架对应斗宗的踏空而行,是真正接触到工作内容的阶段。微服务让人跳出传统的开发模式,对应斗尊的开辟空间。而JVM和并发编程对应斗圣强者,一是难度大,二是只有一部分人愿意学到这。。

之所以五星斗圣戛然而止,因为IT行业学无止境,需要缓慢修炼学习积累。

如果说Java基础让我了解Java,那么JavaWeb是我自学Java的第一次质变。我是在学完JavaWeb后,才明白之前学的int、String、for、while、if、List、Map、Set的价值所在。

我定义一个servlet写下逻辑代码,在开发简单页面后,发布到tomcat上运行。我在浏览器中访问页面,通过点击按钮触发servlet中自己写的代码。当时感觉好神奇,心里也有点成就感。对一个Java初学者几个月以来,具有肯定意义的时刻。那也算是第一次接触到前后端,只是当时过分菜而不自知。

Java框架就触摸到了工作内容。框架算是JavaWeb的进阶版。框架给我们提供了更为简单快速的开发方式,所以其易用性深受广大开发者的喜爱。

我没有很特地去学微服务,因为学完框架就实习学大数据去了。后来也现学现卖了一次,基于SpringCloud和Springboot写过一个微服务程序。但是微服务的服务拆分、服务协同、网关、负载均衡还是值得研究的,会扩展一些之前没有见过的知识面。

JVM,挺有意思的。看书看了三次,才稍微学了点皮毛。这一部分的学习是真的太需要耐心了,我对它的形容就是:晦涩枯燥但快乐。快乐该怎么描述呢?平时用不到,但用到了就知道。

结语

很久之前,就想整理一下我自学Java时做的笔记。但是原样输出对我意义不大,所以最后决定以博客的形式,在原有笔记的知识点上,加上个人的理解,整理成一个Java系列的文章。

第一篇主要结合自己的经历,来讲一讲Java能做什么。下一篇打算写一写<Java的面向对象>,一个贯穿整个Java的程序设计思想。

感谢每一次遇见