sun公司在web开发时感觉C不是很方便,就想把C的部分功能封装起来使用,由此产生了新语言,本来想起名叫oak,但是该名称被汽车公司占用了,不知道是谁脑洞大开,看见大家工作的时候手里都端了杯咖啡,而且该咖啡产自印度尼西亚的爪哇岛,音译过来就是Java,一拍脑门就确定了这个名字,目前大家公认的爪哇之父是詹姆斯·高斯林。
又是一个源自C的语言,看来大学学C虽然看似落后,但还是真有道理,把现在其他语言的老祖宗学了,再学孙子儿子还不游刃有余,现在用python和Java简直是手动挡升自动挡。
java环境可分为三部,jdk、jre和jvm
jdk是开发工具包,相当于C中的库
jre是运行环境,可以说是java的编译条件
jvm虚拟机,为Java的跨平台提供了可能,不同的平台都有jvm环境时,Java可以运行
我接触的第一门计算机语言就是C,所以再学啥都想类比一下,C能移植到其他平台是靠生成的exe可执行文件,那该文件的运行在系统上是如何实现的呢?与Java相比又孰优孰劣?相应的像python这样的解释类语言,执行依赖于环境,是不是与Java虚拟机解释指令的过程也类似呢?
搞明白了回答如下:
C的编译是基于系统和架构的,在同一系统和架构下的编译确实可以无限制移植,但不能实现真正的无差别跨平台,Java借助jvm则可以无视系统和架构的限制,python作为解释性语言依赖于环境,与Java相同。
安装完成后还需要将Java的执行文件目录放到系统路径中,目的是能够使系统在任何路径下调用Java程序,形式是将java的bin目录放到系统路径中。
此电脑属性中搜索高级系统设置,在如下界面中找到点击环境变量,
在打开的系统变量中加入bin目录的位置,如图所示:
配置完成了也没个弹窗说恭喜安装成功,我们需要自行判断,此时电脑究竟有没有Java环境呢?这时候可以打开cmd黑窗口,输入java看看有没有反应,示例如下:
计算机的入门老规矩,hello,world
,可以先用记事本写如下代码:
class Hello{
public static void main(String[] args){
System.out.println("hello,world");
}
}
再将后缀改为java,便成了Java的源代码文件,然后在黑框执行如下操作:
可以看到输出了hello,world,说明代码执行成功,此时有一个要注意的点是cmd要进入源代码文件所在目录,有图形化界面就很方便了,在文件夹上方目录位置输入cmd回车即可。
编译过程 javac 源文件 检查语法规范,生产class文件,jvm虚拟机可识别的字节码文件
运行Java程序 java class名 jvm调用类加载器,classLoader,通过类名找到具体的字节码文件,jvm将字节码文件解析为二进制文件,jvm与底层系统交互,最终执行程序。
面向对象
健壮(垃圾自动收集,C需要手动释放)
跨平台(依赖于jvm)
解释型语言