本期是油墨山的开篇之作,那我们就按部就班的来说好了。油墨山的初衷,是为了能够给初学java的小白以指引,希望能够通过一天一天的文章积累,梳理java基础知识脉络,清晰规划java学习路线。基础是万丈高楼的基石,基础不牢,越往后学越是糊涂。也希望油墨山能一直陪伴朋友们成长下去。下面,我们开始正题。
编程语言是一种人机交互的手段,编程语言是人所能够看的懂得语言。而由编程语言所写出来的代码经由编译器处理之后转换成计算机能够处理的语言。在编程语言转换成机器语言这个过程中,又分为一步到位的和分两步进行两种方式,更专业一点的术语叫编译型语言和解释型语言。
前面一种方式拿C语言来说,经过编译器处理之后,会生成一个可执行文件(以.exe结尾),直接鼠标双击就可以运行程序,可以脱离语言环境。而解释型语言无法生成独立的可执行文件必须依赖于一个解释程序才能执行。我们比较熟悉的解释型语言是JavaScript,用在网页技术中的一种脚本语言。
为什么语言会分为编译型和解释型两种不同的类型呢?那么肯定是在长期的发展过程中由于不同的需求多导致的呗,多简单是不是。
而我们的主角JAVA既是编译型的语言,又是解释型的语言。你编写好的程序代码在经过编译之后会生成一个.class文件,即字节码文件。可不能忽视这个中间文件,你想既然可以编译生成字节码文件,那有没有办法反编译在生成程序代码呢。或者获得代码的具体信息呢?此处是一伏笔,嗯划重点。
对本文介绍来说,生成的这个字节码文件并不是谁都可以执行的,需要有具体的环境。那是啥呢?没错,Java虚拟机(JVM),JAVA语言之所以具有很好的可移植性,正是因为其生成的字节码文件是在Java虚拟机上执行的。不管是windows系统还是Linux系统,归根到底是所使用了相应的JVM来处理。
当然了,介绍总免不了会介绍很多的高大上的看不见摸不着的概念,不清楚也没有关系,因为这些概念的具体过程离我们还很遥远。还不懂基本语法,看不懂代码就要解析字节码,编写虚拟机?肯定是不可能的。主要的是想告诉大家思考的重要性,理解代码之后的逻辑。编程是面向现实生活的,解决的也是实际的问题,那么怎么解决的呢?为什么写几行、几百行代码就可以把现实中一个很复杂的问题解决了?这些才是我们需要思考的东西。
怎么解决呢?这么解决。实际生活中有问题出现了,我想用编程来解决。比方说我要计算1+1,怎么办呢?拿C语言来说,编写一个函数,函数有一个过程计算1+1然后返回结果。这叫面向过程,解决问题该有什么样具体的步骤。
而JAVA语言不是这样的,它会怎么做。JAVA是面向对象的,一切皆对象,万物可抽象!我不直接计算1+1,我抽象,我抽象一个类,这个类有一种行为或者更贴切生活叫有一种能力,它能计算1+1。有了这样一种类,那我是不是只要找来一个具体的实例就可以解决这个问题啦。这一段描述更多的是有点概念性的东西。但是在熟悉之后,我相信大家都会有那么一种感觉,会感觉出二者的不同。更专业的解释请查询相关书籍。
JAVA具体的来说分为了JAVA SE、JAVA ME和JAVA EE。第一个就是我们接下来准备讲的,基础中的基础,ME是用来做嵌入式设备的,JAVA EE是用来做企业开发的。先学好JAVA SE,再去学习JAVA EE。嗯,就是这样。
学习编程是一件很辛苦的事,对于初学来说什么也不懂,软件怎么下载也安装不上去,怎么点也运行不出结果,代码编辑器上到处都是红叉叉。但是请坚持下去,不要忽视基础,不要眼高手低好高骛远。看到很多炫酷的技术就想去学,基础不打牢越学越痛苦。
除此之外有了一定的积累之后多去看看代码,代码是一种实现,里面包含了解决问题的逻辑。Java是开源的,多有的源文档都是可以找到的,但是不建议一上来就看,一是看不懂,二是浪费时间不知重点。多实现多敲代码,以时间为墨,总会写出我们的程序华章。
由于小编水平有限,如有不足,还请不吝赐教!!!此处也是重点,记下记下。微信搜索关注油墨山公众号,获取更多文章咨询!!!
![](https://i-blog.csdnimg.cn/blog_migrate/dc5717421576ad9fb34a091fb08bb9e4.webp?x-image-process=image/format,png)