前言
从今天开始,我会从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),技术再牛的人,见到他都的喊一声“大哥”,瞻仰一下大哥面貌!
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,数据库连接以及网络编程等。
3.2、JavaEE
JavaEE(Java Platform Enterprise Edition 企业)企业版,是为了开发企业级应用程序提供的解决方案。JavaEE可以被看做一个技术平台,该平台用于开发、装配以及部署企业及应用程序,其中主要包括Servlet、JSP、JavaBean、JDBC、EJB、WebService等技术。
3.3、JavaME
JavaME(Java Platform Micro Edition 微型)小型版是为了开发电子消费产品和嵌入式设备提供的解决方案。JavaME主要用于小型数字电子设备上的软件程序的开发。此外,JavaME提供了HHTTP等高级Internet协议,是移动电话能以Client/Server方式直接访问Internet的全部信息,提供最高效率的无线交流。
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。
没有JDK的话,无法编译Java程序,如果想只运行Java程序,要确保已安装相应的JRE。
Java语言通过在不同的操作系统上安装对应的Java虚拟机实现了跨平台, 即java的.class程序可以在不同操作系统上均可以运行。(java的.class文件相当于Windows中的.exe文件,是可执行的程序)
java语言是跨平台的,java虚拟机不是跨平台的。
六、Java工作原理
JAVA的工作原理是:“一处编译,到处运行"。(.java源文件,必须编译成.class文件,在各种java平台层都可以运行)
硬件层:就是没有任何操作系统的计算机主要是指我们的硬件(主机,显示器等)。
操作系统层:是指我们的windows\linux\unix\android\ios等
JAVA平台层:针对不同的操作系统JAVA提供了不同的虚拟机
应用平台层:各种JAVA应用程序(如:QQ)、JAVA-WEB程序(如:12306)
创建源文件*.java文件
通过编译器(javac),编译成.class文件(字节码文件),
通过解释器(java),在计算机中解释执行.class文件
结语
这篇文章的理论比较多,就是让大家去了解一下,不用刻意的去背,后面我会慢慢进入主题,还会再讲这些东西的,从下一篇开始咱们就进入主题了!
感谢兄弟们的关注,咱们一块在java世界历险吧!