Java程序运行机制

Java程序要经过先编译,后解释两个步骤

编译型:高级语言源码 -->机器码(一次性)    生成可执行程序,脱离开发环境,在指定平台上运行。(C/C++/Objective-C/Swift/Kotlin)

解释型:每执行一次,都需要编译一次,效率低,可移植性高(JavaScript/Ruby/Python)

伪编译型:

Java编译后生成的是与平台无关的字节码(*.class文件),该字节码文件面向JVM,用Java解释器可以来解释执行这个字节码文件。

JVM(Java Virtual Machine)负责解释字节码文件,任意平台的JVM向编译器提供相同的编程接口(任意平台JVM内部不同),而编译器只需要面向JVM,生成JVM能理解的代码,然后由JVM来解释执行。在一些JVM的实现中,还会将JVM代码转换成特定系统的机器码实现,从而提高执行效率。

JVM是Java跨平台的关键部分。

开发Java的准备

下载安装JDK(包括Java编译器、Java运行时环境(JRE)、常用Java类库),即Java标准版开发包

JRE包含JVM,JVM是核心虚拟机,JRE还包含运行Java程序的其他环境支持。

ps:如果只是运行Java程序,可以只安装JRE。如果要开发,下载JDK即可,JDK包含JRE。

Java分为:Java SE(JDK)  、Java  EE (Java EE SDK->包含最新版JDK) 、Java  ME 。

开发工具:JDK核心,包含了JRE

源代码:Java核心类库的源代码

公共JRE:一个独立的JRE系统,会向IE等浏览器和系统注册Java运行时环境,这样系统中任何应用程序都可以使用公共JRE。但是JDK里有JRE,没必要安装公共JRE

ps:安装路径最好没有空格。

JDK 9 引入新的JMOD格式,近似JAR格式,但JMOD可以包含本地代码和配置文件。

设置PATH环境变量

windows操作系统在Path的一系列路径中依次查找命令

Linux设置PATH环境变量:

①进入当前用户的home路径,然后输入:ls -a

②使用无格式编辑器打开 .base_profile 文件

③在该文件的PATH变量后添加JDK安装路径

④在.base_profile 文件最后添加导出PATH变量的语句

⑤重新登录Linux平台,或者执行如下命令,为了运行该文件,让文件设置中PATH变量值生效

第一个Java程序

Java源代码可以使用任何无格式的文本编辑器(Windows->记事本/Editplus  |  Linux->VI)

在记事本中新建一个文本文件,并输入如下代码:

Java严格区分大小写

将上述文件保存为HelloWorld.java,该文件就是Java程序的源程序了。

接下来就是编译该Java源文件来生成字节码。

编译命令:javac

javac -d destdir srcFile

通常将字节码文件放在当前路劲下

javac -d . HelloWorld.java

运行后在指定路径下会生成一个HelloWorld.class文件

javac以类为单位生成相应的字节码文件,并且编译命令中省略-d,则默认为当前路径。

ps:还可以使用Editplus

运行Java程序

运行命令:java

java Java类名

ps:java命令后面的参数是Java类名,不是字节码的文件名,也不是源文件名。

先通过命令行进入HelloWorld.class所在的路径

输入:

java HelloWorld

可以看到输出

ps:同样可以使用Editplus

CLASSPATH环境变量:

在1.4以前版本的JDK中没有设计在运行Java程序时到当前路径下搜索Java类。也就意味着,即使当前路径已经包含了HelloWorld.class,并在当前路径下执行java命令,系统一样提示找不到HelloWorld类。

JDK 1.5以上的版本也可以设置CLASSPATH环境变量(通常用于加载第三方类库)

如果想在运行Java程序时临时指定JRE搜索Java类的路径,则可以使用-classpath选项(或用-cp选项,-cp是简写,作用完全相同)

java -classpath dir1;dir2;dir3...;dirN Java类

多个路径在windows平台上以分号隔开,在Linux上以冒号隔开。

java学习笔记_Java学习笔记——第1篇相关推荐

  1. java 7 学习笔记_Java学习笔记7-网络编程

    网络编程是指编写运行在多个设备(计算机)的程序,这些设备都通过网络连接起来. 网络编程是指编写运行在多个设备(计算机)的程序,这些设备都通过网络连接起来. java.net 包中 J2SE 的 API ...

  2. java 学习笔记_java学习笔记

    刚学java  选择传智博客 分享的视频,以下做的备忘 1.Hello World class Demo { public static void main(String[] args) { Syst ...

  3. java该怎么做笔记_JAVA学习笔记

    1.java.lang.NumberFormatException:有两种情况错误,第一就是数据类型转换错误.第二有空能 是没有传进参数,或者传进空参数.例如案例,本人的解决方法. if(str1.e ...

  4. java程序伪代码_Java学习笔记——伪代码及程序控制

    开学刚刚一个月,学习Java也已经有三周. 老师给了下面的实验题目: 某教师需要一个学生成绩计算应用程序.每个学生总评成绩是由平时成绩.期中成绩.期末成绩 和其它成绩组成,其所占比例为:平时成绩30% ...

  5. java教学笔记_java学习笔记(一)

    一.java规则:静态变量即类变量(区别与实例变量)用类方法即静态方法访问 例: public classObject_1 {static int i=1;static{//静态区域块,只执行一次,当 ...

  6. java 字符串赋值_Java 学习笔记(二)变量

    标识符  标识符就是名字.类名,变量名,方法名,参数名等  标识符的命名规则  以字母.下划线或美元符号$开头,不能以数字开头 其后可以是字母.数组或美元符号$ 区分大小写 避免使用关键字  ...

  7. java学习笔记_Java学习笔记day11

    Map集合 java.util.Map<k,v>集合 Map集合特点: 1.Map集合是一个双列集合,一个元素包含两个值(一个key,一个value) 2.Map集合中的元素,key和va ...

  8. java作用域对象笔记_Java学习笔记(七)——对象

    一.类与对象 1.类的定义 类就是模型,确定对象将会拥有的特征(属性)和行为(方法). 2.类的特点 (1)类是对象的类型 (2)具有相同属性和方法的一组对象的集合. 3.对象的属性: 对象具有的各种 ...

  9. java 调用弗雷_JAVA 学习笔记

    封装: 将类的某些信息隐藏在类的内部,不允许外部程序访问,而是通过该类提供的方法实现对隐藏信息的操作和访问,保证了数据的安全性.(可以隐藏类的细节,方便修改) 封装的实现步骤: 1.修改属性的可见性: ...

最新文章

  1. XCode 导入头文件不提示解决
  2. H3C   ISIS与BGP 路由配置
  3. ElementUI中显示是否以及SpringBoot中怎样存储实体类属性和数据库怎样设计字段
  4. dos命令在vba中应用
  5. 他们和机器人啪啪啪,并计划共度一生
  6. C#中类与结构体的区别
  7. 『设计模式』HR:不会设计模式,你好意思来面试?(面试必备设计模式)
  8. Python学习之路:多态实例
  9. Luence简单实现2
  10. QQ再次被大规模盗号
  11. excel自动求和_excel工作表的行或列怎么自动求和
  12. 微信小程序返回Qcloud\\Cos\\Exception\\NoSuchBucketException: Cos Error Code: NoSuchBucket, Status Code: 404
  13. 记一次用Python统计全国女性Size
  14. 又猎一“狐”:一名外逃越南嫌疑人落网中
  15. 【三维目标检测】3DSSD(二)
  16. 2021年广西省安全员C证免费试题及广西省安全员C证考试试卷
  17. java的clone你知道多少?
  18. mysql usleep_PHP 暂停函数 sleep() 与 usleep() 的区别
  19. 值得收藏!VScode 中这 15 个神仙插件写代码必备!
  20. flink Could not forward element to next operator

热门文章

  1. 智能制造-逆向工程-三维测量-标定
  2. 一篇文章了解生物特征识别六大技术
  3. 【从零学习OpenCV 4】4种读取Mat类元素的的方法
  4. 黄金三月,掌握这些,在六十万iOS程序员中脱颖而出
  5. CentOS7图形界面与命令行界面切换
  6. 撩课-Java面试宝典-第十二篇
  7. Xcode 小技巧:利用 assets 配置针对不同设备的资源
  8. 抽点时间让我们一起来学linux系统
  9. 安装Team Services Agent Win7
  10. 仿QQ空间用一个tableview显示多种自定义cell