【解析Java_01】从.java说起

从.java文件说起

  • 记录一下学习Java的过程,一是为了复习Java的基础知识,二是为了更好的掌握编程知识。
  • 如有错误的地方,请留下相关信息,我立马就改【挨打就要立正!】
  • Java基础知识的更新频率大概在两周一篇,一是因为要去学习一些新东西,二是因为写这些东西也要去参阅一些额外的书籍,避免出现一些误人子弟的情况。

碎碎念

为什么会写这些基础性的东西?因为工作也有一段时间了,从大学毕业后就变成了一个纯纯的CURD Boy,技术没有任何长进,入门的时间又恰好赶上了互联网下行阶段,直到现在也不见到有任何改善的样子,每一年都说是未来十年的最好的一年,实际上却是近年来最差的一年。也算是理解到了历史的每一科尘埃落到普通人身上都是一座无法逾越的大山。

由于在这个特殊的时期不想被优化,也想继续从事于软件开发这个行业,总要让自己某一方面的能力得到提升,而自己又属于干啥啥不行,吃饭第一名的人。再加上由于工作的原因Java kotlin、JS、Vue等都接触过,就打算用自己去学习新知识的方式重新梳理一下Java知识。

除此之外,在2023年累计写了40来篇博客文章,得到了200多个收藏就想着继续写下去了,看看能不能写到三十五岁,也算是挑战一下自己吧!

回到正文,为什么文章的标题会说从.java 文件说起?这是因为不管是写Java也好、还是vue、react等前端开发也罢,我们操作的一个个文件或者说编辑的一个个文件以前端为例说明要么是.vue要么是.jsx,而不管是.vue还是.jsx,我们都要去写一个又一个的业务组件,达到可复用的情况,你可能会说我可以把多个组件写在同一个文件里面啊,如在同一个js文件里面写上多个jsx组件或者在一个vue文件里面申明一个localComponent,那么我也会说我可以在一个.java申明多个类,如果还有其他理由的话,我可以说把标题改成 从一个组件说起,由于是Java语言,那么我为了不成为标题党,这样写标题也就可以理解了吧!

俗话说得好,没有那金刚钻就别揽这瓷器活。因此在学习Java之前,首先就需要搭建Java运行环境,window系统的话建议安装解压版本这样就可以添加多个版本的JDK,这样在工作中需要切换多个版本时候就比较方便,老项目万年Java8,新项目看公司有的会选择Java11Java17,但是也有的还是Java8~

至于JDK的安装方式有很多,网上的文章也很多,这里我就给出一个简单的安装步骤:

windows上:

  • 获取对应的版本的解压版:Oracle官网、清华镜像、华为镜像等网站都可以下载。
  • 如果下载的是exe文件则根据步骤安装即可。
  • window环境变量里面配置JAVA_HOME
  • 通过命令行里检测是否安装完毕 java -version

MAC上:

MAC上的安装比较简单,直接通过安装idea工具里面自己安装就可以了。windows上没有这么试过,但是也可以通过idea下载JDK这一点是确定的。

以下是windows上的多版本配置截图,仅供参考。

JAVA_HOME配置:

Path环境变量配置:

当我们安装好Java运行环境时,就需要找一个编辑器编写Java代码,就如同写前端工作的vscode、HBuildx亦或者大学教网页编程的dw、我们就需要找一个合适的编辑器帮助我们写Java代码、毕竟工欲善其事必先利其器:这里推荐使用Idea工具,当然免费的还有Eclipse等IDE,首选Idea至于破解方式,实在不行上某宝购买吧~。

为什么这里没有给出详细的安装步骤,主要的原因就是有些坑需要自己踩一遍才能记忆深刻,当初刚学Javaweb开发时,配置tomcat的时候整整花了一天的时间才成功,安装环境真的是一部血泪史。环境安装好了之后就需要回到我们的正题了,

Java文件说明

那么什么是.java文件?它就是一个装载我们代码的最小的文件单元,用组件来解释的话,他就是我们直接操作的一个最小单位。从文件的角度来看,就是一个写Java代码的地方,至于.java文件的具体作用是什么,那么暂时不去关心,只要明白了我们的代码写在了一个后缀为.java的文件中即可,至于他是怎么运行的或者说怎么工作的,就是后面的内容了。

在实际的开发工作中,不可能只有一个Java文件,因此Java为了更好的识别每一个Java文件的内容,我们就需要给每一个文件去一个名称,就如同我们自己的名字一样,为了后面看见这个文件就知道这个文件的作用,如我们用Java文件去形容一个狗狗时就会取名为Dog ,首字母需要大写,当然你也可以小写,但行业规范是达成一致共识的采用首字母大写的大驼峰命名。如果需要使用到多个单词的情况下,则保证每一个单词的第一个首字母大写即可。如StudentMapper.java

Java文件的保存:上学读书时,我们习惯性的把课本放进书包里,Java文件也是,只不过也遵循了一定的规范,包名采用的是域名反写且全小写的方式如你拥有一个yanzu.com的域名,他的包的名称就应当是com.yanzu.subpackage的方式。彦祖,请记住包名称要全小写~

包名的作用就是给Java文件提供了一个命名空间,可以帮我们解决不同模块相同java文件名的冲突问题,如在A模块里面有个Dog.java文件,在B模块也需要一个DogJava文件。这样分包之后,就不会冲突。否则在同一个包里面就不能同时创建两个DogJava文件。

在描述了Java文件的命名和分包之后,我们就不得不回到Java这门编程语言上来。你可能在很多地方都了解过这是一门什么样的语言,无外乎面向对象(OOP),封装、继承、多态这些概念,虽然我对这些概念的理解没有多么的深刻,为了完整性也简要的描述一下吧。

面向对象编程

以下内容来自wiki百科:

面向对象程序设计:是种具有对象概念的编程典范,同时也是一种程序开发的抽象方针。它可能包含数据特性代码方法。对象则指的是(class)的实例。它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性,对象里的程序可以访问及经常修改对象相关连的数据。

用我的理解来说就是:面向对象编程就是一种编程思想,在Java的世界里就是万事万物皆对象。我们现实生活中的都可以把它抽象 为一个Java文件或者说用Java对象去描述。如前面提到的Dog、Student等。直白点就是用Java代码去描述现实生活中的东西,就如同用英语去描述我爱你和我们用中文去描述山无棱、天地合、乃敢与君绝一样,本质上表达的东西是一样的,只是展现形式不一样。

与面向对象编程不一样的编程思想就是面向过程,按照大学老师的举例就是:渴了接水喝

面向对象:只需要发出接水喝这个动作即可,至于内部是怎么实现的(用什么接的水、接的什么水),暂时不需要去管。

面向过程:第一步拿水杯,第二步移动到饮水机,第三步把杯子放在出水口的下方,第四部按下出水按钮,第五部关闭,第六步拿起水杯,第七步喝水。

或许你在这里可以发现面向对象只是将一些行为逻辑封装在对象内部里面了,没有暴露出来!只暴露了接水喝这个命令。

抽象 :我理解的就是用Java代码去描述我们想描述的现实事物。也就是把现实中的事物抽象为Java代码。抽象的好坏决定封装的程度。

三大特征

面向对象的三大特征:封装、继承、多态

封装:将对象的状态和行为封装在内部,只给外部提供一个访问的接口,以上面接水喝为例说明则是当我们发出这个动作即可,至于是用杯子、用碗还是用盆装,只有接水的人才知道,我们并不关心。

继承:子类继承父类的属性和方法,从而可以对父类的属性或者方法进行访问或者扩展。至于子类到底能否访问到父类的属性,则需要通过访问修饰符控制。毕竟如果你的儿子要看你的浏览器记录可能你立马会从棺材板里面蹦起来,耶稣都压不住你的棺材板。

多态:指的是对同一类型的对象下对消息的不同响应,如对做饭消息的响应,如果父亲是个厨师儿子不是,那么父亲做出来的肯定比儿子好吃。亦或者在农村家庭,父子两人对种地这一行为的响应,在父亲眼里可能还是需要一锄头一锄头的挖地,而在儿子眼里已经是机械自动化的方式去种地了。

注意:面向对象编程只是一种思想,不是Java特有的,在JavaScriptPython等语言中,也有这部分的思想。

除了上面提到的面向对象、面向过程编程、还会接触到面向接口编程、函数式编程。

以上便是这一篇文章的内容了。

建议了解如下内容:

  • 大驼峰和小驼峰命名法
  • 编程规范:Google Java编程规范以及阿里巴巴Java编程规范
相关推荐
齐 飞1 小时前
MongoDB笔记01-概念与安装
前端·数据库·笔记·后端·mongodb
LunarCod1 小时前
WorkFlow源码剖析——Communicator之TCPServer(中)
后端·workflow·c/c++·网络框架·源码剖析·高性能高并发
码农派大星。2 小时前
Spring Boot 配置文件
java·spring boot·后端
杜杜的man3 小时前
【go从零单排】go中的结构体struct和method
开发语言·后端·golang
幼儿园老大*3 小时前
走进 Go 语言基础语法
开发语言·后端·学习·golang·go
llllinuuu3 小时前
Go语言结构体、方法与接口
开发语言·后端·golang
cookies_s_s3 小时前
Golang--协程和管道
开发语言·后端·golang
为什么这亚子3 小时前
九、Go语言快速入门之map
运维·开发语言·后端·算法·云原生·golang·云计算
想进大厂的小王3 小时前
项目架构介绍以及Spring cloud、redis、mq 等组件的基本认识
redis·分布式·后端·spring cloud·微服务·架构
customer083 小时前
【开源免费】基于SpringBoot+Vue.JS医院管理系统(JAVA毕业设计)
java·vue.js·spring boot·后端·spring cloud·开源·intellij-idea