Java语言的重要特性:
1.跨平台 (平台: 操作系统)
跨平台: 一次编译,到处运行。
其跨平台特性的关键就在与Java虚拟机(JVM)。Java源码通过编译产生class文件(即字节码文件),再通过JVM解释class文件的信息,然后发出命令给相应的(操作系统)去执行相应的操作,从而达到了一次编译(编译成class文件),到处运行。
2.面向对象
3.Java语言健壮。其强制类型机制、异常处理、垃圾回收是其健壮的重要保证。
4.Java语言是解释性的语言(还有PHP\Javascript等也是),解释型语言的编译后的代码不能直接由机器执行。(编译型语言则其编译后的代码可以直接执行。如:c\c++)
一张图了解jdk、jre、jvm三者间的关系:
源文件(后缀名为.java)在经过Java开发工具java.exe程序编译后生成字节码文件(后缀名为.class)而此时就需要Java虚拟机(JVM)将其解析,然后将相应的命令发给操作系统去执行。
若只是想运行Java程序,则只需安装JRE即可。
关于Open JDK与Oracle JDK的区别:
1.Open JDK三月发布一次,而Oracle JDK是三年发布一次的。
2.Open JDK 是一个参考模型且是完全开源的,而Oracle JDK是Open JDK的一个实现,并不是完全开源的。
3.Oracle JDK 比 Open JDK 更稳定。
4.在响应性和JVM性能方面,Oracle JDK与Open JDK相比提供了更好的性能。
5.Oracle JDK不会为即将发布的版本提供长期支持,用户每次都必须通过更新到最新版本获得支持来获取最新版本。
6.Oracle JDK是根据二进制代码许可协议获得许可,而Open JDK根据GPL v2许可获得许可。
关于安装jdk后配置环境变量的原因:
我们在安装完后大家都知道要配置环境变量,但是却不知道为什么要这么做,那究竟是为什么呢?
对于这个问题,首先我们得知道在cmd窗口执行一个可执行文件的过程是怎么样的:在控制台窗口,如图:
若输入javac这个编译java源码的exe文件(javac.exe),则控制台会在c盘这个路径中寻找是否存在该可执行文件,如果存在,则会立即执行改文件,但若找不到该文件,则会去搜索系统中环境变量Path所保存的路径底下是否存在该文件,若存在则执行,若不存在则会报错。
如果不添加环境变量,则只有在控制台中切换到javac所在的文件中才能执行这一文件,而此时,若要编译的java文件不存在javac所在的文件中,则会导致javac这一exe文件无法编译该java文件。所以最好的就是用在path环境变量中添加bin路径,这样java文件无论存在哪就都可以用javac文件编译了,也就是让控制台无论在哪个路径底下都能找到java开发工具。
那为什么添加JAVA_HOME这一环境变量再把其变量值改为bin所在的路径然后在Path环境变量中写%JAVA_HOME%\bin呢?
其中JAVA_HOME只是其的一个环境变量名,叫什么并不重要,而%JAVA_HOME%中两百分号表示引用,所以这里表示引用JAVA_HOME这一环境变量,而该环境变量的变量值又是bin所在的路径,所以%JAVA_HOME%\bin就也一样表示bin文件夹中javac和java等exe文件所存储的位置了。
那为啥明明可以一步解决直接在Path环境变量中加入完整的bin中文件的路径却还要这么做呢?
其实对bin文件的位置做了修改,则Path环境变量里的值存的那个路径还得修改,但Path环境变量中还有很多其他的东西,对Path路径修改如果不小心改了其他的东西则可能会影响系统其他东西的运行,而自己创建的JAVA_HOME路径专门用于存放bin文件夹的路径则方便以后的修改,防止误改,起到了避免去修改Path环境变量信息的作用。其实简单点说就是把bin中文件的路径单独拎出来,更方便日后的修改。
Java编译运行时要注意的:
一个java源文件可以有在不同类中有多个main方法,但这些类(可以多个类)中只能有一个public类,且在编译时,javac 文件名.java中的的文件名必须与public类类名一致,如果不一致就会报出:类…是公共的,应在…名为… .java的文件中声明。当有一个java源文件中如果各类都有main方法,则在运行时只需,要运行某个类中的main只需 java main所在类类名 即可。
Java编写代码时需注意的:
1.源文件要使用utf-8编码
2.每行宽度不要超过80字符
3.编写时有次行风格和行尾风格,但最好使用行尾风格。
4.写注释。
版权归原作者 不 良 人 所有, 如有侵权,请联系我们删除。