Java语言平台

JavaSE(Java Platform Standard Edition)标准版
以前叫做J2SE,5.0版本后改名叫做JAVASE,主要用于桌面应用程序的开发,该技术体系是后两者的基础,如果打算以后做Android开发,也需要先学习这部分的知识。
JavaME(Java Platform Micro Edition)小型版
以前叫做J2ME,后来更名为JAVAME,是为开发电子消费产品和嵌入式设备提供的解决方案。
JavaEE(Java Platform Enterprise Edition)企业版 (JakartaEE)
以前叫做J2EE,后来更名为JAVAEE,是为开发企业环境下的应用程序提供的一套解决方案,主要针对于Web应用程序开发,也是大部分Java开发相关人员工作方向。 在2018年3月初,Oracle公司将JavaEE移交给开源组织Eclipse基金会管理,因此JavaEE被改名为JakartaEE。javase,javame和javaee的关系

Java语言特点

简单性
相对来说要比C和C++简单一些,学习起来更容易上手。
面向对象
Java是面向对象的,更有利于学习者以人类的思维方式去理解它。
健壮性
强类型机制、异常处理、泛型使Java更具有健壮性
安全性
Java提供了一系列的安全机制来防范恶意代码攻击
开源
Java语言是开放源代码的,众人拾柴火焰高嘛,每个人都可以为Java技术的发展做出贡献。
跨平台
使用Java语言开发的语言可以在不修改源码的情况下运行到各大操作系统,例如windows,linux,mac等。

Java语言跨平台原理

一次编译,多处运行,是Java的优点之一,那Java是如何实现的呢?在需要运行Java应用程序的操作系统上,先安装一个JVM(Java Virtual Machine)即Java虚拟机,由JVM来负责Java程序在该系统中的运行,不同的操作系统需要安装不同的JVM,这样Java程序只需要跟JVM打交道,底层的操作由JVM去执行。打个比方,比如我要去美国人旅游,要学英语,去日本旅游,要学日语。如果我手里有了一台英语翻译机,我直接跟这个翻译机说中文,它就能翻译出英文,如果是日语翻译机,它就能把中文翻译成日语,我有了这些翻译机,不用再学习外语,就可以跟别的国家的人交流了。这个翻译机就可以理解为JVM,也是Java为什么能够实现跨平台的原理了。

Java跨平台原理

JRE和JDK

什么是JRE?
JRE(Java Runtime Environment)即Java运行时环境,主要负责运行Java程序。
什么是JDK?
JDK(Java Development Kit)即Java开发工具包,主要用来开发Java程序。
JDK和JRE的关系
Java程序员开发完程序之后需要运行查看,因此JDK包含了JRE,安装JDK之后,就不用再去特意安装JRE了。对于那些只希望运行Java程序的人来说,只需要安装JRE即可。..

1-1-Java的特点的更多相关文章

  1. Spark案例分析

    一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...

  2. 故障重现(内存篇2),JAVA内存不足导致频繁回收和swap引起的性能问题

    背景起因: 记起以前的另一次也是关于内存的调优分享下   有个系统平时运行非常稳定运行(没经历过大并发考验),然而在一次活动后,人数并发一上来后,系统开始卡. 我按经验开始调优,在每个关键步骤的加入如 ...

  3. Elasticsearch之java的基本操作一

    摘要   接触ElasticSearch已经有一段了.在这期间,遇到很多问题,但在最后自己的不断探索下解决了这些问题.看到网上或多或少的都有一些介绍ElasticSearch相关知识的文档,但个人觉得 ...

  4. 论:开发者信仰之“天下IT是一家“(Java .NET篇)

    比尔盖茨公认的IT界领军人物,打造了辉煌一时的PC时代. 2008年,史蒂夫鲍尔默接替了盖茨的工作,成为微软公司的总裁. 2013年他与微软做了最后的道别. 2013年以后,我才真正看到了微软的变化. ...

  5. 故障重现, JAVA进程内存不够时突然挂掉模拟

    背景,服务器上的一个JAVA服务进程突然挂掉,查看产生了崩溃日志,如下: # Set larger code cache with -XX:ReservedCodeCacheSize= # This ...

  6. 死磕内存篇 --- JAVA进程和linux内存间的大小关系

    运行个JAVA 用sleep去hold住 package org.hjb.test; public class TestOnly { public static void main(String[] ...

  7. 【小程序分享篇 一 】开发了个JAVA小程序, 用于清除内存卡或者U盘里的垃圾文件非常有用

    有一种场景, 手机内存卡空间被用光了,但又不知道哪个文件占用了太大,一个个文件夹去找又太麻烦,所以我开发了个小程序把手机所有文件(包括路径下所有层次子文件夹下的文件)进行一个排序,这样你就可以找出哪个 ...

  8. Java多线程基础学习(二)

    9. 线程安全/共享变量——同步 当多个线程用到同一个变量时,在修改值时存在同时修改的可能性,而此时该变量只能被赋值一次.这就会导致出现“线程安全”问题,这个被多个线程共用的变量称之为“共享变量”. ...

  9. Java多线程基础学习(一)

    1. 创建线程    1.1 通过构造函数:public Thread(Runnable target, String name){}  或:public Thread(Runnable target ...

  10. c#与java的区别

    经常有人问这种问题,用了些时间java之后,发现这俩玩意除了一小部分壳子长的还有能稍微凑合上,基本上没什么相似之处,可以说也就是马甲层面上的相似吧,还是比较短的马甲... 一般C#多用于业务系统的开发 ...

随机推荐

  1. 浅谈JavaScript的Canvas(绘制图形)

    HTML5中新增加的一个元素canvas,要使用canvas元素,浏览器必须支持html5.通过canvas标签来创建元素,并需要为canvas指定宽度和高度,也就是绘图区域的大小. <canv ...

  2. 细谈SetButtonInfo函数及其用途

    SetButtonInfo用于设置某个按钮,它的接口定义如下: 下面是它的几个接口函数说明: void CToolBar::SetButtonInfo(int nIndex, UINT nID, UI ...

  3. Eclipse中的Web项目自己主动部署到Tomcat

    一.原因. 1.写java程序有一段时间了,但非常久没用eclipse了.所以使用eclipse编写的web项目部署到tomcat 的方式也不是非常清楚,以下记录一下将Eclipse 上的web项目自 ...

  4. hadoop的一般端口使用

  5. All the best open source and Software as a Service (SaaS) tools in one place 工具 工欲善其事必先利其器

    Open Source & SaaS Tools | StackShare https://stackshare.io/categories AfterShip/SaaS: List of S ...

  6. https://github.com/PyMySQL/PyMySQL/blob/master/pymysql/connections.py

    # Python implementation of the MySQL client-server protocol # http://dev.mysql.com/doc/internals/en/ ...

  7. db_create_file_dest

    <span><span>RAC中.将db_create_file_dest改动为本地路径,在创建表空间指定ASM磁盘组的时候还能够直接'+DATA'么?</span> ...

  8. mysql数据库引擎InnoDB和MyISAM的区别

    InnoDB支持行级锁和表级锁(默认行级锁),支持事务,外部键等:大量的insert和update更快等.只有通过索引条件检索数据,InnoDB 才使用行级锁,否则,InnoDB 将使用表锁. MyI ...

  9. Delphi语言最好的JSON代码库 mORMot学习笔记1(无数评论)

    mORMot没有控件安装,直接添加到lib路径,工程中直接添加syncommons,syndb等到uses里 --------------------------------------------- ...

  10. Java 猫扑(mop)打卡小应用

    唉 mop又没打卡,前面十几天全没啦,像我们这些IT码农虽然天天上网,但是总是忘记打卡,这不一失足生成千古恨,失败了撒.好不容易每次打卡都能得几百份的,唉.​1. [代码][Java]代码   pac ...