1.java编译器

Java语言写的源程序通过Java编译器,编译成与平台无关的‘字节码程序’(.class文件,也就是0,1二进制程序),

然后在OS之上的Java解释器中解释执行。 也相当与 注:JVM(java虚拟机)包括解释器,不同的JDK虚拟机是相同的,解释器不同。

2.JVM-java虚拟机

.JVM:是java的核心和基础,在java编译器和os平台之间的虚拟处理器。它是一种利用软件方法实现的抽象的计算机基于下层的操作系统和硬件平台,

可以在上面执行java的字节码程序。 java编译器只要面向JVM,生成JVM能理解的代码或字节码文件。Java源文件经编译成字节码程序,

通过JVM将每一条指令翻译成不同平台机器码,通过特定平台运行。

3.JVM执行程序的过程:

1.加载。class文件 2.管理并分配内存 3.执行垃圾收集 JRE(java运行时环境)由JVM构造的java程序的运行环境 编译时 运行时

结论:  JAVA编译器(javac)把Java源代码编译成字节码(.class文件);

jvm:在运行期将class文件编译成及其码文件,供程序运行;

Java的入口:

public static void main(String[] args)

这是java程序的入口地址,java虚拟机运行程序的时候首先找的就是main方法.跟C语言里面的main()函数的作用是一样的.只有有main()方法的java程序才能够被java虚拟机欲行,可理解为规定的格式

对于里面的参数及修饰符

public:表示的这个程序的访问权限,表示的是任何的场合可以被引用,这样java虚拟机就可以找main()方法,从而来运行javac程序

static:表明方法是静态的,不依赖类的对象的,是属于类的,在类加载的时候main()方法也随着加载到内存中去

void:main()方法是不需要返回值的

main:约定俗成,规定的

String[] args:从控制台接收参数

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念。

Java的六大特点:1.简单: 性对于c语言来说淡化了指针的概念,

2.面向对象: 更贴近人的思维;

3.分布式:  多台服务器工同处理一个服务;减轻服务器压力;

4.跨平台:在不同平台上运行,Java代码需要一个编译的过程,将.Java文件编译成.class文件,然后.class文件再在Java虚拟机上进行运行;

5.安全性:(内存回收机制)

1.GC垃圾回收机制;又叫轮询机制

2.延迟释放(滞后性)   oc 中使用引用计数机制;

6.健壮性:体现在(异常处理机制),  (容错性比较高)

java是语言  需要开发平台(Eclipse) ,   运行平台( jvm 跨平台的只要安装就可以), 环境部署

1,开发环境;

1.  JDK         开发工具包;

2. JRE          运行的jar 包(系统提供的类)

实际上是jar中.class文件

3. JVM         java虚拟机 (最终翻译成操作系统的指令;)

三者之间的关系 (包含的关系)

JDK包含JRE 和JVM

JRE 包含 JVM

控制台编译Java代码指令

javac        把 .java 编译成.class文件

java         执行java 程序

javaDoc  制作API 文档

Mac 下创建Java环境;

1.讲新建件的文件夹后缀改成  .Java(如果没有后缀.点击放达 -系统偏好设置,然后在高级设置里面有个:显示所有文件扩展名;)

Last login: Wed May  2 20:14:12 on ttys000                                                              首先打开终端

zhangjianhai:~ lanou$                             cd /Users/lanou/Desktop/helloworld        (cd+空格将含有文件的文件夹拖入终端’)

zhangjianhai:helloworld lanou$               javac helloworld.java                               (将.java转换成.class文件;)

zhangjianhai:helloworld lanou$               java helloworld                                          ( 执行.class文件;)

Hello Java!!

zhangjianhai:helloworld lanou$

*  1.一个java文件可以有多个类(class)

*  但是只能有一个public修饰的类(公开的)

*  2.这个public修饰的类必须跟.java文件的文件名相同;

java    中的标示符 (也是系统已经使用的关键词)

*  类名     使用大驼峰 class后面的跟着的 首字母大写每个单词的首字母都要大写;

*  变量名    都是小驼峰书写方式;只有第一个首字母是小写的;后面单词大写;

*  标示符    只能以数字 )0—9 字母 (java严格区分大小写)下划线—— 美元$开头

*  变量名     标示符 取名的核心 简明知其意

public class HelloWorld {

public static void main(String[] args) {

System.out.println(0b11);

}

}

java编译器是jdk_Java 入门(--Javac(Java编译器)--JDK--JVM--JRE--)相关推荐

  1. Java基础入门(二)——JDK、JRE与JVM

    初学Java,要对JDK.JRE.JVM层次上有一个初级概念的理解,不能提起来毫无概念啊,造成靓仔语塞的车祸现场. 何为JDK.JRE.JVM 首先从英文名称上来理解一哈: JDK(Java deve ...

  2. appium for java教程_appium自动化测试入门(java版)

    1.简述 appium 是一个自动化测试开源工具,支持 iOS 平台和 Android 平台上的原生应用,web应用和混合应用. "移动原生应用"是指那些用iOS或者 Androi ...

  3. quartz java 实现_Quartz使用-入门使用(java定时任务实现)

    [在项目中,定时实现某个任务是经常遇到的事情.在企业级的项目中,Quartz这一框架能够很好的帮我们完成定时任务.Quartz是一个开源的作业调度框架,它完全由Java写成,并 注:这里使用的是Qua ...

  4. java jmf 教程_JMF入门(Java Media Framework)

    JMF是SUN推出的用来提供给Java开发者使用Java开发视频与音频播放程序的开发库,JMF的推出已经有几年的历史了,目前最新的版本为 2.1.1e,这里我们来讲述使用Java的AWT组件来开发一个 ...

  5. java项目开发实战入门电子书,java项目开发实战入门全彩版

    <JaWeb项目开发实战入门>以企业门户网.51商城.BBS--程序源论坛.YouKnow问卷.OA办公自动化系统.铭成在线考试系统.K12(中小学)综合测评系统和Show--企业个性化展 ...

  6. java 打包jar文件以在没有安装JDK或JRE的机子上运行

    前言: java号称"一次编译,到处运行",但这有个前提,那就是你的机子上得安装java环境.对于开发人员或其他一些比较懂计算机的人来说这没什么,但是对于一些不懂计算机的人来说这会 ...

  7. Java基础(一)Java语言概述及入门

    1 Java语言概述 1.1Java概述 是SUN(Stanford University Network,斯坦福大学网络公司 ) 1995年推出的一门高级编程语言. 是一种面向Internet的编程 ...

  8. 【JavaSE】JavaSE入门--初识Java

    前言:我从今天开始步入Java的学习,希望自己的博客可以带动小白学习,也能获得大佬的指点,日后能互相学习进步,都能如尝所愿进入自己想去的公司啦! 一.Java语言概述 1.1Java是一种优秀的程序设 ...

  9. 尚硅谷Java零基础极速入门七天版笔记

    Java零基础极速入门 文章目录 Java零基础极速入门 1 Java快速入门 1.1计算机语言 1.2 Java语言 1.3 JVM 1.4 环境配置 2 基础语法 2.1 变量 2.2 标识符 2 ...

  10. Java学习路线,java学习教程(入门到精通)

    你好,欢迎来到编程领域:阅读"Java入门",打包好了Java学习包,以及良好的阅读体验. 关于 Java 语言 由于 JVM 的支持,使得 Java 成为一种跨平台的编程语言,一 ...

最新文章

  1. _Linux和安卓之间可以传输文件吗?
  2. matlab 图像旋转补色,旋转互补色光学错觉
  3. PHP数组加表格_php数组输出html表格的操作方法
  4. Linux下社交平台,Linux 启动
  5. Swagger 注解~用于方法
  6. 30-10-010-编译-kylin-on-druid-2.6.0-CDH57编译
  7. oracle协议适配器错误tns,ORA-12560: TNS: 协议适配器错误 常见原因
  8. UDP套接字编程以及提高UDP可靠性的方法
  9. JavaEE程序员必读图书大推荐
  10. 员工转正申请书_网站建设人员的转正的申请书
  11. SPSS心理学量表总体或分维度用总分还是均分表示?【SPSS 061期】
  12. html 在线申请,25个在线工作申请免费HTML的简历模板
  13. dreamweaver网页制作模板
  14. Excel的写入与读取(openpyxl)
  15. syntactic与semantic
  16. Arduino ESP8266 SPI-FFS存储区域
  17. Phun-有趣的二维物理引擎
  18. 认识 BASH Shell
  19. 【开发日志-已归档】2021-07
  20. python pandas合并单元格_利用Python pandas对Excel进行合并的方法示例

热门文章

  1. 软考高项-项目知识管理体系
  2. LDA算法原理及LDA与PCA的比较
  3. 瑞昱Realtek交换机芯片概要
  4. PMP考试心得分享(已通过)
  5. php读取excel文件_在PHP中读取Excel文件
  6. 怎么复制PDF文件页面?用什么方法操作
  7. centos7安装tree命令
  8. 科技爱好者周刊(第 124 期):华为如何考核员工
  9. 【5G会话管理】UE IPv6地址的分配(SLAAC协议)
  10. LaTex 符号大全