你真的了解java吗?

Posted 磊哥的Java历险记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了你真的了解java吗?相关的知识,希望对你有一定的参考价值。

前言

从今天开始,我会从java基础开始,给大家一步一步分享文章,尽量用简单,容易的语言去描述,把我的感想分享给大家,希望对大家有所帮助,也希望大家持续关注!


一.介绍

1.1、计算机语言

指用于人与计算机之间通讯的语言。计算机语言是人与计算机之间传递信息的媒介。计算机系统最大特征是指令通过一种语言传达给机器。为了使电子计算机进行各种工作,就需要有一套用以编写计算机程序的数字、字符和语法规划,由这些字符和语法规则组成计算机各种指令(或各种语句)。这些就是计算机能接受的语言。程序员通过这些指令来指挥计算机进行各种工作。

计算机语言主要由机器语言、汇编语言、高级语言,组成。

1.2、机器语言

毋庸置疑是计算机可以直接识别和使用的语言。但是在编程的时候,通常不会选择机器语言,因为机器语言都是由二进制0或1组成的编码。不便于编程人员的记忆与识别。

那么汇编和高级语言是编程人员常用的语言。

1.3、汇编语言

采用英文缩写的标识符,容易识别和记忆。那么为什么不都用汇编语言编程,这就要解释什么是高级语言。

1.4、高级语言

采用更接近人类的自然语言进行编程,进一步简化了程序编程的过程,所以,大多数编程者会选择高级语言。

现在我们讲解的Java语言就是高级语言的一种。

二.Java介绍

2.1、Java语言介绍

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。

      Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。

2.2、Java语言发展史 (简单了解就行了)

詹姆斯·高斯林(James Gosling),技术再牛的人,见到他都的喊一声“大哥”,瞻仰一下大哥面貌!

你真的了解java吗?_java介绍


SUN– (Stanford University Network斯坦福大学网络公司)  

1995年5月23日,Java语言诞生

1996年1月 JDK1.0

1997年2月 JDK1.1

1998年12月 JDK1.2(将Java分成了J2SE,J2EE,J2ME)

2000年5月 J2SE1.3

2002年2月 J2SE1.4(1.4.2版本很多公司在使用)

2004年10月  JDK1.5(改名JavaSE5.0,JavaEE,JavaME)

2006年12月 JavaSE6.0

2009年04月20日,甲骨文(Oracle)74亿美元收购Sun。

2011年7月  JavaSE7.0(市场主流版本)

2014年3月 JavaSE8.0

2017年9月 JavaSE9.0

 

三、JAVA应用模型

现在市场上绝大多数企业应用采用Java作为编程语言,Java语言应用于服务器开发,智能家居,网站的后台维护,手机应用后台等等。

SUN公司为了让使用Java语言的开发人员可以针对特定的市场进行开发,SUN公司将Java划分为三个版本,分别是JavaSE、JavaME、JavaEE

3.1、JavaSE

JavaSE(Java Platform Standard Edition——Java平台标准版)标准版是为开发普通桌面和商务应用程序提供的解决方案,JavaSE是三个平台最核心的部分,JavaEE和JavaME都是从JavaSE的基础上发展而来的,JavaSE平台包括了Java最核心的类库,包括,如集合,IO,数据库连接以及网络编程等。

你真的了解java吗?_java_02

3.2、JavaEE

JavaEE(Java Platform Enterprise Edition 企业)企业版,是为了开发企业级应用程序提供的解决方案。JavaEE可以被看做一个技术平台,该平台用于开发、装配以及部署企业及应用程序,其中主要包括Servlet、JSP、JavaBean、JDBC、EJB、WebService等技术。

你真的了解java吗?_java介绍_03

3.3、JavaME

JavaME(Java Platform Micro Edition  微型)小型版是为了开发电子消费产品和嵌入式设备提供的解决方案。JavaME主要用于小型数字电子设备上的软件程序的开发。此外,JavaME提供了HHTTP等高级Internet协议,是移动电话能以Client/Server方式直接访问Internet的全部信息,提供最高效率的无线交流。

你真的了解java吗?_java_04

Java有这些功能,现在基本退出舞台,由安卓、ios等移动端操作语言替代

四、Java语言特点

Java应用广泛,受到大众的欢迎,其根本原因是Java语言的众多突出优点(优点肯定是与其他高级语言相比较得来的),介绍几个主要的特点:

4.1、简单:

Java看起来设计的很像C++,但是为了是语言小和容易熟悉,设计者把C++语言种许多可用的特征去掉了,这些特征是一般程序员很少使用的,例如:Java不支持go to语句,代之以提供break和continue语句以及异常处理。Java还剔除了C++的操作符过载(重载overload)和多继承特征,并且不使用主文件,免去了预处理程序。因为Java没有结构,数组和串都是对象,所以不需要指针。Java能够自动处理对象的引用和间接引用,实现自动的无用单元收集,(垃圾回收机制)使用户不必为存储(内存)管理问题烦恼,能把更多的时间和精力花在研发上。

4.2、面向对象:

Java是一个面向对象的语言,对程序员来说,这意味着要注意应用数据和操作数据的方法(method),而不是严格地用过程来思考。在一个面向对象的系统中,类(class)是数据和操作数据的方法和集合。数据和方法一起描述对象(object)的状态和行为。每一对象是其状态和行为的封装。类是按一定体系和层次安排的,使得子类可以从超类继承行为。在这个类层次体系中有一个根类,它是具有一般行为的类。Java程序是用来组织的。

为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字implements)。Java语言全面支持动态绑定,而C++语言只对函数使用动态绑定。

Java还包括一个类的扩展集合,分别组成各种程序包(package),用户可以在自己的程序中使用。例如,Java提供产生图形用户接口的类(java.awt包),这里awt是抽象窗口工具集(abstract windowing tookit)的缩写,处理输入输出的类(java.io包)和支持网络功能的类(java.net包)。

4.3、分布式

Java设计成支持在网络上应用,它是分布式语言,Java既支持各种层次的网络连接,又以Socket类支持可靠的流(steam)网络连接,所以用户可以产生分布式的客户机和服务器。

网络变成软件应用的分布运载工具。Java程序只需编写一次,就可到处运行。

4.4、稳健性

Java原来是用作编写消费类家用电子产品软件的语言,所以他是被设计成高可靠和稳健软件的。Java消除了某些编程错误,使得用它写可靠软件相当容易。

Java是一个强类型语言,它允许扩展编译时检查潜在类型不匹配问题的功能。Java要求显示方法声明,它不支持C语言风格的隐式声明。这些严格的要求保证编译程序能捕捉调用错误,这就导致会开发出更可靠的程序。

可靠性方面最重要的增强之一是Java的存储模型。Java不支持指针,它消除重新存储和讹误(文字错误;字句上的疏漏差误)数据。类似的,Java自动的“无用单元收集”预防存储漏泄和其它有关动态存储分配和解除分配的有害错误。Java解释程序员也执行许多运行时的检查,诸如验证所有数组和串访问是否在界限之内。

4.5、安全性

Java的存储分配模型是它防御恶意代码的主要方法之一。Java没有指针,所以程序员不能得到隐蔽起来的内幕和伪造指针去指向存储器。更重要的是,Java编译程序不处理存储安排决策,所以程序员不能通过查看声明去猜测类的实际存储安排。编译的Java代码中存储引用在运行时由Java解释程序决定实际存储地址。

Java运行系统使用字节码验证过程保证装载到网络上的代码不违背任何Java语言限制。这个安全机制部分包括类如何从网上装载。例如,装载的类是放在分开的名字空间而不是局部类,预防恶意的小应用程序用它自己的版本来代替标准Java类。

Java语言不支持指针,一切对内存的访问都必须通过对象的实例变量来实现,从而使应用更安全。

4.6、可移植性(跨平台)

Java使得语言声明不依赖与实现的方面。例如,Java显示说明每个基本数据类型的大小和它的运算行为(这些数据类型由Java语法描述)。

Java环境本身对新的硬件平台和操作系统是可移植的。Java编译程序也用Java编写,而Java运行系统用ANSIC语言编写。

4.7、高性能

Java是一种先编译后解释的语言,所以他不如全编译性语言快。但是有些情况下性能是很要紧的,为了支持这些情况,Java设计者制作了“及时”编译程序,它能在运行时吧Java字节码翻译成特定CPU(中央处理器)的机器代码,也就是实现全编译了。

Java字节码格式设计时考虑到这些“及时”编译程序的需要,所以生成机器代码的过程相当简单,它能产生相当好的代码。

4.8、支持多线程

Java语言是支持多线程的,所谓的多线程可以简单地理解为程序中有多个任务可以并发执行,这样可以在很大程度上提高程序的执行效率。


五、JAVA核心JDK与JRE

JRE为Java的运行时环境,是运行Java程序依赖的。如果仅仅是运行已经存在的Java程序,只安装JRE即可。

JDK为Java是开发环境,是开发时依赖的。包含JRE。

你真的了解java吗?_java语言_05

没有JDK的话,无法编译Java程序,如果想只运行Java程序,要确保已安装相应的JRE。

Java语言通过在不同的操作系统上安装对应的Java虚拟机实现了跨平台, 即java的.class程序可以在不同操作系统上均可以运行。(java的.class文件相当于Windows中的.exe文件,是可执行的程序)

 

你真的了解java吗?_java介绍_06

      java语言是跨平台的,java虚拟机不是跨平台的。

六、Java工作原理

      JAVA的工作原理是:“一处编译,到处运行"。(.java源文件,必须编译成.class文件,在各种java平台层都可以运行)

你真的了解java吗?_java_07

硬件层:就是没有任何操作系统的计算机主要是指我们的硬件(主机,显示器等)。

操作系统层:是指我们的windows\\linux\\unix\\android\\ios等

JAVA平台层:针对不同的操作系统JAVA提供了不同的虚拟机

应用平台层:各种JAVA应用程序(如:QQ)、JAVA-WEB程序(如:12306)

你真的了解java吗?_java_08

创建源文件*.java文件

通过编译器(javac),编译成.class文件(字节码文件),

通过解释器(java),在计算机中解释执行.class文件

结语

这篇文章的理论比较多,就是让大家去了解一下,不用刻意的去背,后面我会慢慢进入主题,还会再讲这些东西的,从下一篇开始咱们就进入主题了!

感谢兄弟们的关注,咱们一块在java世界历险吧!


以上是关于你真的了解java吗?的主要内容,如果未能解决你的问题,请参考以下文章

你真的了解java吗?

你真的了解一段Java程序的生命史吗

Java——你真的了解Java异常处理机制吗?

你真的了解Java系统启动流程吗?java实训目标

送书活动你真的了解Java多线程编程吗?

你真的完全了解Java动态代理吗?看这篇就够了