Java语言的魅力
Java语言的简介
- Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
- Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。
简单性
- Java的风格类似于C++。从某种意义上讲,Java语言是C及C++语言的一个变种。
- Java摒弃了C++中容易引发程序错误的地方,如指针和内存管理。
- Java提供了丰富的类库。
面向对象
Java 是面向对象的编程语言,对象就是面向对象程序设计的核心。
对象
所谓对象就是真实世界中的实体,对象与实体是一一对应的,也就是说现实世界中每一个实体都是一个对象,它是一种具体的概念。
- 对象具有属性和行为。
- 对象具有变化的状态。
- 对象具有唯一性。
- 对象都是某个类别的实例。
- 一切皆为对象,真实世界中的所有事物都可以视为对象。
面向对象开发模式更有利于人们开拓思维,在具体的开发过程中便于程序的划分,方便程序员分工合作,提高开发效率。
- 可重用性:代码重复使用,减少代码量,提高开发效率。
- 可扩展性:指新的功能可以很容易地加入到系统中来,便于软件的修改。
- 可管理性:能够将功能与数据结合,方便管理。
面向对象具有继承、封装和多态 3 个核心特性。
>#### 继承
+ 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。
+ Java 只能单继承,不能多继承。
+ Java继承关键字extends。
封装
- 封装是将代码及其处理的数据绑定在一起的一种编程机制,该机制保证了程序和数据都不受外部干扰且不被误用。封装的目的在于保护信息。
- 提高程序的安全性,保护数据。保护类中的信息,它可以阻止在外部定义的代码随意访问内部代码和数据。
- 隐藏代码的实现细节。
- 统一接口。有助于建立各个系统之间的松耦合关系,提高系统的独立性。
- 增加系统可维护性。提高软件的复用率,降低成本。
多态
- 即同一方法可以根据发送对象的不同而采用多种不同的行为方式。
- 多态性体现在父类中定义的属性和方法被子类继承后,可以具有不同的属性或表现方式。
- 多态性允许一个接口被多个同类使用,弥补了单继承的不足。
分布式
Java包括一个支持HTTP和FTP等基于TCP/IP协议的子库。
- 操作分布:即在多个不同的主机上不知相关操作。
- 数据分布:将数据分别存放在不同的主机上,这些主机是网络中的不同成员。
健壮性
- Java会检查程序在编码和运行时的错误,并消除错误。
- Java的强类型机制、异常处理、垃圾回收机制等都是Java健壮性的重要保证。
- Java的异常机制也是健壮性的一大体现。
安全性
语言级安全性、编译时安全性、运行时安全性、可执行代码安全性。
语言级安全性
Java取消了强大但又危险的指针,而代之以引用。由于指针可进行移动运算,指针可随便指向一个内存区域,而不管
这个区域是否可用,这样做是危险的,因为原来这个内存地址可能存储着重要数据或者是其他程序运行所占用的,并
且使用指针也容易数组越界。
垃圾回收机制
不需要程序员直接控制内存回收,由垃圾回收器在后台自动回收不再使用的内存。避免程序忘记及时回收,导致内存
泄露。避免程序错误回收程序核心类库的内存,导致系统崩溃。
异常处理机制
Java异常机制主要依赖于try、catch、finally、throw、throws五个关键字。
强制类型转换
只有在满足强制转换规则的情况下才能强转成功。
底层的安全性
Java在字节码的传输过程中使用了公开密钥加密机制(PKC)。
运行环境提供了四级安全性保障机制:
字节码校验器 -类装载器 -运行时内存布局 -文件访问限制
跨平台/可移植性
指软件可以不受计算机硬件和操作系统的约束而在任意计算机环境下正常运行。
- Java程序具有与体系结构无关的特性。
- Java的类库也提供了针对不同平台的接口,所有这些类库也可以被移植。
多线程
- 多线程是指允许一个应用程序同时存在两个或两个以上的线程,用于支持事务并发和多任务处理。
- Java 支持多个线程同时执行,并提供多线程之间的同步机制。
动态性
Java可以动态调整库中方法和增加变量,并且客户端不需要任何更改。在Java中进行动态调整是非常简单和直接。
高性能性
Java编译后的字节码是在解释器中运行的,所以它的速度较多数交互式运用程序提高了很多。
Java语言的魅力的更多相关文章
- [Java入门笔记] Java语言简介
前言 学习Java有一段时间了,但是一直缺少一个系统的思想,现在重新通过书籍中.网上的文章,视频等资料,整理与回顾Java的知识点. 言归正传,让我们先从了解Java语言开始. Java语言的由来 J ...
- Java语言的简介
Java语言的由来 Java是由Sun Microsystems公司推出的Java面向对象程序设计语言(以下简称Java语言)和Java平台的总称.由James Gosling和同事们共同研发,并在1 ...
- JAVA语言中的修饰符
JAVA语言中的修饰符 -----------------------------------------------01--------------------------------------- ...
- Atitit onvif协议获取rtsp地址播放java语言 attilx总结
Atitit onvif协议获取rtsp地址播放java语言 attilx总结 1.1. 获取rtsp地址的算法与流程1 1.2. Onvif摄像头的发现,ws的发现机制,使用xcf类库1 2. 调用 ...
- AVL树原理及实现(C语言实现以及Java语言实现)
欢迎探讨,如有错误敬请指正 如需转载,请注明出处http://www.cnblogs.com/nullzx/ 1. AVL定义 AVL树是一种改进版的搜索二叉树.对于一般的搜索二叉树而言,如果数据恰好 ...
- Java语言中的面向对象特性总结
Java语言中的面向对象特性 (总结得不错) [课前思考] 1. 什么是对象?什么是类?什么是包?什么是接口?什么是内部类? 2. 面向对象编程的特性有哪三个?它们各自又有哪些特性? 3. 你知 ...
- JAVA语言搭建白盒静态代码、黑盒网站插件式自动化安全审计平台
近期打算做一个插件化的白盒静态代码安全审计自动化平台和黑盒网站安全审计自动化平台.现在开源或半开源做黑盒网站安全扫描的平台,大多是基于python脚本,安全人员贡献python脚本插件增强平台功能.对 ...
- 关于Java语言和面向对象记录
本科时常用的c语言是面向过程的语言,而Java是面向对象的语言 Java语言的11个关键术语 简单性.可移植性.面向对象.分布式.高性能.解释型.健壮性.多线程.安全性.动态性.体系结构中立 面向对象 ...
- 用Java语言编写一个简易画板
讲了三篇概博客的概念,今天,我们来一点实际的东西.我们来探讨一下如何用Java语言,编写一块简易的画图板. 一.需求分析 无论我们使用什么语言,去编写一个什么样的项目,我们的第一步,总是去分析这个项目 ...
随机推荐
- 2020牛客暑期多校训练营(第四场)BCFH
BCFH B. Basic God Problem 题意 给出c和n,求fc(n). 题解 递归到最后 fc 函数肯定等于1,那么就变成了求c被乘了几次,只要找到 x 最多能被分解成多少个数相乘就好了 ...
- poj 2398Toy Storage
Toy Storage Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 3146 Accepted: 1798 Descr ...
- 2019-2020 ACM-ICPC Brazil Subregional Programming Contest Problem A Artwork (并查集)
题意:有一个矩形,有\(k\)个警报器,警报器所在半径\(r\)内不能走,问是否能从左上角走到右下角. 题解:用并查集将所有相交的圆合并,那么不能走的情况如下图所示 所以最后查询判断一下即可. 代码: ...
- div 水平居中 内容居左
<div style="margin:0 auto;width:500px;text-align:left"> </div> https://zhidao. ...
- 搭建基于springboot轻量级读写分离开发框架
何为读写分离 读写分离是指对资源的修改和读取进行分离,能解决很多数据库瓶颈,以及代码混乱难以维护等相关的问题,使系统有更好的扩展性,维护性和可用性. 一般会分三个步骤来实现: 一. 主从数据库搭建 信 ...
- HTTP笔记4--HTTP 状态码
状态码作用.组成 HTTP 状态码负责表示客户端 HTTP 请求的返回结果.标记服务器端的处理是否正常.通知出现的错误等工作.状态码的职责是当客户端向服务器端发送请求时,描述返回的请求结果. 状态码如 ...
- MySQL 索引的类型
主键索引(PRIMARY KEY) # 主键 = 唯一键索引 + 非空 + 只能设置一个字段 # 创建表的时候创建主键索引 mysql> create table test(id int not ...
- ubuntu 16.04 i386 安装 ruby + bundler + rails ; 搭建简单的网站bitbar
参考 http://gorails.com/setup/ubuntu/16.04 概述 Project 2 主要探究对web的攻击,本次试验共有6个部分. Project 2中攻击的是一个提供电子货币 ...
- 数字千万别用puts!
为了图省事我好几次都习惯的用puts输出一些确定答案,比如直接puts("-1"); 每次都wa到心态崩溃才想起来数字不能用puts...
- 查找命令中grep,find,which和whereis的使用及区别
在linux系统中,许多时候需要查找某些文件或者字符,如果用ls, cd 等基础命令就显得很无力了,那么Linux提供了grep,find,which 三种查找命令,在这里我记录一下: 一.grep命 ...