[01]java基础回顾

00 Java语言

      由美国SUN公司发明于1995年,是目前业界应用最广泛、使用人数最多的语言,连续多年排名世界第一,可以称之为“计算机语言界的英语”。

Java广泛应用于企业级软件开发、安卓移动开发、大数据云计算等领域,几乎涉及IT所有行业。



 

01 Java历史

1991年,James Gosling在SUN公司的工程师小组想要设计这样一种小型计算机语言。该语言主要用于像电视盒这样的消费类电子产品。另外,由于不同的厂商选择不同的CPU和操作系统,因此,要求该语言不能和特定的体系结构绑在一起,要求语言本身是中立的,也就是跨平台的。所以,将这个语言命名为“Green”,类似于绿色软件的意思。后来,改名为Oak,橡树的意思。改名后发现已经有一种语言叫这个名字了,再改名叫Java。Java语言发展到今天经历了一系列的过程:

1991年,SUN公司的Green项目,Oak

1995年,推出Java测试版

1996年,JDK1.0

1997年,JDK1.1

1998年,JDK1.2,大大改进了早期版本缺陷,是一个革命性的版本,更名为Java2。

2004年,J2SE 5.0 (1.5.0) Tiger老虎

2006年,J2SE 6.0 (1.6.0) Mustang野马

2011年,JavaSE7.0 Dolphin海豚

2014年,JavaSE8.0



02 Java的优势

    跨平台以及强大的生态圈!

Java为消费类智能电子产品而设计,但智能家电产品并没有像最初想象的那样拥有大的发展。然而90年代,Internet却进入了爆发式发展阶段,一夜之间,大家都在忙着将自己的计算机连接到网络上。这个时候,遇到了一个大的问题。人们发现连接到Internet的计算机各式各样,有IBM PC、苹果机、各种服务器等等,不仅硬件CPU不同,操作系统也不同,整个的网络环境非常复杂。这个时候,程序员们希望他们编写的程序能够运行在不同的机器,不同的环境中,这需要一种体系中立的语言(即跨平台)。Java的研发小组忽然发现他们用于小范围的语言也可以适应Internet这个大环境。

  跨平台是Java语言的核心优势,赶上最初互联网的发展,并随着互联网的发展而发展,建立了强大的生态体系,目前已经覆盖IT各行业的“第一大语言”,是计算机界的“英语”。

  虽然,目前也有很多跨平台的语言,但是已经失去先机,无法和Java强大的生态体系抗衡。Java仍将在未来几十年成为编程语言的主流语言。

JAVA虚拟机是JAVA实现跨平台的核心。事实上,基于JAVA虚拟机(JVM)的编程语言还有很多种

基于JAVA生态建立的产品将会越来越多;基于JAVA虚拟机的编程语言也将会越来越多;生态系统的强大,是JAVA能长盛不衰的根本。

03 Java的各个版本意义

    JavaSE(Java Standard Edition):标准版:定位在个人计算机上的应用。

这个版本是Java平台的核心,它提供了非常丰富的API来开发一般个人计算机上的应用程序,包括用户界面接口AWT及Swing,网络功能与国际化、图像处理能力以及输入输出支持等。在上世纪90年代末互联网上大放异彩的Applet也属于这个版本。Applet后来为Flash取代,Flash即将被HTML5取代。

JavaEE(Java Enterprise Edition):企业版,定位在服务器端的应用。

  JavaEE是JavaSE的扩展,增加了用于服务器开发的类库。如:JDBC是让程序员能直接在Java内使用的SQL的语法来访问数据库内的数据;Servlet能够延伸服务器的功能,通过请求-响应的模式来处理客户端的请求;JSP是一种可以将Java程序代码内嵌在网页内的技术;

JavaME(Java Micro Edition):微型版,定位在消费性电子产品的应用上

  JavaME是JavaSE的内伸,包含J2SE的一部分核心类,也有自己的扩展类,增加了适合微小装置的类库:javax.microedition.io.*等。该版本针对资源有限的电子消费产品的需求精简核心类库,并提供了模块化的架构让不同类型产品能够随时增加支持的能力。

 注意点!:

  1.很多人开始会误解为安卓开发就是JavaME,这两个是完全不同的内容。



04 Java的特性和优势

·跨平台/可移植性

这是Java的核心优势。Java在设计时就很注重移植和跨平台性。比如:Java的int永远都是32位。不像C++可能是16,32,可能是根据编译器厂商规定的变化。这样的话程序的移植就会非常麻烦。

·安全性

Java适合于网络/分布式环境,为了达到这个目标,在安全性方面投入了很大的精力,使Java可以很容易构建防病毒,防篡改的系统。

·面向对象

面向对象是一种程序设计技术,非常适合大型软件的设计和开发。由于C++为了照顾大量C语言使用者而兼容了C,使得自身仅仅成为了类C语言,多少影响了其面向对象的彻底性!Java是完全的面向对象语言。

·简单性

Java就是C++语法的简化版,我们也可以将Java称之为“C++-”。

·高性能

Java语言本身发展中通过虚拟机的优化提升了几十倍运行效率。比如,通过JIT(JUST IN TIME)即时编译技术提高运行效率。将一些“热点”字节码编译成本地机器码,并将结果缓存起来,在需要的时候重新调用。这样的话,使Java程序的执行效率大大提高,某些代码甚至接近C++的效率。

·分布式

Java是为Internet的分布式环境设计的,因为它能够处理TCP/IP协议。事实上,通过URL访问一个网络资源和访问本地文件是一样简单的。Java还支持远程方法调用(RMI,Remote Method Invocation),使程序能够通过网络调用方法。

·多线程

多线程的使用可以带来更好的交互响应和实时行为。Java多线程的简单性是Java成为主流服务器端开发语言的主要原因之一。

·健壮性

Java是一种健壮的语言,吸收了C/C++ 语言的优点,但去掉了其影响程序健壮性的部分(如:指针、内存的申请与释放等)。Java程序不可能造成计算机崩溃。即使Java程序也可能有错误。如果出现某种出乎意料之事,程序也不会崩溃,而是把该异常抛出,再通过异常处理机制加以处理。



05 Java应用程序的运行机制

计算机高级语言的类型主要有编译型和解释型两种,

而Java 语言是两种类型的结合。

Java首先利用文本编辑器编写 Java源程序,源文件的后缀名为.java;再利用编译器(javac)将源程序编译成字节码文件,字节码文件的后缀名为.class;最后利用虚拟机(解释器,java)解释执行。



06 Java中的JVM,JRM和JDK

JVM(Java Virtual Machine)就是一个虚拟的用于执行bytecode字节码的”虚拟计算机”。他也定义了指令集、寄存器集、结构栈、垃圾收集堆、内存区域。JVM负责将Java字节码解释运行,边解释边运行,这样,速度就会受到一定的影响。

不同的操作系统有不同的虚拟机。Java 虚拟机机制屏蔽了底层运行平台的差别,实现了“一次编译,随处运行”。Java虚拟机是实现跨平台的核心机制。如图所示:

Java Runtime Environment (JRE) 包含:Java虚拟机、库函数、运行Java应用程序所必须的文件。

Java  Development Kit (JDK)包含:包含JRE,以及增加编译器和调试器等用于程序开发的文件。

JDK、JRE和JVM的关系如图1-7所示。

注意点!:

如果只是要运行Java程序,只需要JRE就可以。JRE通常非常小,其中包含了JVM。

      如果要开发Java程序,就需要安装JDK。

原文地址:https://www.cnblogs.com/Linc93/p/12150486.html

时间: 2024-10-12 15:38:00

[01]java基础回顾的相关文章

四、Android学习第四天——JAVA基础回顾(转)

(转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 四.Android学习第四天——JAVA基础回顾 这才学习Android的第四天,在程序中已经遇到了JAVA中以前不常用的一些知识点,赶紧回顾复习一下,打下基础 这里就做个简单的小结: 一.匿名内部类 匿名内部类说白了就是个没有被命名的JAVA类 在以下条件下使用匿名内部类比较适合: ①只用到该类的一个实例时 ②类在定义后被马上用到 ③类非常小(SUN推荐是在4行代码以下

【DAY26】JAVA 基础回顾

基础回顾 ---------------- 1.跨平台 os JVM : sandbox 1995 2.基本数据类型 byte //1 -128 ~ 127 short //2 -32768 - 32767 int //4 long //8 float //4 doule //8 char //2 boolean //1 3.引用类型 [] class interface 4.运算符 && //短路 || //短路 & // | // ^ //抑或,相同0,不同为1 >>

1、java基础回顾与加强

一.    基础回顾 1   集合 1.1  集合的类型与各自的特性 ---|Collection: 单列集合 ---|List: 有存储顺序, 可重复 ---|ArrayList:    数组实现, 查找快, 增删慢 由于是数组实现, 在增和删的时候会牵扯到数组 增容, 以及拷贝元素. 所以慢.数组是可以直接按索引查找, 所以查找时较快 ---|LinkedList:   链表实现, 增删快, 查找慢由于链表实现, 增加时只要让前一个元素记住自己就可以, 删除时让前一个元素记住后一个元素, 后

01.Java基础问题

目录介绍 1.0.0.1 请手写equal方法,讲讲具体的原理?1.0.0.2 请说下String与StringBuffer区别,StringBuffer底部如何实现?String类可以被继承吗,为什么?1.0.0.3 String a=""和String a=new String("")的的关系和异同?String的创建机制?1.0.0.4 static关键字可以修饰什么?static使用的注意事项有哪些?static关键字的特点?1.0.0.5 为什么 Java

Java基础回顾(上)

一.唠叨 有朋友开始接触Java,问我一些基础的问题,突然发现不知该如何回答,十分尴尬.痛定思痛,便回炉重造,将java基础的知识重新梳理了一遍. 以下是我看书时或摘要.或总结的语言,完全是Java中基础的基础. 二.学习笔记 (一)基本数据类型 1.标识符区分大小写:hello与Hello是不同的标识符. 2.基本数据类型的精度由低到高依次为:byte short char int long float double 3.格式控制符号: %d int类型 %c char类型 %f 浮点类型 %

[Java基础回顾]Tomact及Http 部分总结.

前言:   刚好今天回来的很早, 总结下 Tomcat及Http的基础知识. 1, Tomcat    web相关概念        web:网页的意思,网页资源包括服务器上的所有资源.            web资源分类:                静态的资源:内容不会发生改变的资源                动态的资源:内容可能发生改变的资源            web技术:                静态的web技术:html css js 等               

5.JAVA基础回顾

java有什么特点? 1.简单性 2.面向对象的语言 3.一种与平台无关的语言(可跨平台) 4.健壮性和安全性 5.多线程 6.垃圾回收机制 2.什么是JDK?什么是JRE? JDK是JAVA的开发工具集.(编译环境,运行环境,调试环境,基础类库) JRE是JAVA的运行环境. (虚拟机,核心类库以及连接文件:JDK包括JRE) 3.JDK的目录结构是怎样的? bin:存放可执行的命令文件.javac.exe为编译的可执行文件: java.exe为执行java的可执行文件. db:数据库支持目录

java基础回顾(2)

java中只有两种类型:基础类型.引用类型 8中基本类型:byte  short int long float double char boolean,其中byte类型取值范围[-2^7~2^7-1],short类型 取值范围为[-2^15~2^15-1],int类型取值范围[-2^31~2^31-1] 定义long类型,习惯性在数字后加L 定义float类型,习惯性在数字后加f ☆强制转换语法        小类型 变量名 = (小类型)大类型值. 可能会出现溢出现象 运算符:算术运算符.逻辑

java基础回顾之IO

Java的IO 是Java运用重要部分之一,涉及到的内容也比较多,容易混淆,一段时间不用,可能就会遗忘,要时常回顾记忆一下: (图片来源于网络) Java 流在处理上分为字符流和字节流. 字符流处理的单元为 2 个字节的 Unicode 字符,分别操作字符.字符数组或字符串,而字节流处理单元为 1 个字节,操作字节和字节数组.Java 内用 Unicode 编码存储字符,字符流处理类负责将外部的其他编码的字符流和 java 内 Unicode 字符流之间的转换.类 InputStreamRead