JAVA从入门到入土(引入篇)

简介: 采用亲身经历写的Java之旅

JAVA是什么?为什么要学习使用JAVA?JAVA有什么突出的特色?这一连串的问号是我在上大学时刚学习到JAVA时产生的疑问,相信大家也会有些疑问。我在下面会结合我将近三年的Java开发经历进行解答。

初出茅庐

大学期间我的第一门程序设计语言就是JAVA,当然也学了网页设计,但是HTML严格意义上说不属于编程语言:smile:。当时正好遇上疫情爆发的时候,老师通过网上授课,当时我的第一印象就是这个语言有点意思,似乎和我头脑里的语言模式完全不同。我的印象是涉及语言方面基本就是:英语或日语。这两种语言在学习上多数在于背诵和积累,这些完全是像我这种理工男的噩梦。但编程语言与这些国际化语言完全不同之处在于,编程语言具有很强的逻辑性和规范性,每一步、每一个符号以及每一个变量名都是有明确的意义的。当然这也遵循算法的五大法则之一的确定性。对编程语言的学习不再是死记硬背的学习方法,取而代之的是理解与领悟。这一点上便给我一点好感度,其实更多原因在于好奇。好奇为什么输入一些代码后计算机就可以按照规则执行或者计算机如何分辨什么时候该执行什么时候不执行。兴趣来了,那脚步就挡不住了。

PIZP~`M~2CY2B`FF)OL8RUB.png

Java是什么

JAVA是一门面向对象的编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念。Java按照应用领域分为三种分别是JavaSE(Java平台标准版)、JavaEE(Java平台企业版)、JavaME(Java平台微型版)。JAVA原本是sun公司进行研发与升级维护的,之后由于种种原因转到由Oracle(甲骨文公司)进行研发,Java最早出现可以追溯到1991年,之前用了 C++ 为基础。并把这种语言称为 “Oak”,后来改成Java语言。在岁月的不断更替中,Java也在进行改进与升级,如今已经更新到jdk 17了。Java主要由jdk组成,jdk是java的语言环境包,缺少了就无法进行程序编译运行,Java引以为傲的强大的可移植性其实在于jdk底层的jvm虚拟机,只需在不同的系统上安装对应版本的虚拟机就可以实现程序的正常运行。而jre提供了Java程序必需的运行环境,也就是一些类库。通过几大部件的相互作用,共同进行程序的.java文件的编译后产生后缀为.class的字节码文件,虚拟机在执行此字节码文件实行程序的运行。具体布局如下:

image.png

为什么要学习Java

在上述介绍Java中体现了Java的基本构成和一些简单的原理,这里我再来介绍为什么要学习和使用它。Java有很多特点,相比于编程语言的鼻祖C语言来说,它更加灵活。C语言更多的是偏向于底层系统或框架的开发,而Java应用领域特别广泛,如服务器程序,网站,嵌入式领域或者科学领域应用,在从前特别火的android领域就是Java大显身手的地方。Java摈弃了其他语言的难懂和复杂的地方,它是一门面向对象的编程语言,并引入三大理念:封装继承多态

很好的封装将会使整个程序降低冗余和维护成本。Java中讲究单继承多实现的原则,避免的多类之间相互继承而产生了高耦合度。最厉害的还要属Java的多态,多态的引入使Java更多灵活,可扩展性也大大提升了。增加新的子类不影响已存在类的多态性、继承性,以及其他特性的运行和操作。这些理念的引入使Java的开发更加灵活与强大,能够在更多的领域涉足与发展。Java也是现代编程语言榜上位列前几的热门语言之一,这点也是毋庸置疑的。

Java有什么特色

Java的特色有很多,但是最突出在于它的高可移植性。从前C语言编写的程序如何换了个系统再进行编译可能就会出现各种各样的兼容性问题或者格式错误等杂乱的问题。但是Java不同,需要再对应系统下载对应版本的Java的虚拟机就可以进行运行,而且没有丝毫差别。其次是简易性,Java废弃了C语言等中引用的令人难懂的指针、内存地址控制、头文件引用等问题,采用更简单的引入和重构等方法使代码更加简洁与通俗易懂。其中最核心是面向对象的编程思想,它不同于C语言的面向过程的编程思想。Java中讲究万事万物皆对象,每个实体都可以看成一个对象来进行操作与设计,对象就必然会有一定的属性和行为,属性描述对象的特点,行为描述对象的功能,这种编程思想不仅通俗易懂而且使用非常高效,这也是软件工程学的一次革命,大大提升了人类的软件开发能力,是一个伟大的进步,是软件发展的一个重大的理程碑。Java还有很强大的扩展性,Java编程多采用接口化开发,通过第三方插件实现Java的接口就可以实现功能的扩展与加强。一般在企业阶段开发一般会用到很多的第三方框架的支持,如Spring、mybatis等,这时候Java的强大的扩展性就完美体现出来了。Java还有支持多线程、高并发项目的开发。

感到枯燥

}PD747S3H23)}V9BNCG~_FG.gif

这也遵循了万事开头难的说法,期间有些人学习感到枯燥无味,这是因为没找到学习的乐趣所在。每学习一个技能都会经历三个阶段,第一阶段是:好奇心驱使让我们开始学习某项技能,第二阶段是:我们经历的挫折或者兴趣衰退,面临放弃。第三阶段就是:我们在学习中找到了学习的意义与乐趣,此时我们对学习的技能就会有一个更深层次的理解。我就拿我以前的办法来说,我当时在学习JAVA时,总是会做一些简单的程序来解决一些数学题或者一些实际问题。

还记得当初令我们头疼的数学题吗?如:1、一个空水池,一个管子出水,一个管子进水,问多久能注满水池?2、笼子里有一些鸡和兔子,笼子上有n个鸡和兔子,笼子下有m个脚,请问鸡兔各有几只?等等还有很多的此类问题。但是我们现在学习了Java我们就可以用我们的知识来解决问题。就拿鸡兔同笼问题来说,我们需要解决此类问题很简单,知道了头数和脚数,使用循环就可以筛选出来鸡和兔子各有几只?

//鸡兔同笼,鸡兔一共35只,笼子里脚一共94只,请问分别有多少只兔子和鸡?intfoot=94;//鸡兔一共94只脚intsum=35;//鸡兔一共35只for (intchicken=1; chicken<=foot/2; chicken++) {//鸡的数量intrabbit=sum-chicken;//兔子的数量if(rabbit*4+chicken*2==foot){
System.out.println("兔子有"+rabbit+"只");
System.out.println("鸡有 "+chicken+"只");
            }            
        }

问题就轻松的化解了,这也体现出来编程语言的强大的魅力之处。

总结

每个技能或语言的学习都是学无止境的,时代在进步,科技在发展,万事万物都在更替。我们不可以止步于某个阶段的学习,单从Java这些的发展与迭代来看,我们就需要一个“活到老,学到老”终生学习的理念,与时代同进,在互联网行业的浪潮中贡献出自己的力量。


相关文章
|
机器学习/深度学习 SQL 存储
实时特征计算平台架构方法论和实践
在机器学习从开发到上线的闭环中,实时特征计算是其中的重要一环,用于完成数据的实时特征加工。由于其高时效性需求,数据科学家完成特征脚本离线开发以后,往往还需要工程化团队通过大量的优化才能完成上线。另一方面,由于存在离线开发和工程化上线两个流程,线上线下计算一致性验证成为一个必要步骤,并且会耗费大量的时间和人力。
1325 0
实时特征计算平台架构方法论和实践
|
监控 算法 数据可视化
深入解析Android应用开发中的高效内存管理策略在移动应用开发领域,Android平台因其开放性和灵活性备受开发者青睐。然而,随之而来的是内存管理的复杂性,这对开发者提出了更高的要求。高效的内存管理不仅能够提升应用的性能,还能有效避免因内存泄漏导致的应用崩溃。本文将探讨Android应用开发中的内存管理问题,并提供一系列实用的优化策略,帮助开发者打造更稳定、更高效的应用。
在Android开发中,内存管理是一个绕不开的话题。良好的内存管理机制不仅可以提高应用的运行效率,还能有效预防内存泄漏和过度消耗,从而延长电池寿命并提升用户体验。本文从Android内存管理的基本原理出发,详细讨论了几种常见的内存管理技巧,包括内存泄漏的检测与修复、内存分配与回收的优化方法,以及如何通过合理的编程习惯减少内存开销。通过对这些内容的阐述,旨在为Android开发者提供一套系统化的内存优化指南,助力开发出更加流畅稳定的应用。
438 31
|
网络虚拟化 Windows
Windows 10 Windows1011出现0x80190001错误解决方案! Windows微软账户无法登录问题 Microsoft Store商店用不了
Windows 10 Windows1011出现0x80190001错误解决方案! Windows微软账户无法登录问题 Microsoft Store商店用不了
897 1
|
安全 编译器 C++
C++一分钟之-编译时计算:constexpr与模板元编程
【6月更文挑战第28天】在C++中,`constexpr`和模板元编程用于编译时计算,提升性能和类型安全。`constexpr`指示编译器在编译时计算函数或对象,而模板元编程通过模板生成类型依赖代码。常见问题包括误解constexpr函数限制和模板递归深度。解决策略包括理解规则、编写清晰代码、测试验证和适度使用。通过实战示例展示了如何使用`constexpr`计算阶乘和模板元编程计算平方。
323 13
|
12月前
|
机器学习/深度学习 人工智能 算法
技术项目经理TPM的日常任务:职责侧重与工作内容
技术项目经理是技术驱动型行业中的关键角色,是技术与管理的桥梁,负责识别和解决技术风险,提升团队技术能力,保证技术方案的稳定性和安全性。
744 2
技术项目经理TPM的日常任务:职责侧重与工作内容
|
Kubernetes 数据可视化 微服务
掌握 Istio:部署完成后如何运用?
本文介绍了在Ubuntu 20.04单机环境下使用Istio服务网格的配置与测试过程。主要内容包括: 1. **环境准备**:使用一台IP为10.9.2.83的机器。 2. **Istio简介**:Istio简化了Kubernetes集群中的服务间通信、流量管理、安全性和可观测性。 3. **部署Bookinfo示例**: - 创建命名空间`istio-demo`并启用自动注入功能。 - 部署Bookinfo应用,包含四个微服务,并验证其正常运行。
160 0
|
存储 监控 文件存储
nas的学习
nas的学习
440 1
|
机器学习/深度学习 人工智能 搜索推荐
ChatGPT4
4.3.3 人类反馈强化微调效果
337 0
|
SQL 存储 关系型数据库
SQL默认索引是什么:深入解析与技巧
在SQL数据库中,索引是一种用于提高查询性能的重要数据结构
|
缓存 监控 JavaScript
IM跨平台技术学习(九):全面解密新QQ桌面版的Electron内存优化实践
本文我们将和大家分享新版 QQ 在内存优化方面的探索和阶段性优化进展。虽然本文的讨论主要集中在 Windows 平台,但由于 Electron 的跨平台特性,大部分优化措施也同样适用于 macOS 和 Linux 平台。
522 0