简介

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

java基础梳理--朝花夕拾(一)的更多相关文章

  1. java基础梳理--朝花夕拾(三)

    1.了解面向对象的编程思想以及面向对象的特性: 对象: EveryThing is Object: 万物皆是对象,在程序中,我们可以将类.接口.方法.属性等都认为是对象: 面向对象: 是一种程序设计方 ...

  2. java基础梳理--朝花夕拾(二)

    1.Java语言语法规则和文件格式: 第一个Java程序:/** 第一个Java程序:控制台输出Hello world!*/public class Test{    //访问修饰符 class关键词 ...

  3. java基础梳理

  4. Java基础梳理(一)

    List和Set比较,各自的子类比较 对比一:Arraylist与LinkedList的比较 1.ArrayList是实现了基于动态数组的数据结构,因为地址连续,一旦数据存储好了,查询操作效率会比较高 ...

  5. java基础知识梳理

    java基础知识梳理 1 基本数据类型

  6. java面试总躲不过的并发(一): 线程池ThreadPoolExecutor基础梳理

    本文核心:线程池ThreadPoolExecutor基础梳理 一.实现多线程的方式 1.继承Thread类,重写其run方法 2.实现Runnable接口,实现run方法 3.实现Callable接口 ...

  7. java后端知识点梳理——java基础

    面向对象 java三大特性 封装: 将事务封装成一个类,达到解耦,隐藏细节的效果.通过get/set等方法,封装了内部逻辑,并保留了特定的接口与外界联系. 继承: 从一个已知的类中派生出一个新的类,新 ...

  8. 黑马程序员——【Java基础】——Java概述

    ---------- android培训.java培训.期待与您交流! ---------- 一.Java语言概述及三大技术架构 1.Java语言概述 Java是SUN公司于1995年推出的一种面向I ...

  9. 【Spring学习】【Java基础回顾-数据类型】

    Java基础回顾过程中,之前对于Java相关基础知识都是从这个人的博客看一些,那边的内容看一下,觉得不够系统化,决定用xmind脑图的形式,将Java基础知识回顾的作为一个系列,当前正在做的会包含: ...

随机推荐

  1. springmvc启动问题

    1.resource项目 freemarker.template.TemplateNotFoundException: Template not found for name "index/ ...

  2. linux 下配置svn

    1.以前配置好的,没做笔记,忘记了.现在重新回忆 查找svn目录:find / -name svn 找到/projects/svn cd /projects/svn 看里面的配置: 查看配置 [roo ...

  3. 4.2、LED1、LED2交替闪烁

    #include "ioCC2530.h" //引用CC2530头文件 /***************************************************** ...

  4. 1、CC2530单片机介绍

    单片机是一种集成电路芯片,包含中央处理器CPU.随机存储器RAM.只读存储器ROM.输入输出I/O接口.中断控制系统.定时/计数器和通信等多种功能部件. 本教程使用的单片机德州仪器生产的CC2530, ...

  5. 《Java 程序设计》第一周学习总结

    本周因为刚刚接触Linux和码云等等,所以在完成作业的时候遇到很多问题. 首先,在安装Linux没有安装盘片,在盘片安装之后成功建立虚拟机,建立虚拟机后首先要下载jdk,第一次下载时没有选对格式,Li ...

  6. Redis作为lru缓存作用

    当 Redis 作为缓存使用时,当你添加新的数据时,有时候很方便使 Redis 自动回收老的数据.LRU 实际上是被唯一支持的数据移除方法.Redis 的 maxmemory 指令,用于限制内存使用到 ...

  7. CodeForces5E 环转链,dp思想

    http://codeforces.com/problemset/problem/5/E 众所周知,在很久以前,在今天的 Berland 地区,居住着 Bindian 部落.他们的首都被 n 座山所环 ...

  8. python对象的不同参数集合

    如下,我们已经有了一个从Contact类继承过来的Friend类 class ContactList(list): def search(self, name): '''Return all cont ...

  9. nGrinder TestRunner http post json

    s nGrinder学习笔记 — post请求 https://blog.csdn.net/meyoung01/article/details/50435881 import HTTPClient.H ...

  10. Linux下常用的shell操作

    # 设定hosts解析记录 sh-4.2# echo "$(ifconfig ens192 | awk '/\<inet\>/{print $2}') $(hostname)&q ...