走近Java
学习Java需要了解必要的Java历史,不要觉得Java历史对学习Java编程没有任何帮助。在任何时候,了解一门语言的历史都能帮助更好地理解这门语言的精髓。以前在学习语文时,在分析一篇文章,通常会通过5W2H分析法来分析一篇文章的始末。这里我也将通过5W2H中的4W1H来带大家走近Java。(4W1H:Who,What,Why,When,How)
引用《深入理解Java虚拟机》一书中的一句话作为开篇:
世界上并没有完美的程序,但我们并不因此而沮丧,因为写程序本来就是一个不断追求完美的过程。
一、Who
Java之父:詹姆斯-高斯林。我们习惯称之为高司令。1991年4月,由高司令领导的绿色计划开始启动,这个计划的产品就是Java语言的前身:Oak(橡树)。随着1995年互联网潮流的兴起,Oak迅速找到了最适合自己发展的市场定位并蜕变成为Java语言。
主要公司:Sun(Stanford University Network,斯坦福大学网络公司)。Oracle,2009年4月20号收购Sun公司。
二、What
Java概述与其体系结构
Java不仅仅是一门编程语言,还是一个由一系列计算机软件和规范形成的技术体系。这个技术体系提供了完整的用于软件开发和跨平台部署的支持环境,并广泛应用于嵌入式系统,移动终端,企业服务器、大型机等各种场合。Java体系结构主要包括:Java程序设计语言、支持各种硬件平台的Java虚拟机、Class文件格式、Java API类库、第三方Java类库。
对于这几个组成部分的名词解释:API,英文全称为Application Programming Interface,应用程序编程接口。可以简单理解为Java里写好的一些代码,可根据规则直接来使用以达到某种目的的方法。Class文件格式,即Java是一种编译型语言,即它的语法不能直接被计算机识别,需要编译后才能识别。源码文件以.java结尾,而编译后的文件以.class结尾。
通常我们把Java程序设计语言、Java虚拟机、Java API类库这三部分统称为JDK(Java Development Kit)。从英文全称中的development也可以推测出它是用于开发的。JDK是用于支持Java程序开发的最小环境。在后面我们讲Java环境搭建时其实就是配置JDK的环境。另外Java 核心API与Java虚拟机这两部分称为JRE(Java Runtime Environment),即JRE主要用于支持Java程序的运行。

Java语言平台
J2SE(Java 2 Platform Standard Edition):是为开发普通桌面和商务应用程序提供的,它是其他两者的基础。像我们入门学习Java写的一些程序都属性J2SE
J2ME(Java 2 Platform Micro Edition):是为开发电子消费产品和嵌入式设备
J2EE(Java 2 Platform Enterprise Edition):主要针对Web应用程序开发。后续将会进行知识点介绍
三、Why
Java语言的优点
一次编写,多处运行:这个优点是所有Java程序员都知道的一个优点。它摆脱了硬件平台的束缚。
提供了一个相对安全的内存管理和访问机制,这点对于学过C语言的人会比较有同感,在C语言里,经常会有指针滥用的情况,而在Java则避免了绝大部分的内存泄露和指针越界问题
有完善的类库和无数第三方类库来帮助实现各种各样的功能
......
四、When
Java发展史
1991年4月,绿色计划开启;
1995年5月,Oak语言改名为Java。也就是Java语言诞生的年份;
1996年1月,JDK1.0发布;
JDK1.0一共发布了1.1.0~1.1.8九个版本,中间经历了1.2,1.3,1.4,1.5,1.6,1.7,1.8,到现在1.9已经发布。
其中比较有历史意义的版本有:
JDK1.5,引入了自动装箱、泛型、动态注解、可变参数等诸多新特性。JDK1.7,1.8现在比较常用的两个版本,1.8引入了许多有用的新特性,比如lamda表达式等。
Java虚拟机发展
Java虚拟机的存在是使得Java实现一处编写,多处运行的关键。这里我们只需要了解目前使用得最为广泛的Java虚拟机是HotSpot VM。后面深入学习Java时,再进行介绍。感兴趣的可以查阅《深入理解Java虚拟机》一书,或自行查找相关资料。
五、How
如何学习Java
对于任何一门编程语言,学习的方法都是通用的,那就是写代码,只有写代码,测试出来的结果才是最可靠,也是最容易记住的。如果你是小白,新入门一门语言,那么在学习的时候,不要钻牛角尖,先记住用法,学会之后再了解原理,先会用再去知道为什么要这样用。如果你是已经学过一门语言的人,再接触新语言时,大致浏览新语言的语法即可。注意多种语言之间的对比。当然不管什么方法,最为关键的还是多写,多百度,多google。
走近Java的更多相关文章
- Java进阶之路 - 1.走近Java
Java进阶之路 - 1.走近Java 一.走近Java思维导图
- 走近Java之包装器类Integer
前几天,有个同事问了我一个关于Integer类赋值的问题,很有意思,我们一起来看一下(如果有说的不正确的地方,欢迎大家指正). 如上图,同样是赋值,但是两次比较的结果完全不同.我们走近了解一下. 在I ...
- 深入理解 Java 虚拟机——走近 Java
1.1 - 概述 Java 总述:Java 不仅是一门编程语言,还是一个由一系列 计算机软件 和 规范 形成的技术体系,这个技术体系提供了完整的用于软件开发和跨平台部署的支持环境,并广泛应用于 嵌入式 ...
- 走近Java之幕后的String
前几天,有个同事问了我一个表面看起来显而易见的问题,是关于String的,我们一起来看一下(如果有说的不正确的地方,欢迎大家指正). java中,字面量在编译期计算,并且String字面量作为常量,存 ...
- 走近Java之HashMap In JDK8
HashMap,继承AbstractMap类,实现了Map接口,特性是无序不可重复,其本身的数据结构是数组加链表和红黑树.今天我们就一起来详细了解一下. 首先,需要知道,HashMap中几个关键词的含 ...
- 《深入理解Java虚拟机:JVM高级特性与最佳实践》【PDF】下载
<深入理解Java虚拟机:JVM高级特性与最佳实践>[PDF]下载链接: https://u253469.pipipan.com/fs/253469-230062566 内容简介 作为一位 ...
- 深入理解Java虚拟机-第1章-走进Java-读书笔记
第 1 章 走近 Java 前言 Java 的技术体系主要是由支撑 Java 程序运行的虚拟机.为各开发领域提供接口支持的 Java API.Java 编程语言及许许多多的第三方 Java 框架(如 ...
- [深入理解Java虚拟机]<自动内存管理>
Overview 走近Java:介绍Java发展史 第二部分:自动内存管理机制 程序员把内存控制的权利交给了Java虚拟机,从而可以在编码时享受自动内存管理.但另一方面一旦出现内存泄漏和溢出等问题,就 ...
- 《深入理解Java虚拟机》学习笔记
<深入理解Java虚拟机>学习笔记 一.走近Java JDK(Java Development Kit):包含Java程序设计语言,Java虚拟机,JavaAPI,是用于支持 Java 程 ...
随机推荐
- where id in用 order by field 保持排序
转载自http://blog.linuxphp.org/archives/1588/ 先看下mysql的默认排序 select id from article where id in(63261,63 ...
- CodeForces - 294A Shaass and Oskols
//////////////////////////////////////////////////////////////////////////////////////////////////// ...
- Linux必知必会的目录与启动过程
第1章 /etc/目录 1.1 /etc/sysconfig/network-scripts/ifcfg-eth0 linux第一块网卡的配置文件 [root@znix ~]# cat /etc/sy ...
- 利用echarts highcharts 实现自定义地图 关系图效果 侧边3D柱形图饼图散点图
github 地址: https://https://github.com/Gengshaoxuan/medataMap github 地址: https://https://github.com ...
- C 程序实现密码隐秘输入 linux系统可执行
读写用户输入,屏幕不回显 char *getpass( const char *prompt); getpass用于从键盘读取用户输入,但屏幕不回显. 参数prompt为屏幕提示字符. 函数返回值为用 ...
- 蓝桥杯之K好数
如果一个自然数N的K进制表示中任意的相邻的两位都不是相邻的数字,那么我们就说这个数是K好数.求L位K进制数中K好数的数目.例如K = 4,L = 2的时候,所有K好数为11.13.20.22.30.3 ...
- kickstart 实现批量安装centos7.x系统
1.1 安装系统的方法 l 光盘(ISO文件,光盘的镜像文件)===>>每一台物理机都得给一个光驱,如果用外置光驱的话,是不是每台机器都需要插一下 l U盘:ISO镜像刻录到U盘==& ...
- MVC页面静态化
MVC 页面静态化 最近工作需要,实现页面静态化,以前在ASP时代,都是FSO自己手动生成的. 新时代,MVC了,当然也要新技术,网上一搜,找到一种解决方案,是基于MVC3的,实现原理是通过mvc ...
- requests和BeautifulSoup
一:Requests库 Requests is an elegant and simple HTTP library for Python, built for human beings. 1.安装 ...
- python基础阶段 经典练习题 拾英札记(3)
对于编程学习来说,动手操练和重复训练很重要. 因为这是一个注重实践的活,最终要下笔落字. 更何况,即使你看了很多博客,听了很多课,你脑中的认识和手指下的-屏幕上的反馈,逻辑上是两个维度-两个载体的,中 ...