Java语言为什么好

1.java语言是面向对象编程,传统的C,C++采用面向过程编程,将一个功能写在一个文件中,当功能复杂时代码的维护和更新比较复杂,而java则是面向对象编程,将世间万物看成对象,将对象的属性(成员变量)和方法(函数)封装在对象中,各种功能通过对象的交互实现

比如:人洗衣服这个动作

在C++中就是,人,调用打开洗衣机的函数,调用放衣服的函数,调用洗衣机放水,洗衣服,甩干的函数(这里可能不太准确,我主修Java)

而在Java中,会将人和洗衣机看做两个对象,人的方法有打开洗衣机,放衣服,而洗衣机的方法有放水,洗衣服,甩干,相等于将一段代码分类成两个对象,结构更加清晰,维护更加简单.

而且面向对象有三大特点

(1)封装,封装有两种,一种是将变量和方法封装在类(javaBean)中,外界无法看到内部的细节,类提供给外界访问内部的接口(在java中也就是private将成员变量设置为私有),外界无法随意改变对象具体的值,提高了代码的安全性.

一种是将算法封装在对象内部,外界无需知道算法内部的细节

(2)继承,继承是指子类能继承父类的所有属性和方法(包括私有属性和私有方法,但是没有权限访问,只能通过调用父类提供的接口比如getter,setter方法访问和修改),这是实现代码复用的基础,我们在实际开发中,会设计一个抽象类,里面定义了专门的抽象方法供子类去重写,其余重复的子类共性代码代码由子类继承,但是,子类最好不要重写父类中非抽象方法.(这样违背了里式替换原则,可能会出现一些意想不到的错误,比如长方形不是正方形,具体可以参考我主页的设计原则文章)

(3)多态,多态是指不同类的对象对同一消息做出相同反映(非常抽象的定义!)

分为:静态多态和运行时多态

静态多态就是重载(方法名相同,参数的顺序,类型,个数有一个不同就算两个方法),实际开发中几乎只有构造方法用到

运行时多态指的是创建对象时父类抽象(抽象类和接口)指向子类对象,在设计方法参数时,可以将父类抽象作为参数,实际传参时可以传入子类对象,方便代码的扩展(具体应用时设计原则的开闭原则,具体可以参考我主页的设计原则文章),所以多态的基础就是继承

(实际开发中,能用依赖关系尽量不要继承,因为继承破坏了代码的封装性,父类的变量和方法可以被暴露给子类,合成复用原则)

2.平台无关性,一次编译,到处运行,Java将源代码编译为字节码文件,字节码文件可以在不同操作系统的不同JVM虚拟机上运行(不同操作系统有不同的C语言编写的不同版本JVM),当然跨平台性如今已不再是java的最大优点,因为c语言等也可以借助Docker容器技术实现代码的跨平台运行

3.垃圾回收机制,传统的C语言需要手动去回收不需要的东西,而Java通过回收算法提供了针对不再被使用的对象的自动垃圾回收机制,大大减少了内存泄漏和溢出的风险,

你可能感兴趣的:(Java八股文,java,开发语言)