上一篇文章 《JavaEE程序猿的Java世界观》 中,竹迩提出了一个很高大上的名词----JVM;

竹迩说:JVM位于我们所编写的Java语言和计算机之间,充当一个翻译,将Java语言翻译为计算机能够识别的语言;从而,我们能够与计算机进行对话,使用Java语言告诉计算机我们希望它做什么运算;

那在这一次分享中,我们继续深入与计算机的对话过程;

之所以我们编写Java语言,计算机能够认识,仅仅有JVM是不够了;作为另外一个概念----JRE,才是Java语言能够在计算机上运行的关键,也就是完整的运行环境;
 
JVM作为Java语言和计算机之间的翻译,支持计算机识别Java语言并执行;

而Java核心类库就是Java语言中的核心思想面向对象的体现了;

继续从一门语言的角度分析:
 
如上图,JVM将System.out.println("hello");这句话翻译给计算机听;但是System/out/println这些组成这句话的每个单词从哪里来呢?就像英语句子是由单词组成一样,除去语法部分,Java语言也是由很多有含义的词语组成,而这些词语就是Java核心类库所提供的了;并且在Java中,这些有含义的词语叫做--类,它的使用比用单词构成句子构成文章就要复杂得多了;

有了单词才能编写英文文章,有了类才能编写Java语言;从而Java核心API和JVM组成了Java语言得以运行的最基本的环境--JRE;

现在回到类这个话题,也就是回到面向对象这个话题;如何理解面向对象?

竹迩喜欢将Java看成一个像人类世界一样的环境;当Java运行环境安装成功,Java的世界诞生;人类世界有各种各样的人,在Java的世界中,也有各种各样的对象;

而这时候的我们编写Java语言,就像上帝之手一样,我们是作为Java世界的统治者,可以随意的使用Java提供给我们的对象,将它们组合在一起去完成既定的事情;
 
以做饭为例;
 
可以看到,编程者只需抓取对象来完成功能,对象来自于Java世界提供的,后续会涉及编程者自己创建对象,如同上帝的存在;至于如何抓取就会涉及到语法问题了;

这就是竹迩与大家分享的Java面向对象世界观;学习一门编程语言,一定要从思想上建立模型,高屋建瓴的去看下面的细节,才能理解得更透彻;

JavaEE程序猿面向对象世界观⑥相关推荐

  1. Java程序猿的JavaScript学习笔记(12——jQuery-扩展选择器)

    计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...

  2. JavaEE程序员必读图书大推荐 .

    下面是我根据多年的阅读和实践经验,给您推荐的一些图书: 第一部分: Java语言篇 1 <Java编程规范> 星级: 适合对象:初级,中级 介绍:作者James Gosling(Java之 ...

  3. 没人比程序猿更讨厌软件

    原文作者:Jeff Atwood 几个月前.我们买了一台新的数码相机,为的是更好地记录我们家小宝贝的成长过程.採购的事情由我太太负责. 她小心地打开相机的包装盒,给相机装上电池.然后就開始了首次试拍. ...

  4. Java程序猿的JavaScript学习笔记(汇总文件夹)

    最终完结了,历时半个月. 内容包含: JavaScript面向对象特性分析,JavaScript高手必经之路. jQuery源代码级解析. jQuery EasyUI源代码级解析. Java程序猿的J ...

  5. python恶搞代码-搞笑的程序猿:看看你是哪种Python程序员

    不久前,在互联网上出现了一篇有趣的文章,讲的是对于同一个问题,不同层次的Python程序员编出的Python代码,显示出了不同的风格,代码都很简单,有趣.下面让我们一起来看看一个Python程序猿进阶 ...

  6. 有一天人人都会变成程序猿

    算法+数据结构=程序设计.我上大学的时候流行的说法.后来有一位从企业转行做老师的愤青老师非常激动的告诉我们.算法+数据结构+设计模式=程序设计,他大声喊道,设计模式才是王道,就好像一个智者在告诉我们这 ...

  7. GEEK学习笔记— —程序猿面试宝典笔记(二)

    所谓笔记,就是比較个人的东西,把个人认为有点意思的东西记录下来~~ 程序猿面试宝典笔记(一)基本概念 程序猿面试宝典笔记(二)预处理.const和sizeof 程序猿面试宝典笔记(三)auto_ptr ...

  8. Java程序猿的JavaScript学习笔记(10—— jQuery-在“类”层面扩展)

    计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...

  9. 大学生如何进化到程序猿

    我想,我下面的这个问题,是很多大学生,尤其是那些跟我一样非计算机专业的大学生,一直都困惑着的一个问题:我们应该怎么学习,以进化成一个合格的程序猿! 作为一名电科专业的学生,出于对编程的爱好,大学的这两 ...

  10. JAVA程序猿面试题汇总

    (此话题将不断更新,请留意) 第一,谈谈final, finally, finalize的差别. final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承.finally是异常 ...

最新文章

  1. Python Qt GUI设计:QDrag拖拽数据传输类(基础篇—18)
  2. rxjs ThrottleTime 和 debounceTime 的操作符区别
  3. H3C实验H3CTE讲师京东翰林分享实验4 WLAN基本配置
  4. Python多进程读写文件操作
  5. java中date类型如何赋值_Java 中的类型传递问题解惑
  6. html代码如何查看视频,Web前端
  7. 2018_09_21_生活记录_参加人工智能大会
  8. qtp测试 java web_QTP之web常用对象
  9. trend函数用oracle实现,excel线性回归拟合线Trend函数是这样来使用的
  10. centos7.4上tecplot 奔溃 用python时
  11. 105套抖音快闪模板
  12. 设置图片的透明度从左到右渐变
  13. 零基础自学新概念英语的方法
  14. Java 12 / JDK 12 正式发布
  15. 零输入响应与零状态响应响应
  16. 图片上传时报403问题
  17. IDEA中建包的时候如何才能把包分开
  18. 性能测试领域:你知道的越多,不知道的也就越多
  19. 网络IO Socket
  20. 临床诊断行业贝克曼库尔特公司推出新一代全自动血型分析系统

热门文章

  1. TCP/IP协议之struct sock结构体
  2. 怎样改计算机密码忘了怎么办,电脑设置的密码忘了怎么办
  3. Kaldi WFST HCLG.fst 构图 学习
  4. wordpress themeforest
  5. BugFree使用指南
  6. 机器学习之逻辑回归 Logistic Regression(三)scikit-learn算法库
  7. (SELECT SUBSTRING(AreaCode FROM 0 FOR 5)FROM sysarea) = '810103'
  8. 高频故障-桌面图标变成白纸图标的恢复方案
  9. 原生JS实现刮刮乐功能
  10. 基于STM32F407_温度传感器DS18B20的TFT显示屏实时显示温度