java是什么?java能用来干嘛?

Java是一种开发语言,核心特点:跨平台,面向对象。对于开发者来讲,Java基本等于**Jdk**。 Java由四方面组成:

  1. Java编程语言,即语法。
  2. Java文件格式,即各种文件夹、文件的后缀。Java文件格式,即各种文件夹、文件的后缀。
  3. Java虚拟机(JVM),即处理*.class文件的解释器。
  4. Java应用程序接口(Java API)。

掌握java语言后则能进行:1、web开发;2、Android开发;3、客户端开发;4、游戏开发等各种生活中常见的软件。
开发人员一般通过IDE(即Eclipse、NetBeans、JBuilder、IDEA等编程开发工具)编写、编译Java代码(在远古没有IDE的时代,都是用文本编辑器编写,使用javac编译),在这个过程中,会使用到Jdk与第三方Jar包(Jar包即一组编译后的类打成的压缩包,可以使用解压工具解压成文件结构)。

那什么又是jdk呢?

JDK是java开发核心组件,是用来编译解释java程序的核心组件,包含java compile(javac)面向的是java开发人员。包括:Java运行环境Jre、Java工具( javac/java/jdb等 )和Java基础类库( Java API,rt.jar等 )。 Jdk中包含**Jre**,在Jdk的安装目录下有一个名为jre的目录,里面有两个文件夹bin和lib,在这里可以认为bin里的就是**Jvm**,lib中则是Jvm工作所需要的类库,而Jvm和lib和起来就称为Jre。(jdk/jre/bin、lib)

什么是Jre?

JRE是java运行环境。Java一种是跨平台语言,一次编译,多次在多台电脑上运行,这种机制主要依靠JVM实现。java程序编译得到的是中间字节码,中间字节码是不能再机器上直接运行的,必须要经过JVM把中间字节码转换为机器语言,事实上,JRE中主要包含的就是JVM。JRE是面向的是java程序用户。 是运行Java程序所须环境的集合,包含Jvm标准实现及Java核心类库。 与大家熟知的Jdk不同,Jre是Java运行环境,并不是一个开发环境,所以没有包含任何开发工具(如编译器和调试器),只是针对于使用Java程序的用户,只有 通过它,Java的开发者才得以将自己开发的程序发布到用户手中,让用户使用。 运行Java程序一般都要求用户的电脑安装Jre;没有jre,java程序无法运行;而没有java程序,jre就没有用武之地。

什么是Jvm?

我们常说的Java虚拟机, 是整个Java实现跨平台最核心的部分,能够运行通过Java语言编写的应用程序。 所有的Java程序会首先被编译为.class的类文件,Jvm虚拟机可以执行这种编译后的类文件,也就是说class并不直接与机器的操作系统相对应,而是经过虚拟机间接与操作系统交互,由虚拟机将程序解释为目标代码(不同操作系统不同),给本地系统执行。 Jvm屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码,就可以在多种平台上不加修改地运行。 只有Jvm还不能事class文件执行,因为在解释class的时候Jvm需要调用解释所需要的类库lib,即Jre中的lib类库,单独的Jvm没有任何作用。


java是什么?java能用来干嘛?相关推荐

  1. 从 Java sleep 来看 arm64 Linux 内核都干了些什么?

    使当前正在执行的线程休眠(暂时停止执行)指定的毫秒数,取决于系统计时器和调度器的精度和准确性.线程不会失去任何监视器的所有权. sleep(long millis) 仅仅调用 sleep 带两个参数版 ...

  2. java怎么监听多个组件,java web(五):java web三大组件之另外两个和八大监听器

    java的三大组件指Servlet.Filter.Listener.八大监听器指八个接口.前面介绍了Servlet,现在介绍一下Filter拦截器以及拦截地址的设置, Listener监听那些事件. ...

  3. 【Java】探究Java数组的本质

    问题引入 Java中的数组是封装好的,我们直观地是看不到实现的细节的,但这是否意味着数组是Java中的基本类型? 答案是否定的. 众所周知,Java为了便于开发者使用,提供了8种基本类型:long.i ...

  4. 第一行Java代码,java高级面试笔试题

    我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家. 扫描二维码或搜索下图红色VX号,加VX好友,拉你进[程序员面试学习交流群]免费领取.也欢迎各位一起 ...

  5. java取得泛型,Java取得泛型类型

    Java获得泛型类型 Java代码 /* * Copyright 2010 Sandy Zhang * * Licensed under the Apache License, Version 2.0 ...

  6. java定时从数据库抓取数据库,java查询数据库java如何实现定时从数据库查询新增的数据?...

    第一类,开个线程,定式扫描,好比每一分钟查询一次数据库,将前后数据做比对(比对方式能够正在java端先把第一次的数据存到一个调集外,然后每次查询调集之后,将两次的内容正在java端做比力) 第二类,正 ...

  7. java教程pdf(java教程视频完整版)

    JAVA程序设计基础教程PDF 你在百度文库里找找好像有的,如果没有就去taobao吧,太多的二手旧书了.百度 谷歌上面这样的只是多的是 还有就是百度百科fsd <JAVA从入门到精通>电 ...

  8. JAVA语言规范 JAVA SE 8 - 类型、值和变量

    JAVA语言规范 JAVA SE 8 - 类型.值和变量 类型和值的种类 简单类型和值 整数类型和值 整数操作 浮点数类型.格式和值 浮点数操作 boolean类型和布尔值 引用类型和值 对象 Obj ...

  9. java简单的输入输出代码,java输入输出代码 java怎么样实现字符串输入输出问题...

    java代码 控制台输入输出 如何将控制台输出的内容如上.在线等 就比如说 输出helloworld 怎么把这个接收到我的jsp字符串我可能不太理解楼主这么做的意义, System.out.print ...

  10. 深圳Java培训:Java中的对象流和序列化

    深圳Java培训:Java中的对象流和序列化 最近,在讲流的使用,其中对象流的作用其实就是将自定义类的对象与流之间相互转换的流. 看起来还是挺简单的,那么看下面的例子: public class St ...

最新文章

  1. Nginx负载均衡配置实例详解(转)
  2. 万维钢新书《你有你的计划,世界另有计划》_《丑小鸭定理》读书笔记
  3. servlet监听完成统计在线人数,显示在线人员列表(附源码)
  4. 字符串GZIP压缩解压
  5. 层与特征融合_【计算机系统应用】(第122期)感受野特征增强的 SSD 目标检测算法...
  6. 全国职业院校技能大赛软件测试题目,我院荣获2017年全国职业院校技能大赛软件测试赛项一等奖...
  7. zookeeper下载安装过程
  8. MySQL 基础 ———— SQL语句的执行顺序与 LIMIT 子句
  9. 项目所需的应用程序未安装,确保已安装项目类型(.csproj)的应用程序的解决办法...
  10. python 遍历文件夹文件代码
  11. kettle入门教程
  12. 学习软件设计模式的书籍
  13. BS和CS架构的区别
  14. d6u android,天敏D6U_Android4.4.2_SONY BRAVIA_精简优化双启动版
  15. 有效值(RMS) 平均值(DC) 的理解
  16. python 正则表达式量词
  17. Typora最后的免费版本
  18. 安卓手机重启日志_一加手机CM12安卓5.0版非官方尝鲜版刷机方法介绍【教程】...
  19. bigworld源码分析(1)—— 研究bigworld的意义和目标
  20. 【2022国赛官方评审要点发布】2022高教社杯全国大学生数学建模竞赛官方评阅要点

热门文章

  1. 汽车改装之3G上网车载电脑篇
  2. LabVIEW视觉采集软件(VAS)、视觉生成器(VB)和视觉开发模块(VDM)之间有什么不同
  3. 静态路由出接口和下一跳
  4. 【七七八八】coursera python-basis certification
  5. 项目管理的SDCA环、PDCA环
  6. Pywinauto基础03--控件操作
  7. Geography Markup Language (GML)
  8. CSS进阶(4)- 扩展内容
  9. CRM系统是什么?它有什么作用?
  10. 大学计算机编程考试用什么软件?