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学习笔记整理

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • elastic search数据库集群部署「建议收藏」

    elastic search数据库集群部署「建议收藏」ES数据库安装elasticasearchelasticsearch的概念:是一个实时的分布式搜索和分析引擎,它可以用于全文搜索,结构化搜索以及分析。它是一个建立在全文搜索引擎ApacheLucene基础上的搜索引擎,使用Java语言编写。1、elasticsearch和MongoDB/redis/memcache一样,是非关系性数据库是一个接近实时的搜索平台,从所索引这个文档到能够被搜索到只有一个轻微的延迟,企业应用定位:采用restfullapi标准的可扩展和高可用的实时数据分析

    2022年6月9日
    43
  • mysql成绩用什么类型_数据库里面的数据类型都有哪些

    mysql成绩用什么类型_数据库里面的数据类型都有哪些1、整型取值范围如果加了unsigned,则最大值翻倍,如tinyintunsigned的取值范围为(0~256)。int(m)里的m是表示SELECT查询结果集中的显示宽度,并不影响实际的取值范围,没有影响到显示的宽度,不知道这个m有什么用。2、浮点型(float和double)设一个字段定义为float(5,3),如果插入一个数123.45678,实际数据库里存的是123.457,但总个数还…

    2022年9月15日
    2
  • Laravel / PHP 扩展包视频教程

    Laravel / PHP 扩展包视频教程

    2021年10月26日
    51
  • lib文件和dll文件的区别_dll2lib

    lib文件和dll文件的区别_dll2lib一.简介1.1C++两种库文件lib包含了函数所在的dll文件和文件中函数位置的信息(入口),代码由运行时加载在进程空间中的dll提供,称为动态链接库dynamiclinklibrary。

    2022年8月4日
    6
  • Ubuntu 优化、美化(主题、终端)[通俗易懂]

    Ubuntu 优化、美化(主题、终端)[通俗易懂]Ubuntu优化、美化(主题、终端)零效果图一优化Ubuntu\1系统更新\2安装GDebi(第三方软件安装)\3安装搜狗输入法\4软件卸载,安装4.1卸载libreOffice安装WPS4.2卸载掉亚马逊链接4.3卸载firebox浏览器安装Chrome/Chromium浏览器\5修改更新源\6vim配置\6菜单栏位置\7二美化Ubuntu\1主题1.1安装unity-tweak-tool:1.2Flatabulous主题\

    2022年7月22日
    17
  • vue项目部署后刷新404_vue重载当前页面

    vue项目部署后刷新404_vue重载当前页面vue页面访问正常,但是一刷新就会404的问题解决办法:第一种解决方法:将vue路由模式mode:’history’修改为mode:’hash’//router.js文件constrouter=newRouter({//mode:’history’,mode:’hash’,routes:[{path:’/’,redirect:’/login’},{path:’/login’,compon

    2022年10月10日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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