Java基础知识回顾,还记得吗?
文章插图
面向对象与面向过程的区别首先面向过程和面向对象的语言没有具体的性能高下之分 , 要依据每种语言的设计来做参考 。 个人认为面向过程和面向对象的最大区别在于:面向过程的语言是结构化的 , 面向对象的语言是模块化的 。 模块化的代码比结构化的代码更易于维护 , 复用与扩展 。
OracleJDK与OpenJDK的区别OpenJDK是基于Sun捐赠的HotSpot的源代码开发的 , 是开源的 。 OracleJDK是Oracle对JDK商业化版本 , 由Oracle发布并维护 , 因此OracleJDK比OpenJDK更可靠 。
Java与C++的异同
- Java和C++都是基于面向对象的语言 。
- Java不提供指针来访问内存 , C++运行指针访问内存 。
- 垃圾回收机制 。 Java无需开发者手动释放内存 , 因为Java由垃圾回收机制自动回收内存;C++则需要开发者手动释放内存 。 因此Java在内存管理上相对C++更安全 。
- Java不支持多继承 , 而C++支持 。
- JVM:(java virtual machine)是java虚拟机
- JRE:(java runtime environment)是java运行时环境
- JDK:(java development kit)是java开发工具包 , 不仅包含来jre和jvm , 还提供来javac编译器和javadoc等其他开发所需工具
- 面向对象
- 平台无关性 , 也就是跨平台(依靠JVM)
- 垃圾回收机制(GC)
- 支持多线程
- 支持便捷的网络编程
- 编译和解释(JIT)
- 安全
- 封装:封装是隐藏对象属性和实现细节 , 只对外提供可访问或修改的接口的技术 。 封装的目的是为了简化编程和增加程序的安全性 , 使得使用者无需了解对象的具体实现细节 。
- 继承:继承是在已存在的类上定义新的类的技术 。 在Java中 , 已存在的类被成为基类(父类) , 新的类叫派生类(子类) 。 子类拥有父类所有属性、方法 。 但是子类对父类中私有的方法或属性并不拥有 , 并不能访问和使用 。 继承的目的主要是为零代码的复用 。
- 多态:多态指的是相同类型的对象 , 调用其相同的方法 , 参数也相同 , 但是它的表现形式也就是结果不同 。 多态的目的是为了程序的可扩展性和维护性 。 在java中可以使用继承和接口2大特性实现多态 。
- 重载:重载是描述一个类中有多个方法名相同的方法 , 但是它们的参数、类型、返回值、参数顺序可能不同 , 表现形式也就不同 。
- 重写:重写是描述子类对父类的某个方法的逻辑进行重新编写 , 但重写的只是方法的内容 , 方法名、参数、类型、顺序、返回值都不变的 。
- 接口需要被实现 , 而抽象类是需要被继承的 。
- 接口里的方法都是公共抽象的 , 而抽象类几允许抽象也允许非抽象的方法(在JDK8中 , 接口被允许定义defalut方法 , JDK9中还允许定义private私有方法) 。
- 一个类允许实现多个接口 , 但只允许继承一个抽象父类 。
- 接口是对类的规范 , 规范的是行为能力 。 而抽象类是对类的抽象 , 抽象的是逻辑 。
- getClass
- equals
- hashCode
- toString
- wait
- wait(long):让当前对象进入TIMED_WATING状态
- wait(long,int):让当前对象进入TIMED_WATING状态
- notify
- notifyAll
- clone
- finalize
- 收藏!影响未来的重要科技发展趋势都在这里了
- 从运维岗转向开发岗,该选择学习Java还是Python
- 初学计算机通过什么项目能把Java、操作系统等知识串起来
- 当前学习大数据是否都需要学习Java
- 计算机专业大一下学期,该选择学习Java还是Python
- 未来想进入AI领域,该学习Python还是Java大数据开发
- 再见了 虾米!两分钟回顾虾米音乐发展史
- 学习大数据是否需要学习JavaEE
- 从事Java开发时发现基础差,是否应该选择辞职自学一段时间
- 2021年Java和Python的应用趋势会有什么变化?