一.Java是如何实现跨平台的

1.我们编写的Java源码,编译后会生成一种 .class 文件,称为字节码文件

2.Java虚拟机JVM就是负责将字节码文件翻译成特定平台下的机器码然后运行。也就是说,只要在不同平台上安装对应的JVM,就可以运行字节码文件,运行我们编写的Java程序。

注意:跨平台的是Java程序,不是JVM。JVM是用C/C++开发的,不同平台下需要安装不同版本的JVM

所以对成千上万的java开发者和java程序来讲,java是跨平台的

二.JRE,JDK, JVM是什么

首先是JDK
JDK(Java Development Kit) 是 Java 语言的软件开发工具包(SDK)。在JDK的安装目录下有一个jre目录,里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和 lib合起来就称为jre。
然后我们来看JRE
JRE(Java Runtime Environment,Java运行环境),包含JVM标准实现及Java核心类库。JRE是Java运行环境,并不是一个开发环境,所以没有包含任何开发工具(如编译器和调试器)
然后JVM

JVM 就是Java虚拟机,有多个版本,用来支持Java跨平台的

下图清晰明朗

三.安装和配置java环境

1.先下载安装jdk,首先百度搜索jdk下载,去Orcle官网下载,下载完后安装

2.安装完毕后会有jdk,和jre两个文件夹

JDK打开后目录结构如下图所示:

3.配置环境变量,打开windons系统的环境变量设置窗口,win10下是:

打开我的电脑,在空白处右键单击选择“属性”->“高级系统设置”->“环境变量”

然后在用户变量这里新建,变量名为PATH,变量值为javac.exe的路径,我的是D:\code\jdk1.8.0_151\bin,点击保存

打开cmd,输入javac,出现下图说明已经配置成功:

四.编写Java程序并编译

1.在D盘下新建一个文本文件,改后缀名为.java. 比如111.java

2.打开111.java,编辑,输入如下代码:

class Hello
{
public static void main(String[] args)
{
System.out.println("HelloWorld");
};
}

3.打开cmd,进入D盘,输入javac 111.java   , 这是编译的命令,javac是编译的意思

4.编译成功后,会在同样目录下生成Hello.class字节码文件

5.启动JVM,并执行字节码文件,语法:java 带有main函数的类名  举例java Hello

6.控制台输出“Hello World”

五.java的基本语法

1.java严格区分大小写

2.一个java源文件中能有多个类,但只能有一个public类,而且源文件名必须与类名相同

3.一个java源文件中有N个java类时,编译后会生成N份字节码,字节码名称与类名一一对应

4.建议:一个源文件中只定义一个类,并修饰为public

参考资料:https://blog.csdn.net/songkai320/article/details/51819046

http://www.open-open.com/lib/view/open1408453806147.html

最新文章

  1. C++11实现生产者消费者问题
  2. [php入门] 3、WAMP中的集成MySQL相关基础操作
  3. Java反射机制详解
  4. 剑指Offer09 数值的整数次方
  5. 问题-Delphi2007跟踪变量时提示“E2171 Variable 'APolygon' inaccessible here due to optimization”
  6. Android中你应该知道的设计模式
  7. php7 install memcache extension
  8. USB的前世今生
  9. Android学习记录:界面设计
  10. java并发编程的艺术——第四章总结
  11. 高通 MSM8K bootloader 之三: LK
  12. vue li click
  13. Code POJ - 1850 组合数学
  14. 在 Windows服务器中启用/禁用SMBv1、SMBv2和SMBv3的方法
  15. Linux如何统计进程的CPU利用率[转]
  16. charles License
  17. MySQL修改表、字段、库的字符集及字符集说明
  18. SpringMVC中JSP页面显示为源码
  19. du 统计文件夹大小
  20. 如何处理由Dll缺失造成的程序直接崩溃的问题。

热门文章

  1. 常用DOM API总结
  2. escape encodeURI和encodeURIComponent的区别
  3. CF #578 Div2
  4. Apollo Lake设计缺陷,避免使用它们
  5. 《DSP using MATLAB》Problem 8.11
  6. 恭喜"微微软"喜当爹,Github嫁入豪门。
  7. iOS开发系列-SQLite
  8. shell下时间日期的加减乘除运算
  9. 安卓自定义View进阶-Canvas之画布操作 转载
  10. IOS开发之基础oc语法