今天开始小研便带大家一起学习Java,希望我自学的经验能给大家带来一点帮助,话不多说,我们先从Java的基础知识开始了解。
(小研学得还可以的,跟我走没得错)
什么是Java?
Java是Sun Microsystems于1995年首次发布的一种编程语言和计算平台。有的同学会问了:小研!不是说是编程语言吗!这计算平台是什么呀!
对呀,什么是计算平台呢?
计算平台是在电脑中运行应用程序(软件)的环境,包括硬件环境和软件环境。一般系统平台包括一台电脑的硬件体系结构、操作系统、运行时库。
Java作为后端,以其优秀的性能具备快速,安全和可靠的特点。从手机到互联网,Java 已经渗透进了我们信息生活的方方面面。Java君真的很好。
Java 主要有三个版本
1)JavaSE(J2SE)(Java2 Platform Standard Edition, java平 台标准版)
2)JavaEE(J2EE)(Java 2 Platform,Enterprise Edition, java平 台企业版)
3)JavaME(J2ME)(Java 2 Platform Micro Edition, java平 台微型版)。
简单来说,你可以根据需要找到适合你的Java版本,它就是这么万金油。
Java的特点
(1)Java是一门面向对象的编程语言
又有同学会举起手问了:什么是面向对象呀?
面向对象是一种软件开发思想。它是对现实世界的一种抽象,面向对象会把相关的数据和方法组织为一个整体来看待。说到抽象有些编程基础的人可能会想到C++,Java的编程相对于来说还是很简单的。不用太过于担心,它虽然繁杂但易学。
而相对的另外一种开发思想就是面向过程的开发思想。面向过程是一种以过程为中心的编程思想。
我们化抽象为具体,举个例子:比如你要赶去上班或者是上学,你需要做什么?
小研的话会把这个过程分为:起床,穿衣,洗漱,吃早饭,穿鞋出门;这就是出门的一整个流程,也就是过程。而Java可以不用严格按照顺序来执行每个动作。这里不得不以C++为代表典型与Java进行比较:Java摒弃了C++中难以理解的多继承、指针、内存管理等概念;不用手动管理对象的生命周期。
Java语言功能强大且简单易用,各种框架出现,使Java吃足了红利,应用范围越来越广。
从语言来说,Java是一门静态语言。静态语言便是指在编译期间就能够知道数据类型的语言,在运行前就能够检查类型的正确性,一旦类型确定后就不能再更改。C++, JAVA, C#, Scala这些都是静态语言。
相对于,动态语言没有任何特定的情况需要指定变量的类型,在运行时确定的数据类型。Python就是典型的动态语言。
二者有不同的长处。动态语言是能够让程序员提高编码效率,可以使更少的代码来实现功能。静态语言能让硬件执行更高效,因此需要程序员编写的代码准确无误。从一定角度来说静态语言的效率更高。(拒绝踩一捧一)
(2)Java具有跨平台/可移植性
这是Java的核心优势,Java在设计时就很注重移植性和跨平台性,比如:Java中描述一个整数时, 用int类型描述,那么这个int就永远为32位,不像C++可能是16位也可能是32位,这样的话程序的 可移植性就比较麻烦
Java有句口号:“Write once,run anywhere .”一次编写、到处运行。
这句口号的核心就是JVM 。计算机在应用程序和硬件之间会屏蔽很多细节,它们之间依靠操作系统完成调度和协调。
大概就是下面这个样子:
加上Java应用、JVM的体系结构会变为这样
Java是跨平台的,已编译的Java程序可以在任何带有JVM的平台上去运行。你可以在Windows平台下编写代码,然后拿到Linux平台下运行,方便吧。
那么,我们怎么实现这个操作呢?
首先你需要在应用中编写Java代码;再用Eclipse 或者javac 把Java代码编译为. class 文件;然后把.class 文件变成. jar文件。这样这个.jar 文件就能够在Windows、Mac OS X、Linux 系统下运行了,切换平台时,就不需要再次编译那写Java代码了。(真的很方便!!!)
(3)Java能够容易实现多线程
多线程的使用可以带来更好的交互响应和实时行为,Java多线程的简单性是Java成为主流服务器端开发语言的主要原因之一。Java作为一门高级语言,高级语言会对用户屏蔽很多底层实现细节。比如Java是如何实现多线程的。从操作系统的角度来说,实现多线程的方式主要有下面这几种
1)在用户空间中实现多线程
2)在内核空间中实现多线程
3)在用户和内核空间中混合实现线程
(4)Java具有高性能
Java最初发展阶段,总被人诟病"性能低",但发展至今,Java语言本身发展通过虚拟机的优化提升了几十倍上百倍的运行效率,因此Java低性能的短腿,已经完全解决了,发展至今,很多C++应用 也都慢慢转为Java开发了,很多C++程序员也渐渐转向Java程序员
经过javac编译器编译称为字节码(bytecode),经过JVM内嵌的解释器将字节码转换为机器代码,这是解释执行,这种转换过程效率较低。但是部分JVM的实现比如Hotspot JVM都提供了JIT(Just-In-Time) 编译器,也就是通常所说的动态编译器,JT能够在运行时将热点代码编译机器码,这种方式运行效率比较高,这是编译执行,所以Java不仅仅只是一种解释执行的语言。
(5)Java语言具有健壮性
Java是一种健壮的语言,吸收了C/C++语言的优点,但去掉了其他影响程序健壮性的部分,如指针,内存的申请等等,就算Java程序出现错误也是抛出然后有异常处理机制来处理Java的强类型机制、异常处理、垃圾的自动收集等是Java程序健壮性的重要保证。这也是Java与C .语言的重要区别。
(6)Java 易开发分布式项目
Java是为Internet的分布式环境设计的,因为他能够处理TCP/IP协议,事实上,通过一个URL访问一个网络资源和访问本地文件是一样简单的,Java还支持远程方法调用,使程序能够通过网络调用方法。
Java语言支持Internet 应用的开发,Java 中有net api,它提供了用于网络应用编程的类库,包括URL、URLConnection、 Socket、ServerSocket等。 Java的RMI (远程方法激活)机制也是开发分布式应用的重要手段。
Java的基础都只是这样,简单却包含了Java基础的概念,我们今天就学到这里,之后再见啦~