Java-学习笔记-2-工作原理

简介: 不足之处,欢迎专家、同行、读者批评指正。 Java的工作原理 Java程序从写代码到实际运行需要经过三个步骤:编写,编译、运行。在不同的阶段,分别生成了不同类型的文件。 在理解工作原理的时候,我们可以看:这个文件由谁产生,给谁使用,是什么类型的。

不足之处,欢迎专家、同行、读者批评指正。

Java的工作原理

Java程序从写代码到实际运行需要经过三个步骤:编写,编译、运行。在不同的阶段,分别生成了不同类型的文件。

在理解工作原理的时候,我们可以看:这个文件由谁产生,给谁使用,是什么类型的。

第一个阶段,编写。

这个阶段由程序员写代码(用什么写无所谓,用记事本写都可以。不过编辑器我推荐Sublime)。写出来以后,保存为“.java”后缀的文件。这个文件是准备给Java编译器的。

第二个阶段,编译。

由编译器,把刚刚写好的“.java”后缀的文件,编译成“.class”后缀的文件。当然不是换个后缀那么简单,点开“.class”看的话会发现是“乱码”,二进制文件——很正常,因为这本来就不是给人看的,是给Java解释器看的。另外,这个转换的过程,会对程序员写的“.java”后缀的文件进行查错,就像老师检查作业一样。如果中间有语法错误,会直接告诉程序员编译不通过,那就得debug了。

第三个阶段,运行。

在此之前,回顾一下“跨平台”的概念。我们知道,Java是跨平台的,然后这个“跨”是通过Java虚拟机实现的。但是这个Java虚拟机在不同的操作系统中是不一样的,那到底是什么东西真正在“跨”呢?就是上一步生成的“.class”文件。这个是给虚拟机用的。不同操作系统的虚拟机,运行相同的“.class”文件,效果是一样的,所以说它跨平台了。这就是所谓的二进制代码级别的跨平台移植。

回来说说运行。运行是由Java解释器,把“.class”文件翻译成机器代码,一边执行一边显示结果的过程。这个Java解释器是上文我提到的Java虚拟机中的一部分。

关于“边解释边运行”,可以说一下。这个其实不是绝对的。因为Java解释器其实 不止一种,我们是可以选择的。另外,字节码其实也不是必须的,只不过字节码对于虚拟机来说读起来更快。字节码甚至可以由其他的语言生成,这就涉及到不同语言的混编了。

相关文章
|
27天前
|
Java 编译器 开发工具
Java基础学习笔记——idea篇
JDK由JRE(包含JVM和核心类库)和开发工具箱(如javac编译器和java运行工具)组成。Java项目结构包括Project、Module、Package和Class。IDEA快捷键包括:生成main方法(main psvm)、复制代码(Ctrl+D)、删除代码(Ctrl+Y/X)、格式化代码(Ctrl+Alt+L)、重命名(Shift+F6)等。
17 0
|
29天前
|
Java 调度
Java并发编程:深入理解线程池的原理与实践
【4月更文挑战第6天】本文将深入探讨Java并发编程中的重要概念——线程池。我们将从线程池的基本原理入手,逐步解析其工作过程,以及如何在实际开发中合理使用线程池以提高程序性能。同时,我们还将关注线程池的一些高级特性,如自定义线程工厂、拒绝策略等,以帮助读者更好地掌握线程池的使用技巧。
|
2月前
|
缓存 算法 安全
【JVM故障问题排查心得】「Java技术体系方向」Java虚拟机内存优化之虚拟机参数调优原理介绍(二)
【JVM故障问题排查心得】「Java技术体系方向」Java虚拟机内存优化之虚拟机参数调优原理介绍
18 0
|
2月前
|
缓存 Java C#
【JVM故障问题排查心得】「Java技术体系方向」Java虚拟机内存优化之虚拟机参数调优原理介绍(一)
【JVM故障问题排查心得】「Java技术体系方向」Java虚拟机内存优化之虚拟机参数调优原理介绍
86 0
|
2月前
|
设计模式 缓存 Java
【Java技术专题】「入门到精通系列教程」深入探索Java特性中并发编程体系的原理和实战开发指南( 实现可伸缩IO专题)— 上
【Java技术专题】「入门到精通系列教程」深入探索Java特性中并发编程体系的原理和实战开发指南( 实现可伸缩IO专题)— 上
51 0
|
2月前
|
存储 安全 Java
【深度挖掘Java并发编程底层源码】「底层技术原理体系」带你零基础认识和分析学习相关的异步任务提交机制FutureTask的底层原理
【深度挖掘Java并发编程底层源码】「底层技术原理体系」带你零基础认识和分析学习相关的异步任务提交机制FutureTask的底层原理
14 0
|
2月前
|
Java
软件工程设计原理里氏替换原则 ,具体实现及JAVA代码举例
里氏替换原则(Liskov Substitution Principle, LSP)是面向对象设计的基本原则之一,由Barbara Liskov提出。这个原则指出,如果类 S 是类 T 的子类型,则程序中使用 T 的对象的地方都可以不经修改地使用 S 的对象。换句话说,子类的对象应该能够替换掉它们的父类对象,而不影响程序的正确性。这个原则强调了继承关系中的行为兼容性,保证了基类和派生类之间的正确抽象和继承关系。
24 3
|
6天前
|
存储 安全 Java
【Java EE】CAS原理和实现以及JUC中常见的类的使用
【Java EE】CAS原理和实现以及JUC中常见的类的使用
|
8天前
|
设计模式 消息中间件 Java
Java 设计模式:探索发布-订阅模式的原理与应用
【4月更文挑战第27天】发布-订阅模式是一种消息传递范式,被广泛用于构建松散耦合的系统。在 Java 中,这种模式允许多个对象监听和响应感兴趣的事件。
24 2
|
10天前
|
安全 Java 开发者
Java编程:深入探索其原理、特性与实战代码
Java编程:深入探索其原理、特性与实战代码
11 1