学完JVM感觉对java的理解更上了一层楼,也理解了为什么说java是一个纯粹的面向对象的语言,理解如下:

为什么说java是一个纯粹的面向对象的语言?

JVM 在创建对象的时候,实际上会创建两个对象:
一个是实例对象。
另一个是Class 对象。该 Class 对象在JVM内仅仅会装载一次,该类的静态方法和静态属性也一同装载,JVM使用该 Class 对象来创建具体的实例对象(如上面的对象)。
例如,在下面的 Java 语句中,将有两个对象被创建:

Student student = new Student();

一个是实例对象 student ;另一个则是 Class对象,我们可以通过 Student.class 引用到它;这个 Class 对象拥有所有的这个类定义的静态变量和静态方法,同时,如果我们访问通过 student对象来访问静态内容,会发现它其实指向的对象就是 Student.class 。(静态同步方法的锁 是.class对象 也可以来辅助理解!)

其实这也是可以解释基本数据类型也是对象的,我们来看一下官方对于class的解释:

Instances of the class Class represent classes and
interfaces in a running Java application. An enum is a kind of class and
an annotation is a kind of interface. Every array also belongs to a
class that is reflected as a Class object that is shared by all arrays
with the same element type and number of dimensions. The primitive Java
types (boolean, byte, char, short, int, long, float, and double), and
the keyword void are also represented as Class objects.

谷歌译文:
Class类的实例表示正在运行的Java应用程序的类和接口。像枚举是一种类和注解则是一种接口。每个数组也属于被反射作为由具有相同的元素类型和尺寸的数目的所有阵列共享一类对象的类。原始的Java类型(boolean,
byte, char, short, int, long, float, and double)和关键字void也表示为Class对象。

void也是对象?没错,api中就有的 所以说:基本类型是对象,但是不能对象访问语法。

面向过程编程和面向对象编程

首先要明确一点: 面向过程编程和面向对象编程都似乎一种思维方式,是编写代码解决实际问题的一种思想
这两者虽说是都是一种思维方式,但是却有很大的区别。**面向过程更倾向于做一件事情应该如何完成?**然后一步一步实现。而面向对象是,有一件事情需要完成,应该找谁来完成,关注的是做这件事情的对象,不关注实现的过程。这段话理解起来有点难,举个例子。面向对象就好比是公司的老板,面向过程是公司里的员工。有一份工作需要完成,员工关心的是怎么样才能完成,注重的是工作中的过程,同时员工也是工作的执行者。老板只需要把工作交给员工即可,老板不需要关心员工完成工作中的过程,只要结果。这里也可以得出一个结论,面向对象是依托于面向过程的。是员工完成了工作,也就是说老板是靠员工完成的工作。

在生活中,面向对象这种思维方式更符合现实生活中人们的的思维方式。面向对象有个优点:可以将复杂的问题简单化。 比如说,你在淘宝或者京东上买东西,当你下过订单以后,剩下的事情就不需要你操心了,会有客服等人帮你完成。而你只需要等着衣服送上门就好了。换成面向过程的话,那就是当你下过订单以后,需要把数据提交到后台,接下来再和商家确认,你需要去店里取货,然后还得带东西回到家。

为什么说java是一个纯粹的面向对象的语言?面向对象语言和面向对象编程相关推荐

  1. 【实验三/四 面向对象程序设计/语言基础与面向对象】

    目录 一.实验目的和要求 二.实验内容 1.求最大公约数 2.复数 5.编写一个含有5个类的程序 三.参考 四.其他实验内容 [实验三 面向对象程序设计] 3.编写一个含圆类的程序 4.含圆类.圆柱类 ...

  2. python是一门只面向对象的语言吗_Python 面向对象

    Python 面向对象作者:杨梦鸽 校对:翟舒青 Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的.本章节我们将详细介绍Python的面向对象编 ...

  3. python是面向对象的语言_*Python面向对象总结

    在语言数不胜数,虽然任何一门语言都万变不离其宗,但还是有差别的,个人感觉要想学好Python面向对象,首先要多练,毕竟熟能生巧,分享一个学习面向对象小技巧:把生活和学习结合起来,当你看到生活或程序中某 ...

  4. java面向过程编程怎么写_从面向过程到面向对象,我的编程之路

    也许现在新一代的程序员一开始涉足的就是c++,C#,Java这类面向对象的语言,如果这样,这篇文章可能得不到他们的认同. 这里,我只想写写我从面向过程到面向对象开发成长中的一些感想而已. 我最初学习的 ...

  5. 编写一个分奇偶的c语言程序,程序设计入门——C语言 第3周编程练习 1 奇偶个数(5分)...

    1 题目内容: 你的程序要读入一系列正整数数据,输入-1表示输入结束,-1本身不是输入的数据.程序输出读到的数据中的奇数和偶数的个数. 输入格式: 一系列正整数,整数的范围是(0,100000).如果 ...

  6. java编写计算类加减乘除_老师要求张浩使用面向对象的思想编写一个计算器类(Calculator),可以实现两个整数的加减乘除的运算.java...

    导航:网站首页 > 老师要求张浩使用面向对象的思想编写一个计算器类(Calculator),可以实现两个整数的加减乘除的运算.java 时间:2019-4-10 老师要求张浩使用面向对象的思想编 ...

  7. java类名可以是数字吗_在 Java 中,一个类可同时定义许多同名的方法,这些方法的形式参数的个数、类型或顺序各不相同,传回的值也可以不相同。这种面向对象程序特性称为( )。_学小易找答案...

    [简答题]Java 支持多继承吗 ? [单选题]以下关于继承的叙述正确的是( ). [单选题]在 Java 中,一个类可同时定义许多同名的方法,这些方法的形式参数的个数.类型或顺序各不相同,传回的值也 ...

  8. JAVA鸡汤------一个牛人给java初学者的建议

    给初学者之一:浅谈java及应用 学java不知不觉也已经三年了 从不知java为何物到现在一个小小的j2ee项目经理 虽说不上此道高手,大概也算有点斤两了吧 每次上网,泡bbs逛论坛,没少去java ...

  9. java设计一个bank类实现银行_java定义一个类实现银行账户的概念。

    2016-11-17 13:40黄瞩信 客户经理 比如,只定义了一个抽象方法run(),而要通过系统用极短的时间.这5s内,此后这个线程就不能进入其它状态,进入消亡状态;+i++). 2,另一方面;, ...

  10. 什么是java一句话一个例子_一句话讲清楚什么是JavaEE

    软件151 王强 1531610136 Java技术不仅是一门编程语言而且是一个平台.同时Java语言是一门有着特定语法和风格的高级的面向对象的语言,Java平台是Java语言编写的特定应用程序运行的 ...

最新文章

  1. 大数据之路- Hadoop环境搭建(Linux)
  2. 【空间数据库】ArcSDE 10.7+SQLEXPRESS+ArcServer 10.7.ecp企业级数据库环境搭建
  3. BZOJ1977 [BJOI2010]次小生成树
  4. 尴尬!Google搜索现在也会“千人千面”了,退出登录也一样
  5. SVN ---文件加锁,执行clean up命令
  6. android webview缩放功能,在Android WebView中启用/禁用缩放
  7. 数据库之SQL(该列没有包含在聚合函数或 GROUP BY 子句中)
  8. 181009词霸有道扇贝每日一句
  9. 写一个含数字,拼音,汉字的验证码生成类
  10. caffee学习中文指南(1)(1)
  11. 如何清空c盘只剩系统_c盘怎么清理到最干净只保留系统,教你如何给C盘减肥
  12. Java SE 八大基本类型
  13. vcard微信电子名片
  14. 切西瓜:把一个西瓜切9刀
  15. 做教育怎么引流?教育行业怎么引流?培训机构引流如何转化?
  16. Excel Vba快速界面设计入门
  17. 知乎创意总监、Dine 设计团队创始人 @disinfeqt :设计、音乐
  18. ailoop2里面的1个待考察的,在ailoop3里面的操作。(先使用海巨人,不使用英雄技能召唤图腾的问题)...
  19. 计算机excel 的分栏在哪,excel分栏在哪里
  20. 响应式织梦模板玩具动漫类网站

热门文章

  1. Pycharm安装第三方包报错怎么办
  2. mysql 分离和附加数据库_分离数据库和附加数据库有什么区别
  3. 生命在于学习——业务逻辑漏洞
  4. jzoj 3957 鸡腿の花园
  5. matlab画韦恩图,R语言画维恩图
  6. 学并发编程,透彻理解这三个核心是关键
  7. 基于facades数据集的图像成任务,完成各种GAN的对比实验
  8. OpenCV 调用手机摄像头
  9. [rust学习笔记]错误处理
  10. A Game of Thrones(105)