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)
上一篇 2022年7月8日 下午11:36
下一篇 2022年7月8日 下午11:36


相关推荐

  • python写学生信息管理系统代码_学生管理系统源码

    python写学生信息管理系统代码_学生管理系统源码一、前言相信很多小伙伴在学校期间都会被要求实现一个学生管理系统,很多是让用C语言实现,有的是要求Python。这里通过python实现了一个学生管理系统,考试/交作业必备!二、实现效果三、完整源码defindex():”””管理系统主页”””print(“*”*30)print(“Python学生管理系统\n\n1.添加学生的信息\n2.删除学生的信息\n3.修改学生的信息\n4.查询学生的信息\n5.查询所有学生的信息\n6.退出系统

    2025年11月27日
    5
  • php 四舍五入到分,PHP四舍五入精确小数位及取整

    php 四舍五入到分,PHP四舍五入精确小数位及取整经常用到取整的函数 今天小小的总结一下 其实很简单 就是几个函数而已 主要是 ceil floor round intval 进一法取整 四舍五入取整 忽略小数等的取整数方法大全 PHP 取整数函数常用的四种方法 下面收集了四个函数 经常用到取整的函数 今天小小的总结一下 其实很简单 就是几个函数而已 主要是 ceil floor round intvalPHP 取整数函数常用的四种方法 下面收集了四

    2026年3月18日
    2
  • css下拉菜单制作原理

    css下拉菜单制作原理css 下拉菜单制作原理详解 2009 06 2414 51css 下拉菜单制作原理这几天一直研究下拉式菜单的 css 制作方法 以前没有仔细研究 感觉很难 看不懂 云雾缭绕的 现在发现用 css 不仅有不错的效果的 而且简单易用 基本原理就是 先把下拉菜单的 ul 隐藏 再设置主链接的鼠标移过状态 navli hoverul nbsp nbsp 让隐藏的下拉菜单显示出来 页面代码 信息资讯博客影音相册

    2026年3月16日
    3
  • 第七届蓝桥杯(软件类)C++决赛A组题解

    第七届蓝桥杯(软件类)C++决赛A组题解文章目录题目链接A组真题题目结构第一题随意组合第二题拼棋盘第三题打靶第四题路径之谜第五题碱基第六题圆圈舞(待补)题目链接A组真题题目结构题目类型第一题随意组合结果填空第二题拼棋盘结果填空第三题打靶代码填空第四题路径之谜程序设计第五题碱基程序设计第六题圆圈舞程序设计第一题随意组合问题重现小明被绑架到X星球的巫师W那里。其时,W正在玩弄两组数据(2358)和(1467

    2022年7月24日
    10
  • vscode新建文件,默认为html[通俗易懂]

    vscode新建文件,默认为html[通俗易懂]虽然还没达到理想目标,不过还是有进步步骤如下图文字版打开vscode–选择文件–首选项–设置到达设置页面文件(14)–找到要复制代码–复制,在加个html效果如下图右下脚由纯文本变为html…

    2022年8月22日
    27
  • PotPlayer使用技巧和常用快捷键

    PotPlayer使用技巧和常用快捷键常用快捷键Alt+K屏幕旋转

    2022年5月21日
    84

发表回复

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

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