Java基础:对Java的理解

在了解 Java 之前,我们得知道面向对象和面向过程的优劣。

面向过程

优势:类不需要实例化,所以性能要比面向对象高。对性能要求比较高的开发一般都采用面向过程语言,比如单片机、嵌入式开发、Linux/Unix 等。

劣势:没有面向对象易复用、易扩展、易维护。

面向对象

优势:面向对象具有封装、继承和多态的特性。与面向过程相比,更容易复用、扩展和维护。不仅如此,还能设计出低耦合的系统,使系统更加灵活,更容易维护。

劣势:由于类的实例化开销较大,所以,性能比面向过程低。

关于封装、继承和多态

封装

封装是把一个对象的属性私有化,然后为每个属性创建 getter、setter 方法供外界访问。

继承

继承是父子关系,以一个类作为父亲创建新类,新类又叫子类,子类拥有父类中非 private 的属性和方法,也可以拥有自己的属性和方法。通过继承,我们可以非常方便的复用代码。

多态

多态是指在编程时,程序不知道引用变量会指向哪个类的实例对象,更不知道该变量的方法调用是哪个类实现的方法,只有在程序运行时才能确定。

Java 两大特性

Java 本身是面向对象语言,具有面向对象的三大特点(封装、继承、多态),最显著的特性有两个方面,分别是“一次书写,到处运行。”和“垃圾收集“。

“一次书写,到处运行。”(Write once,run anywhere)

Java 通过字节码和 JVM 跨平台的抽象屏蔽了系统和硬件的细节。

  1. JVM 可理解的代码叫字节码(即后缀为 .class 的文件)。字节码不面向任何特定的处理器,只面向 JVM。而 JVM 针对不同系统有特定实现,目的是为了使用相同的字节码,在不同系统运行都会给出相同的结果。

  2. JAVA 通过字节码的方式,在一定程度上解决了传统解释型语言执行效率的问题,同时也保留了解释型代码可移植的特点。因此,Java 具有“一次书写,到处运行”的特点。

“垃圾收集”(Garbage Collection)
  1. 很多人都会拿 C++ 与 Java 相比,在 C++ 中,最令人头疼的就是内存管理问题,而 Java 的显著特点之一就是引入了垃圾回收机制,它会自动回收分配内存,使得 Java 程序员在大部分情况下都不需要操心内存的分配和回收。

Java 运行环境

除了要知道 Java 的特性之外,我们还得知道 Java 的运行环境,JDK 和 JRE。

JRE(Java Runtime Environment)

JRE 是 Java 的运行环境,包含了 JVM 和 Java 类库(核心类库、安全类库、第三方类库等),Java 命令和其他一些基础构建。但它不能用于创建新程序。

JDK(Java Development Kit)

JDK 可看作是 JRE 的一个超集,包含 JRE 的一切,还提供了更多的工具(辅助工具:jlink、jar、jdeps 等,编译器:javac、sjavac 等,诊断工具:jmap、jstack、jconsole等)。能够创建和编译程序。

Java 是编译与解释并存的语言

虽然 Java 是解释机制,但它是编译与解释并存的语言。

Java 代码从编译到运行的机制是:Java 代码经过 Javac 编译成 .class 文件,然后 JVM 类加载器加载 .class 文件,最后通过解释器逐行解释运行。照这么说法,Java 应该是解释执行才对,何来的编译呢?其实,这种方法的执行速度相对较慢,并且有些代码块经常被调用,在时间消耗上占了很大一部分。所以,存在 JIT(Just-In-Time)编译器,把经常运行的代码作为“热点代码”编译成本地平台相关的机器码,并进行各种层次的优化。所以,Java 是编译与解释并存的语言。

JDK 9 引入了新的编译模式 AOT,它预先把字节码编译成机器码。

如果需要了解 JIT 和 AOT,详细请观看JIT(动态编译)和AOT(静态编译)编译技术比较

Java 与 C++ 的区别

据闻,很多时候都会拿 Java 和 C++ 作比较,本人看来,每个语言都有它的特点,得看情况使用。

  1. 它们都是面向对象语言,都支持封装、继承和多态。
  2. Java 没有指针,程序内存更安全。
  3. C++ 支持多重继承,而 Java 只支持单继承,但可以有多个接口。
  4. Java 能自动回收和分配内存,一般情况下,不需要手动释放内存。
  5. C++ 支持本地的无符号数学运算,而 Java 不支持。

以上均为本人学习时的笔录总结,若有不当之处,请多多指教。

weixin073智慧旅游平台开发微信小程序+ssm后端毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
python017基于Python贫困生资助管理系统带vue前后端分离毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
weixin102旅游社交微信小程序+ssm后端毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值