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语言的魅力相关推荐

  1. c语言程序报告样例,C语言个人实习报告定稿(样例3)

    <C语言个人实习报告.doc>由会员分享,可免费在线阅读全文,更多与<C语言个人实习报告[定稿]>相关文档资源请在帮帮文库(www.woc88.com)数亿文档库存里搜索. 1 ...

  2. Java 并发编程中的死锁 ( Kotlin 语言讲解)

    什么是死锁? 在操作系统中的并发处理场景中, 进程对资源的持有与请求过程中,会产生死锁. Say, Process A has resource R1 , Process B has resource ...

  3. java保护程序aal,ACDK白皮书-AAL语言

    ACDK白皮书-AAL语言 翻译:薛长宇 关于AAL语言(Artefaktur Aspects Language)的思想(因为这个语言还在初始开发阶段) 本章内容: 整体概念 前言 AAL和ACDK ...

  4. 《快乐编程大本营》java语言训练班-第4课:java流程控制

    <快乐编程大本营>java语言训练班-第4课:java流程控制 第1节. 顺序执行语句 第2节. 条件分支语句:if条件语句 第3节. 条件分支语句:switch 条件语句 第4节. 条件 ...

  5. java for循环_愉快地学Java语言:第五章 循环

    导读 本文适合Java入门,不太适合Java中高级软件工程师.本文以<Java程序设计基础篇>第10版为蓝本,采用不断提出问题,然后解答问题的方式来讲述.本篇文章只是这个系列中的一篇,如果 ...

  6. java 判断exception类型_Checked Exception | Java语言设计者的失误?

    背景 最近公司一直在执行sonar扫描代码bug.漏洞及异味,但发现了很对异常处理的问题,大多数是对Java异常处理不正确导致的,那本文就谈谈Java的异常是什么?设计者的初衷又是什么? Except ...

  7. Java语言特性运用:各种Java语法特性是怎样被Spring各种版本巧妙运用的?

    Java语法变化 Java5(2004): 枚举.泛型.注解.封箱(解箱)- Java6(2006): @Override接口 Java7(2011): Diamond语法.多Catch.Try- J ...

  8. 【C/C++】从技术学习和实际运用的角度来看,C/C++和Java到底区别在哪?C语言、C++学习路线?

    转自羊哥的公众号 这几个问题都是私信里常被问到的,也是我当时学习过程中的一些疑惑.谁说黑乎乎的命令行里运行的程序就没有用!这跟学什么编程语言.后续从事什么编程方向均无关,只要做编程开发,这四个计算机基 ...

  9. java修饰方法有哪些,探讨Java语言中那些修饰符

    一.在java中提供的一些修饰符,这些修饰符可以修饰类.变量和方法,在java中常见的修饰符有:abstract(抽象的).static(静态的).public(公共的).protected(受保护的 ...

最新文章

  1. BZOJ4568: [Scoi2016]幸运数字(线性基 倍增)
  2. 年轻的力量!那些30岁前教你重新认识世界的牛人
  3. 微信开发--one.微信平台验证
  4. 纯CSS实现iframe高度自适应,完美兼容各种浏览器,同域异域
  5. Dubbo爆出严重漏洞!可导致网站被控制、数据泄露!附解决方案
  6. 微信小程序云开发如何--实现简单的增删改查
  7. (字符串)最长公共子序列(Longest-Common-Subsequence,LCS)
  8. standalone vue initialization process - Vue应用的初始化过程
  9. C语言(CED)王老师爬楼梯,他可以每次走1级或者2级,输入楼梯的级数,求不同的走法数(递归求解)
  10. 光纤收发器的原理及应用_光纤收发器的应用与讲解
  11. 简单-三层-存储过程-增删改《一》
  12. python命令行参数解析模块argparse和docopt
  13. awk和perl对多文本进行统计(求他们的并集,并且如果前三列相同第四列的数字相加,第五列信息合并)...
  14. Java多线程--概述-转自Kyrie lrving
  15. Android .dex、.odex、Dalvik、ART、AOT、OAT
  16. 产品经理——java学习之路
  17. Unicode编码的实现
  18. winserver修改计算机用户名,如何修改Windows系统的管理员账户名
  19. Excel如何按照月份汇总销售量
  20. MATLAB用逻辑表达式求分段函数值

热门文章

  1. ajax传递json数组php,怎么通过ajax传送json数组到php,并通过php将数据插入数据库
  2. 你必须懂也可以懂的微服务系列三:服务调用
  3. Dockerfile指令详解:WORKDIR 指定工作目录
  4. IDEA的GsonFormat插件--将json字符串直接实例化成类
  5. php使用fopen乱码,php下fopen中文文件名乱码怎么办?
  6. php xml expat,PHP Expat :XML的解析器
  7. 微型计算机技术习题,微型计算机技术课后习题一二三章答案
  8. Socket、Tcp、Udp 概念区分
  9. 内存位置访问无效_万字长文——java内存模型之volatile深入解读
  10. 基础回顾(正则、循环、和、 int和Integer、String /StringBuffer、Array和ArrayList、值传递和引用传递、 Lamda、java8)