Java基础学习——Java基础(一)概念

一、Java的体系结构

 

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

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

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

Java的开发环境需要安装JDK(Java Development Kit)和JRE(Java Runtime Envionment)。

其中:JDK=JRE+开发工具;JRE=JVM+类库。

软件开发人员需要JDK,如果只需要运行java文件,只需要安装JRE。

二、Java八大特性

1.跨平台/可移植性

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

2.安全性

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

3.面向对象

面向对象是一种程序设计技术,非常适合大型软件的设计和开发。

由于C++为了照顾大量C语言使用者而兼容了C,使得自身仅仅成为了带类的C语言,多少影响了其面向对象的彻底性。而Java是完全的面向对象语言

4.简单性

Java就是C++语法的简化版,我们也可以将Java称之为“C++-”。跟我念“C加加减”,指的就是将C++的一些内容去掉;比如:头文件,指针运算,结构,联合,操作符重载,虚基类等等。

同时,由于语法基于C语言,因此学习起来完全不费力。

5.高性能

Java最初发展阶段,总是被人诟病“性能低”;客观上,高级语言运行效率总是低于低级语言的,这个无法避免。Java语言本身发展中通过虚拟机的优化提升了几十倍运行效率。

比如,通过JIT(JUST IN TIME)即时编译技术提高运行效率。 将一些“热点”字节码编译成本地机器码,并将结果缓存起来,在需要的时候重新调用。这样的话,使Java程序的执行效率大大提高,某些代码甚至接待C++的效率。因此,Java低性能的短腿,已经被完全解决了。业界发展上,我们也看到很多C++应用转到Java开发,很多C++程序员转型为Java程序员。

6.分布式

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

7.多线程

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

8.健壮性

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

三、Java核心优势:跨平台

Java:一次编译,到处运行。

C:多次编译,到处运行。

四、java的核心机制

1.垃圾回收机制

垃圾回收:即对内存的释放。

1)在Java中,程序员不需要去关心内存动态分配和垃圾回收的问题,这一切都交给了JVM来处理,而C++中程序员需要负责回收无用的内存。

2)垃圾回收机制提高了内存空间的利用效率,也提高了编程人员的效率,很大程度上减少了没有释放空间而导致的内存泄漏。

2.跨平台原理

Java跨平台由Java虚拟机(Java Virtual Machine,简称 JVM)实现。
JVM是一个软件,不同的平台有不同的版本。

我们编写的Java源码,先被编译为字节码文件(.class 文件),字节码文件不能直接运行,于是再由JVM将字节码文件翻译成特定平台下的机器语言(机器码),然后运行(如上图)。也就是说,只要在不同平台上安装对应的JVM,就可以运行字节码文件,运行我们编写的Java程序。

而这个过程中,我们编写的Java程序没有做任何改变,仅仅是通过JVM这一”中间层“,就能在不同平台上运行,真正实现了”一次编译,到处运行“的目的。

注意

1)编译的结果不是生成机器码,而是生成字节码,字节码不能直接运行,必须通过JVM翻译成机器码才能运行。不同平台下编译生成的字节码是一样的,但是由JVM翻译成的机器码却不一样。
2)跨平台的是Java程序,不是JVM。JVM是用C/C++开发的,是编译后的机器码,不能跨平台,不同平台下需要安装不同版本的JVM。

PS:本文所有内容均来自Java课程及网上资料,仅作个人学习用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值