Java语言主要有哪些特点?

1、JavaSE、JavaEE、JavaME三者的区别?

  • Java SE(Java Platform,Standard Edition)Java平台标准版。Java SE以前称为J2SE。他允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的Java应用程序。Java SE 包含了支持 Java Web 服务开发的类,并为 Java Platform,Enterprise Edition(Java EE)提供基础。该技术体系是其他两者的基础。
  • Java EE(Java Platform,Enterprise Edition)企业版。这个版本以前称为 J2EE。企业版本帮助开发和部署可移植、健壮、可伸缩且安全的服务器端 Java 应用程序。是为开发企业环境下的应用程序提供的一套解决方案,该技术体系中包含的技术如 Servlet、Jsp等,主要针对于Web应用程序开发。
  • J2ME(Java 2 Platform Micro Edition) 小型版。这个版本以前称为 J2ME。Java ME 为在移动设备和嵌入式设备(比如手机、PDA、电视机顶盒和打印机)上运行的应用程序提供一个健壮且灵活的环境。是为开发移动设备和嵌入式设备(电器、机器人、机顶盒…)提供的解决方案。

 

 

2、Java语言主要有哪些特点?

  • 开源性

  • 简单性:

    1)在语法规则上和C++类似,从某种意义上来说,你可以理解为java是由C和C++演变而来的。  

       2)Java语言对C++进行了简化和提高,简单举例:java使用接口取代多重继承;取消指针,因为指针和多重继承往往使程序变得复杂;实现垃圾的自动收集,大大简化编程人员的资源释放管理工作。

       3)Java提供丰富的类库和文档以及第三方开发包,还有大量的基于java的开源项目,就连jdk都是开源的。使学习者可以充分的分析源码,提高水平。


  • 面向对象(核心特性):

面向对象可以说是Java最重要的特性。Java语言的设计完全是面向对象的,它不支持类似C语言那样的面向过程的程序设计技术。

面向对象的程序核心是由对象组成的,每个对象包含着对用户公开的特定功能和隐藏的实现部分。程序中的很多对象来自 JDK 标准库,而更多的类需要我们程序员自定义。从理论上讲,只要对象能够实现业务功能,其具体的实现细节不必特别关心。

面向对象有以下特点:

(1)面向对象是一种常见的思想,比较符合人们的思考习惯;

(2)面向对象可以将复杂的业务逻辑简单化,增强代码复用性;

(3)面向对象具有抽象、封装、继承、多态等特性。

面向对象的编程语言主要有:C++、Java、C#等。

类和对象的关系:

类:对某类事物的普遍一致性特征、功能的抽象、描述和封装,是构造对象的模版或蓝图,用 Java 编写的代码都会在某些类的内部。类之间主要有:依赖、聚合、继承等关系。

对象:使用 new 关键字或反射技术创建的某个类的实例。同一个类的所有对象,都具有相似的数据(比如人的年龄、性别)和行为(比如人的吃饭、睡觉),但是每个对象都保存着自己独特的状态,对象状态会随着程序的运行而发生改变,需要注意状态的变化必须通过调用方法来改变,这就是封装的基本原则。


封装思想:

核心思想就是“隐藏细节”、“数据安全”:将对象不需要让外界访问的成员变量和方法私有化,只提供符合开发者意愿的公有方法来访问这些数据和逻辑,保证了数据的安全和程序的稳定。

具体的实现方式就是:使用 private 修饰符把成员变量设置为私有,防止外部程序直接随意调用或修改成员变量,然后对外提供 public 的 set 和 get 方法按照开发者的意愿(可以编写一些业务逻辑代码,虽然很少这样做)设置和获取成员变量的值,也可以把只在本类内部使用的方法使用 private,这就是封装的思想,是面向对象最基本的开发规范之一。

Java 中主要有 private、protected、public 和 默认访问权限 四种:

public 修饰符,具有最大的访问权限,可以访问任何一个在 CLASSPATH 下的类、接口、异常等。

protected 修饰符,主要作用就是用来保护子类,子类可以访问这些成员变量和方法,其余类不可以。

default 修饰符,主要是本包的类可以访问。

private 修饰符,访问权限仅限于本类内部,在实际开发过程中,大多数的成员变量和方法都是使用 private 修饰的。

Java 的访问控制是停留在编译层的,只在编译时进行访问权限检查,不会在类文件中留下痕迹。

通过反射机制,还是可以访问类的私有成员的。

PS:在实际的开发过程中,这样的封装方式已经成了 Java Bean 代码编写的规范。现在主流的框架在使用反射技术为对象赋值、取值时使用的都是 set 和 get 方法,而不是直接操作字段的值。


继承和类实例化过程:

(1)在多个不同的类中抽取出共性的数据和逻辑,对这些共性的内容进行封装一个新的类即父类(也叫做超类或基类),让之前的类来继承这个类,那些共性的内容在子类中就不必重复定义,比如 BaseDAO、BaseAction 等。

(2)Java 的继承机制是单继承,即一个类只能有一个直接父类。

(3)如果子类和父类有同名成员变量和方法,子类可以使用 super 关键字调用父类的成员变量和方法,上述使用方式前提是成员在子类可见。

(4)在调用子类构造方法时,会隐式的调用父类的构造方法 super()。如果父类没有无参构造方法,为了避免编译错误,需要在子类构造方法中显式的调用父类的含参构造方法。

(5)子类创建时调用父类构造方法:子类需要使用父类的成员变量和方法,所以就要调用父类构造方法来初始化,之后再进行子类成员变量和方法的初始化。因此,构造方法是无法覆盖的。

(6)当子类需要扩展父类的某个方法时,可以覆盖父类方法,但是子类方法访问权限必须大于或等于父类权限。

(7)继承提高了程序的复用性、扩展性,也是 Java 语言多态特征的前提。

(8)在实际开发、程序设计过程中,并非先有的父类,而是先有了子类中通用的数据和逻辑,然后再抽取封装出来的父类。

我们简单了解下类的实例化过程:

(1)JVM 读取指定 classpath 路径下的 class 文件,加载到内存,如果有直接父类,也会加载父类;

  (2)堆内存分配空间;

  (3)执行父类、子类静态代码块;

  (4)对象属性进行默认初始化;

  (5)调用构造方法;

  (6)在构造方法中,先调用父类构造方法初始化父类数据;

  (7)初始化父类数据后,显示初始化,执行子类的构造代码块;

  (8)再进行子类构造方法的特定初始化;

  (9)初始化完毕后,将地址赋值给引用


        多态、反射和组件解耦:

多态指允许不同类的对象对同一“消息”做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。可以用于消除类型之间的耦合关系,Spring 的核心就是多态和面向接口编程。

(1)Java 中可以使用父类、接口变量引用子类、实现类对象;

(2)在这个过程中,会对子类、实现类对象做自动类型提升,其特有功能就无法访问了,如果需要使用,可以做强制类型转换。

Java 的反射技术和多态特性是框架开发、组件解耦的核心,在这方面,Spring 的 IOC 和 DI 为我们提供了一个极好的学习范例,Spring 的 IOC 使用反射技术创建、管理对象,DI 使用多态技术为组件注入依赖对象。

在没有学习 Spring 之前,简单的解决方案是使用一个 .properties 文件保存程序中使用的接口、实现类类型键值信息,然后在程序中使用一个全局 Properties 对象保存这些信息,并且使用反射技术把这些实现类初始化、提供一个静态的方法获取指定接口的实现类对象,在组件中就可以使用依赖对象的键获取需要的对象。

这样的方案带来的好处就是:当我们需要修改某个组件的实现方式时,比如把之前 JDBC 的 DAO 实现改为 Hibernate 实现,只要把这些新的实现类放到 classpath 下,把 .properties 文件对应接口的实现类类型改成新的 Hibernate 实现类,而不需要修改依赖组件的代码。


 

  • 高性能:

如果解释器速度不慢,Java可以在运行时直接将目标代码翻译成机器指令。Sun用直接解释器一秒钟内可调用300,000个过程。翻译目标代码的速度与C/C++的性能没什么区别。 


  • 编译性、解释性

  • 健壮性:

Java致力于检查程序在编译和运行时的错误。类型检查帮助检查出许多开发早期出现的错误。

  • 安全性:

Java SE 安全性概述 Java SE。平台基于一个动态、可扩展、基于标准、可互操作的安全架构。加密、身份验证和授权、公共密钥基础架构等安全特性是内置的。Java安全模型基于一个可定制的“沙盒”,Java 软件程序可在其中安全运行,对系统或用户无潜在风险。Java 编译器和虚拟机强制实施的内置的语言安全特性:强大的数据类型,管理自动内存,管理字节码验证,安全的类加载。

  • 跨平台:

什么是跨平台?

通过Java语言编写的应用程序在不同的系统平台上都可以运行。

原理是什么?

只要在需要运行java应用程序的操作系统上,先安装一个Java虚拟机(JVM Java Virtual Machine)即可。由JVM来负责Java程序在该系统中的运行。

因为有了JVM,所以同一个Java程序在三个不同的操作系统中都可以执行。这样就实现了Java程序的跨平台性。也称为Java具有良好的可移植性。

 JVM也是一个软件,在不同的平台有不同的版本。也就是说,只要在不同平台上安装对应的JVM,就可以运行字节码文件,即运行我们编写的Java程序,从而实现了”一次编译,到处运行“的目的。

 


 

 

       

 

 

 

 

 

 

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值