前言
最近有特意的想回顾以前Java的学习知识点,想了解Java的基础部分。所以我在此特意做了这么一个专题来提供自身并且分享阅读出去。不求为了面试但求能够争取每天的知识点总结,希望在看完这一篇专题之后我能够完全的收获满满,来面对接下来的自己。大家也是如此。
首先说明,我并不会以完全初学者角度来讨论基本的内容,比如for循环呀,if-else,基本常见的运算符等等(涉及面试时我会讲到)。
在此提前祝福大家能够前程似锦。
1、主要内容
首先了解Java,知道Java的语言特点。知道Java的运行机制和环境搭建。当
然,我们要知道DOS操作Java,并且完成本次的第一个应用程序。
这就是今日的主要内容分享
2、初识Java
2.1 Java的由来
Java的由来要结合当前的单片式计算机系统说起,首先在已有的C++编写时遇到很多困难,比如说C++内容本身过于复杂和庞大。其次,在这种计算机系统应用于提升电子产品的智能化程序下,采用的嵌入式处理芯片种类很多。那么需要的编程语言就需要能够兼容这么繁多种类的芯片。
其实Java不是一下子腾空出世,它的前身是oak语言,也是一种基于对C++的一种改造,取出一些不太实用的地方并结合嵌入式系统的要求而开发的语言。
后面的Java命名跟公司发展本身密不可分,在1995年,(取自百度百科:业界为了使死板、单调的静态网页能够“灵活”起来,急需一种软件技术来开发一种程序,这种程序可以通过网络传播并且能够跨平台运行。)这个时候,Sun公司才想到自己曾经搁置的Oak语言并且在注册商标时因为被占用才取名为Java。
2.2 Java的简单发展历程
其随后的历史进程如下:
- 1996年正式发布JDK1.0
- 1999年发布J2SE、J2EE、J2ME。这三个内容可理解成JavaSE、JavaEE、JavaME的前身,并且是2005年改名。
- 后续2009年被甲骨文Oracle收购,2011年发布Java7.0,2014年发布Java8.0。
现在,我们公认的Java之父就是詹姆斯·高斯林——一名软件专家,1955年5月19日出生于加拿大,Java编程语言的共同创始人之一。(高司令的梗至少我是不确定怎么来的,就单纯因为有个高字吧…)
2.3 Java的语言特点
1、首先是面向对象,Java具有面向对象的特点。
面向对象的意思就是将我们计算机映射到我们的现实世界,用我们人实际的角度去解决计算机问题,以优化编程与实际思考之间的吻合度。
2、其次就是简单,Java学习的时候就是我的福音呜呜,因为它单纯不需要学习指针。当然现在看指针也是得心应手了。
简单也在于优化代码量,并且优化代码的可读性,不容易造成内存溢出的问题。
3、跨平台。这个可以了解Oak语言—Java前身,它就是基于单片计算机系统以应对多种嵌入式处理芯片而来的。并且它跨平台也在于服务器、操作系统和数据库等方面。
2.4 Java的运行机制
首先了解Java的运行机制包括如下三点:
- 编译执行
- 解释执行
- 先编译、再解释
其次我们来看Java的整体运行机制:
1、编译:编译就是在我们编写的Java源文件,由Java编译器对源文件进行排错的过程。此时完成这个编译过程后,就生成后缀名为.class的二进制字节码文件。这种字节码文件是给Java的虚拟机JVM解释器来读取的。
2、解释:在Java解释器中,它将字节码文件翻译成机器代码,形成特定平台的机器码,执行并显示结果。
因为在Java中,生成的.class字节码文件首先与平台无关,即不可跨平台;并且不能够执行,因为它必须由专门Java解释器来解释执行。此时它只由专门的编译器(Java编译器)生成.class字节码,并且是在Java虚拟机这一特定平台形成的字节码。所以此时生成的程序不能移植到其他平台上运行。这是Java是编译型语言也是解释型语言的原因。
具体内容如下图所示:
那么前面说的三点运行机制又是什么意思呢?其实有些地方就跟我们的代码编辑器就可以看出来呀。
- 编译执行:比如我们只需要项目重新构建模块、编译按钮等等…这个过程就由Javac即Java编译器帮你查看代码错误,如果有错误就返回。
- 解释执行:它将源文件被一行一行解释,一行一行执行。此时它可以跨平台。debugger应该就是比较好的例子了。因为此时你已经编译但是有报错。那你就一句句逐行代码调试并查看参数的传递。
- 先编译后解释:就是idea的运行图标。它将源文件编译成字节码文件(.class),再将字节码文件在特定平台进行解释执行。
3、Java的环境搭建
首先了解以下名词:
- JVM(Java Virtual Machine)虚拟机:它使用软件在不同操作系统中,以模拟相同的环境。
- JRE(Java Runtime Environment)运行环境:包含JVM和解释器,完整的Java运行环境
- JDK(Java Development Kit)开发环境:包含JRE + 类库 + 开发工具包(编译器和调试工具)。
我以安装的JDK为例子:
这里我的JDK下面还有JRE。并且打开bin文件后如下内容:
这里面的bin内容在于我们能看到很多Java程序需要用到的命令。比如javac、javadoc等等。此时我们在配置环境变量就是在这个bin目录即可。
首先创建一个JAVA_HOME,放入目录:
其次在path下写入如下:
%JAVA_HOME%\bin;
这样的好处在于你多个JDK版本就只需要在JAVA_HOME写入你的JDK路径就可以了。
4、DOS常用命令
win+R进入cmd
1、查看jdk版本
java -version
2、常见的的DOS
- 更换盘符:d:
- 查看当前目录下的文件及文件夹:dir
- 进入文件夹:cd 文件夹的名字
- 返回上一级目录:cd …
- 清空屏幕:cls
- 删除文件:del 文件名
- 删除文件夹:rd 文件夹名称
- 退出:exit
这些可以稍微入手即可。
5、第一个应用程序
5.1 例子
看以下的代码块:
public class hello {
public static void main(String[] args) {
System.out.println("hello,world!");
}
}
输出如下:
hello,world!
- class:代码的存储容器,即类。
- hello:类名
- main:方法名,即主函数。
- System.out.println(“hello,world!”):输出语句。
5.2 类
这里不细说,先根据上面的例子谈谈类本身。我们一个.java文件中可以有多个类。这些类因为是代码的容器,其中在类中添加main函数,即程序入口就是类编译的入口。此时main函数有且仅有一个在该类中。
但是编译后我们不会只有一个.class文件,主要看运行了几个类。几个类就几个class文件。
类前面通常会有修饰符。由public修饰的类就是公开类,要求类名必须与文件名称保持一致。
6、程序员良好习惯
进入一个职业就要有对应的职业操守。程序员也是如此。
- 杜绝拼音命名
- 一行写一个代码
- 命名的格式——如驼峰命名法
- 勤奋写注释,其中文档注释会生成外部文档。
- 标识符的命名
- …
总结
我们基本掌握了Java的由来,运行机制顺序和环境搭建。并且写出自己的第一个程序…下次再接再厉!
这就是第一天的基本内容。后续我会考虑将基本的知识结合面试进行综合。目前我参考的目录取自怎样正确的度过JavaSE阶段真的很重要!。后续会有相关的改进。谢谢大家的批评和支持。