JAVA特点介绍
1 .JAVA介绍
Java的设计者曾说过,设计这门语言的灵感主要来自于C++。世上先有C++,然后才有Java,整个Java语言的发展历史就是一部对C++的填坑史 , 而C++复杂难摸透, 导致学习成本昂贵且难学 ; 因此 , Java取其精华,去其糟粕, 不仅保存了C++的优点,同时还将学习成本低 , 易学习 , 语法简单,上手容易 , 作为自己的一个特点 , 自从进入21世纪以来,Java在TIOBE语言排行榜一直稳居前2名,占有率一直在12%以上.从国内各大招聘网站的岗位需求和培训班的畅销课程上看,Java一直稳居榜首,可以说Java是近十年最流行的语言.
2. 面向对象
万物皆为对象。面向对象是把构成问题的事务分解成各个对象,而建立对象的目的也不是为 了完成一个个步骤,而是为了描述某个事物在解决整个问题的过程中所发生的行为。
Java 中面向对象的三大特性:封装、继承、多态。
封装:隐藏对象的属性和实现细节,仅对外公开访问方法,控制程序中属性的读和写的访问
级别。
继承:在一个现有类的基础之上,增加新的方法或重写已有方法,从而产生一个新类。
多态:所谓多态就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方
法调用在编程时并不确定,而是在程序运行期间才确定,既一个引用变量到底会指向哪个类
的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期
间才能决定。
(多态通过继承或者接口实现).
3.平台无关性( Java 虚拟机实现平台无关性):
平台无关性指的是软件或系统不依赖于特定的硬件平台或操作系统,能够在多种不同的平台上运行或部署。Java之所以能够实现平台无关性,主要得益于Java虚拟机(JVM)的引入。 (后续会详细介绍 )
4. 支持多线程
C++ 语言没有内置的多线程机制,因此必须调用操作系统的多线程功能来进行多线程程序设计,而 Java 语言却提供了多线程支持.
5. 可靠性
具备异常处理和自动内存管理机制
Java 提供了一套结构化的异常处理机制,用于捕获和处理在程序运行时可能出现的错误或异常情况。这主要通过 try、catch、finally 和 throw 等关键字来实现。
try 块:用于包裹可能会抛出异常的代码。
catch 块:用于捕获和处理特定类型的异常。
finally 块:无论是否发生异常,finally 块中的代码都会被执行,常用于资源清理工作。
throw 关键字:用于显式地抛出一个异常。
throws 关键字:在方法签名中使用,表示该方法可能会抛出的异常类型.
Java 提供了自动内存管理(垃圾回收机制),减轻了程序员手动管理内存的负担。垃圾回收器(Garbage Collector, GC)自动监测并回收不再使用的对象所占用的内存,从而避免了内存泄漏和悬挂指针等问题
对象的创建:使用 new 关键字创建对象时,会在堆内存中分配空间。
对象的引用:通过引用变量访问对象。当引用变量不再指向某个对象时,该对象变为不可达(即没有引用指向它)。
垃圾回收:垃圾回收器定期扫描堆内存,回收不再使用的对象所占用的内存。
6. 安全性
Java 语言本身的设计就提供了多重安全防护机制如访问权限修饰符、限制程序直接访问操作系统资源; 例如 public privateprotected 等 , 安全机制 如 无指针运算 , 数组边界检查 , 强制类型转换 等
7. 高效性
通过 Just In Time 编译器等技术的优化,Java 语言的运行效率还是非常不错的;
Java语言的高效性主要得益于其内置的Just-In-Time(JIT)编译器以及其他优化技术。这些技术共同提升了Java程序的运行效率,使其在各种应用场景中都能表现出色。
除了JIT编译器外,Java语言还采用了其他多种优化技术来提升程序的运行效率: 如 垃圾回收优化 类加载优化 即时编译与解释器结合
8. 支持网络编程并且很方便
Java 语言在网络编程方面确实提供了强大的支持和极大的便利性。Java 的网络编程库涵盖了从底层套接字(Socket)编程到高级网络协议(如HTTP、FTP等)的实现,使得开发者能够轻松地构建各种网络应用。
Java 网络编程的核心组件: 如 Java 网络API , 套接字(Socket)编程 , URL和URI处理 , 高级网络协议 .
9. 编译与解释并存
Java语言被称为 “编译与解释并存”,这一特性主要源于其独特的运行机制和编译过程 , 而编译与解释并存的优势 有以下几点 :
跨平台性:由于Java程序被编译成与平台无关的字节码,因此可以在任何安装了JVM的平台上运行,实现了“一次编写,到处运行”的目标。
安全性:字节码隐藏了源代码的细节,提高了程序的安全性。此外,JVM还提供了安全管理器来控制程序的访问权限,进一步增加了应用程序的安全性。
灵活性:解释执行使得Java程序具有高度的灵活性,可以在程序运行时动态地加载和解释执行新的代码,无需重新编译整个程序。
高效性:通过JIT编译器的优化,Java程序的执行效率可以接近甚至超过一些传统的编译型语言,如C/C++。