送给2018的自己:
目标敲坏一台电脑
学习体系:
- 知识体系建立为第一目标
- 遇到难点不纠结 ,以后再来看难点
C语言: C语言诞生于1972
年,可以称之为现代高级语言的鼻祖,由著名的贝尔实验室
发明,追求结构化、模块化、高效率
的“语言之花”。在底层编程,比如嵌入式、病毒开发等应用,可以替代汇编语言来开发系统程序。在高层应用,也可以开发从操作系统(Unix/Linux/Windows都基于C语言开发)到各种应用软件。
C++语言
作为C语言的扩展,C++是贝尔实验室
于80年
代推出的。C++是一种混合语言,既可以实现面向对象编程,也可以开发C语言面向过程风格的程序。 C++语言在科学计算、操作系统
、网络通讯
、系统开发
、引擎开发
中仍然被大量使用。
Java语言
由美国SUN公司发明于1995
年,是目前业界应用最广泛、使用人数最多的语言,连续多年排名世界第一,可以称之为“计算机语言界的英语”。
Java广泛应用于企业级软件开发
、安卓移动开发
、大数据云计算等领域
,几乎涉及IT所有行业。关于Java的发展历史和特性,将在后面专门介绍。
PHP语言
PHP原始为Personal Home Page
的缩写,已经正式更名为 “PHP: Hypertext Preprocessor”。PHP语言,一般用于WEB
开发领域;大量的中小型网站以及某些大型网站使用PHP开发。
Object-C和Swift语言
Object-C通常写作Objective-C
或者Obj-C或OC
,是根据C语言所衍生出来的语言,继承了C语言的特性,是扩充C的面向对象编程语言。OC主要用于苹果软件
的开发。
Swift,苹果于2014年WWDC(苹果开发者大会)发布的新开发语言,可与OC共同运行于Mac OS和iOS平台,用于搭建基于苹果平台的应用程序。
JavaScript语言
JavaScript是一种脚本语言,已经被广泛用于Web应用开发
;应用范围越来越大,重要性越来越高。目前,流行的H5
开发的核心其实就是JavaScript语言。
Python语言
Python发明于1989
年,语法结构简单,易学易懂;Python具有丰富和强大的库。它常被昵称为胶水语言
,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。Python广泛应用于:图形处理
、科学计算
、web编程
、多媒体应用
、引擎开发
;尤其是在未来大热方向机器学习
和人工智能
上有非常大的潜力。
C#语言
C#是微软公司发布的一种面向对象的、运行于.NET Framework
之上的高级程序设计语言。C#
在基于windows
操作系统的应用开发这一领域在取代C++,占据主导地位。“成也萧何败也萧何”,C#的微软身份,也成为了发展的阻力,在其他IT领域应用较少。
Fortran语言
世界上第一种高级语言, IBM公司在1954年提出的,主要用在需要复杂数学计算的科学和工程领域。现在仍然被广泛使用,尤其是工程领域。Fortran虽然适合编写科学计算方面的程序,但是不适于编写系统程序。
Basic语言
虽然易学,但功能不够强大,应用到大程序的有效性令人怀疑。已经逐步退出历史舞台。
COBOL语言
于1959年
提出。主要用于大量精确处理数据的商业领域中,比如金融
、银行
。今天,仍然有超过一半的商业软件使用COBOL编写。有将近100万人使用COBOL编程。
Pascal语言
Pascal的名称是为了纪念十七世纪法国著名哲学家和数学家Blaise Pascal
而来的,它由瑞士Niklaus Wirth教授于六十年代末设计并创立的。Pascal语言语法严谨,层次分明,程序易写,可读性强,是第一个结构化编程语言。由于没有大厂商和政府的支持,只是限于大学教育这一块。
Java的核心优势
跨平台是Java语言的核心优势,赶上最初互联网的发展,并随着互联网的发展而发展,建立了强大的生态体系,目前已经覆盖IT各行业的“第一大语言”,是计算机界的“英语”。
JAVA虚拟机是JAVA实现跨平台的核心。事实上,基于JAVA虚拟机(JVM)的编程语言还有很多种:
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.*
等。该版本针对资源有限的电子消费产品的需求精简核心类库,并提供了模块化的架构让不同类型产品能够随时增加支持的能力。
Java的特性和优势
- 跨平台/可移植性
- 安全性
- 面向对象
- 简单性:将C++的一些内容去掉;比如:头文件,指针运算,结构,联合,操作符重载,虚基类等等。同时,由于语法基于C语言,因此学习起来完全不费力。
- 高性能
- 分布式:它能够处理TCP/IP协议。事实上,通过URL访问一个网络资源和访问本地文件是一样简单的。Java还支持远程方法调用(RMI,Remote Method Invocation),使程序能够通过网络调用方法。
- 多线程:多线程的使用可以带来更好的交互响应和实时行为。 Java多线程的简单性是Java成为主流服务器端开发语言的主要原因之一。
- 健壮:Java程序不可能造成计算机崩溃。即使Java程序也可能有错误。如果出现某种出乎意料之事,程序也不会崩溃,而是把该异常抛出,再通过异常处理机制加以处理。
-
计算机高级语言的类型主要有
编译型
和解释型
两种,而Java
语言是两种类型的结合。
JVM、JRE和JDK
JVM(Java Virtual Machine)就是一个虚拟的用于执行bytecode
字节码的”虚拟计算机”。他也定义了指令集
、寄存器集
、结构栈
、垃圾收集堆
、内存区域
。JVM负责将Java字节码解释运行,边解释边运行,这样,速度就会受到一定的影响。