简介

Java是一种撰写跨平台应用软件的面向对象语言,1995年由Sun Microsystems公司推出。 2009年04月20日,甲骨文74亿美元收购Sun,取得java的版权。 2011年7月28日,甲骨文发布java7.0的正式版。 2014年3月19日,甲骨文公司发布java8.0的正式版。

Java组成部分

(1)Java编程语言

(2)Java文件格式

(3)Java虚拟机(JVM)

(4)Java应用程序接口(Java API)

当编辑并运行一个Java程序时,需要同时涉及到这四种方面。使用文字编辑软件(例如记事本写字板UltraEdit等)或集成开发环境EclipseMyEclipse等)在Java源文件中定义不同的类,通过调用类(这些类实现了Java API)中的方法来访问资源系统,把源文件编译生成一种二进制中间码,存储在class文件中,然后再通过运行与操作系统平台环境相对应的Java虚拟机来运行class文件,执行编译产生的字节码,调用class文件中实现的方法来满足程序的Java API调用。

流程如下:Java-源文件(*.java文件)->Java编译器(javac.exe可执行文件,执行javac命令)->字节码文件(编译后文件,*.class文件)->(类装载器+字节码校验器)->解析器(解析成操作系统识2进制编码格式)->操作系统执行;

Java2平台包括

标准版(J2SE)、企业版(J2EE)和微缩版(J2ME)三个版本。

J2EE是Java 2 enterprise edition是Java的一种企业版用于企业级的应用服务开发(用于java 企业级应用程序开发);

J2SE是Java 2 standard edition是Java的标准版,用于标准的应用开发;(用于java桌面应用程序开发) ;

J2ME是Java 2 Micro Edition是Java的微型版,常用于小型电子设备上如手机上的开发,嵌入式开发等。

J2EE,J2SE,J2ME是java针对不同的的使用来提供不同的服务,也就是提供不同类型的类库。

java运行环境:

Java的平台由两个部分组成:一个是Java Virtual Machine即Java虚拟机JVM,另一部分是Java Application Programming Interface (Java API) 即Java应用程序设计接口,这两部份软件就构成了Java运行的基本的环境。Java API 是一个大的已经做好的软件集合,这个集合里有许多开发时所需要的控件,用来辅助开发。Java API和JVM整合在一起处于机器硬件之上.

java语言特点:

1)面向对象:
现实世界中任何实体都可以看作是对象。在java语言中,也是这样的概念,即,将一切都视为对象,也就是一种比较泛华的概念或者是称谓;
2)可移植性:
编译好的java程序或文件,可通过复制,拷贝到其他系统或者应用程序上,也可解释执行,达到复用的目的,即java语言具有这种可移植性和可复用性;
3)跨平台性:
目前操作系统有WINDOWS、UNIX、Mac OS,linux等,java语言可运行在不同的系统或者平台之上,包括java 的嵌入式,都说明其具有良好的跨平台性;
3)安全性:
1、garbage collection,garbage collector会让你的程序不容易出现内存泄露。GC 垃圾回收机制,会自动释放长时间不再使用的应用程度的系统内存;
2、exception,程序出现exception的时候程序员可以让程序停止运行,这样的话就不会被黑客黑了。
3、指针,JAVA里面没有指针。C的话就非常危险了,黑客可以让C的程序stack overflow, 然后在overflow的内存地址跳到一个不该跳的地方。
4)并发性:
java中存在Thread类,提供了多线程的并发机制;

p.s. 《java基础梳理-朝花夕拾》系列由何东飞根据自己工作几年以来对java的理解梳理而成,笔者闲暇时将持续更新,有不对的地方请各位指教。QQ:983489147

最新文章

  1. HDFS 架构解析
  2. java 在linux环境下写入 syslog 问题研究
  3. WindowManager 实现悬浮窗 详解
  4. sql 、linq、lambda 总结
  5. Win7 桌面应用图标不见了
  6. 51nod1262 扔球
  7. AndroidStudio字体主题样式分享
  8. 11个实用但你可能不知道的Python程序库
  9. 洛谷 P1019 单词接龙【经典DFS,温习搜索】
  10. mysql-proxy中的admin-lua-script
  11. 第一章 Java程序设计概述
  12. 第一个python程序--hello,world
  13. Route学习笔记之Area的Route注册
  14. ExtJS模板与菜单的使用案例-床位卡
  15. 一维码Code 39简介及其解码实现(zxing-cpp)
  16. Python_oldboy_自动化运维之路_全栈考试(五)
  17. Error reading field 'throttle_time_ms': java.nio.BufferUnderflowException
  18. 10-06 Linux的基本命令以及一些简单的通配符说明
  19. 测试用例组合--PICT
  20. python中对 函数 闭包 的理解

热门文章

  1. 洛谷P2770 双路DP // 网络流
  2. npx小工具
  3. Linux top、VIRT、RES、SHR、SWAP(S)、DATA Memory Parameters Detailed
  4. JAVA核心技术I---JAVA基础知识(集合set)
  5. Sublime Text3 里使用MarkDown如何预览
  6. SpringSecurity3Demo【原】
  7. Shell编程(四)Shell变量
  8. jsp实现验证码登陆
  9. FastJson用法
  10. MyEclipse2017 隐藏回车换行符