Java葵花宝典(一)

Java葵花宝典(一)1.面向对象和面向过程的区别面向过程:是以事件为中心,按照我们编写的代码,根据完成步骤的过程来执行的优点:面向过程性能比面向对象高。因为类调用时需要实例化,开销比较大,比较消耗资源,所以当性能是最重要考量的因素的时候,比如单片机开发,嵌入式开发,Linux一般采用面向过程开发缺点:没有面向对象易维护、易复用、易扩展面向对象:将事物高度抽象化,我们把要完成的功能高度抽象成一个个对象,调用对象的方法或者属性来完成所需功能优点:易维护、易复用、易扩展。因为面向对象有封装、继承、多态的特性,所以可以设计

大家好,又见面了,我是你们的朋友全栈君。

1.面向对象和面向过程的区别

面向过程:是以事件为中心,按照我们编写的代码,根据完成步骤的过程来执行的

优点:面向过程性能比面向对象高。因为类调用时需要实例化,开销比较大,比较消耗资源,所以当性能是最重要考量的因素的时候,比如单片机开发,嵌入式开发,Linux一般采用面向过程开发
缺点:没有面向对象易维护、易复用、易扩展

面向对象:将事物高度抽象化,我们把要完成的功能高度抽象成一个个对象,调用对象的方法或者属性来完成所需功能

优点:易维护、易复用、易扩展 。因为面向对象有封装、继承、多态的特性,所以可以设计出低耦合的系统,使系统更加灵活、更加易于维护
缺点:面向对象的性能没有面向过程高

2.JVM JDK和JRE通俗解答

JVM:JVM(虚拟机)是运行Java字节码的虚拟机,JVM有争对不同系统的特定实现(Windows,Linux,macOS),目的是使用相同的字节码,它们都会出现相同的结果。
什么是字节码?采用字节码的好处是什么?
Java中字节码就是JVM可以理解的代码(即扩展名是.class)的文件,他不面向任何特定的处理器,只面向虚拟机。Java语言采用虚拟机在一定程度上解决了传统解释型语言执行效率低的问题,同时又保留了解释性语言可以移植的特点。因此Java程序运行时比较高效,而且字节码运行时并不针对一种特定的机器,所以Java程序不需要重新编译便可以在不同操作系统的计算机上运行。

Java程序从源代码到运行一般有3步
在这里插入图片描述
我们需要格外注意.class——>机器码这一步。在这一步JVM类加载器首次加载字节码文件,然后通过解释器逐行解释执行,这种执行方式速度相对来说较慢,而且有些方法和代码块会被重复调用,所以后面引进了JIT编译器,而JIT属于运行时编译。当JIT完成第一次编译后,会将字节码对应的机器码保存下来,下次可以直接使用。而且我们知道,机器码的运行效率肯定是高于Java编译器的,这也就是我们为什么会说Java是编译与解释共存的语言。

总结: Java虚拟机(JVM)是运行Java字节码的虚拟机,虚拟机有针对不同操作用户的实现,目的是当使用相同字节码时,他们都会出现相同的结果。字节码和不同系统的JVM实现是Java语言的一次编译,随处可以运行的关键所在。

JDK和JRE

JDK全称(Java Development Kit),它是功能齐全的Java SDK。它拥有JRE所拥有的一切,还有编译器(javac)和工具(如javadoc和jdb),它可以创建和编译程序。

JRE是Java运行时的环境,它运行已编译Java程序所需要的全部内容集合,包括Java虚拟机,Java类库,Java命令和其他基础构件。但是它不能用于创建新程序。

如果你只是为了运行一下Java程序的话,那么你只需要安装JRE就可以了。如果你需要从事Java编程方面的工作,你就需要安装JDK了。但是呢,这也不是绝对的,有时候,即使您不但算在计算机上进行任何Java开发,仍然需要安装JDK。例如:如果您使用Jsp部署Web应用程序,那么从技术上讲,您只是在应用程序服务器上运行Java程序,那您为什么需要JDK呢?因为应用程序服务器会讲Jsp转换成Java Servlet,并且需要使用JDK来编译servlet。

3.Java和C++的区别

都是面向对象语言,都支持封装、继承、多态
Java不提供指针来直接访问内存,程序内存使用更加安全
Java的类是单继承的,C++支持多重继承,虽然Java的类不支持多重继承,但是Java的接口支持多重继承
Java有自动内存管理机制,不需要程序员手动释放无用内存
在C语言中,字符串和字符数组最后都会有一个额外字符’\0’来表示结束,但是Java中没有结束字符这一概念
备注:葵花宝典系列为Java学习笔记整理

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/156726.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 最受欢迎的8个Python框架,满足你的各类需求「建议收藏」

    最受欢迎的8个Python框架,满足你的各类需求「建议收藏」今天给大家分享几个最受欢迎的Python框架。这些框架包括Web开发,高性能网络通信,测试,爬虫等等,如果你正在学习Python,那么应该可以满足你。1DjangoDjango应该是最出名的Python框架,是一款在数据库功能、后台功能、模板系统、网址匹配、缓存系统等方面有“先天”优势的开源框架。它可以通过几行简单的代码就让你的网站拥有一个强大的后台,轻松管理你的内容;强大,易扩展的模板系统,设计简易,代码,样式分开设计,更容易管理。小编整理的一整套系统的p-ython学习教程从最基础的

  • influxDb_ef mongodb

    influxDb_ef mongodbInfluxDB(时序数据库)(influx,流入,涌入),常用的一种使用场景:监控数据统计。每毫秒记录一下电脑内存的使用情况,然后就可以根据统计的数据,利用图形化界面(InfluxDBV1一般配合Grafana)制作内存使用情况的折线图;可以理解为按时间记录一些数据(常用的监控数据、埋点统计数据等),然后制作图表做统计;1、什么是InfluxDBInfluxDB是一个由InfluxDa…

    2022年10月24日
  • 104规约 scada

    104规约 scada104规约的报文帧分为三类:I帧、S帧和U帧。I帧称为信息帧,长度一定大于6个字节,被称作长帧,用于传输数据;S帧称为确认帧,长度只有6个字节,被称作短帧,用于确认接收的I帧;U帧称为控制帧,长度只有6个字节,也被称作短帧,用于控制启动/停止/测试。长帧报文分为APCI和ASDU两个部分,而短帧报文只有APCI部分。APCI的6个字节是这样构成的:起动字符68H,1个字节;后面的报文长

  • 每天一道算法_7_Biorhythms

    DescriptionSome people believe that there are three cycles in a person’s life that start the day he or she is born. These three cycles are the physical, emotional, and intellectual cycles, and they

  • 【Verilog】移位寄存器总结:移位寄存器、算数移位寄存器、线性反馈移位寄存器(LFSR)

    【Verilog】移位寄存器总结:移位寄存器、算数移位寄存器、线性反馈移位寄存器(LFSR)在练习HDLbits的时候,最常见的几种移位寄存器进行了总结,供大家参考,希望可以帮助到大家。

  • Springboot引入本地jar包,并通过maven把项目成功打包成jar包部署[通俗易懂]

    Springboot引入本地jar包,并通过maven把项目成功打包成jar包部署[通俗易懂]引入钉钉的sdk打包到线上,各种报错:ClassNofFoundException…第一步:将jar包放到resource的lib文件夹下:第二部:在pom文件中引入:第三部:继续修改pom文件的打包插件配置:<includeSystemScope>true</includeSystemScope>打包时候IDEA还是会报警告,不用管它;…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号