JavaEE程序猿面向对象世界观⑥
上一篇文章 《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程序猿面向对象世界观⑥相关推荐
- Java程序猿的JavaScript学习笔记(12——jQuery-扩展选择器)
计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...
- JavaEE程序员必读图书大推荐 .
下面是我根据多年的阅读和实践经验,给您推荐的一些图书: 第一部分: Java语言篇 1 <Java编程规范> 星级: 适合对象:初级,中级 介绍:作者James Gosling(Java之 ...
- 没人比程序猿更讨厌软件
原文作者:Jeff Atwood 几个月前.我们买了一台新的数码相机,为的是更好地记录我们家小宝贝的成长过程.採购的事情由我太太负责. 她小心地打开相机的包装盒,给相机装上电池.然后就開始了首次试拍. ...
- Java程序猿的JavaScript学习笔记(汇总文件夹)
最终完结了,历时半个月. 内容包含: JavaScript面向对象特性分析,JavaScript高手必经之路. jQuery源代码级解析. jQuery EasyUI源代码级解析. Java程序猿的J ...
- python恶搞代码-搞笑的程序猿:看看你是哪种Python程序员
不久前,在互联网上出现了一篇有趣的文章,讲的是对于同一个问题,不同层次的Python程序员编出的Python代码,显示出了不同的风格,代码都很简单,有趣.下面让我们一起来看看一个Python程序猿进阶 ...
- 有一天人人都会变成程序猿
算法+数据结构=程序设计.我上大学的时候流行的说法.后来有一位从企业转行做老师的愤青老师非常激动的告诉我们.算法+数据结构+设计模式=程序设计,他大声喊道,设计模式才是王道,就好像一个智者在告诉我们这 ...
- GEEK学习笔记— —程序猿面试宝典笔记(二)
所谓笔记,就是比較个人的东西,把个人认为有点意思的东西记录下来~~ 程序猿面试宝典笔记(一)基本概念 程序猿面试宝典笔记(二)预处理.const和sizeof 程序猿面试宝典笔记(三)auto_ptr ...
- Java程序猿的JavaScript学习笔记(10—— jQuery-在“类”层面扩展)
计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...
- 大学生如何进化到程序猿
我想,我下面的这个问题,是很多大学生,尤其是那些跟我一样非计算机专业的大学生,一直都困惑着的一个问题:我们应该怎么学习,以进化成一个合格的程序猿! 作为一名电科专业的学生,出于对编程的爱好,大学的这两 ...
- JAVA程序猿面试题汇总
(此话题将不断更新,请留意) 第一,谈谈final, finally, finalize的差别. final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承.finally是异常 ...
最新文章
- Python Qt GUI设计:QDrag拖拽数据传输类(基础篇—18)
- rxjs ThrottleTime 和 debounceTime 的操作符区别
- H3C实验H3CTE讲师京东翰林分享实验4 WLAN基本配置
- Python多进程读写文件操作
- java中date类型如何赋值_Java 中的类型传递问题解惑
- html代码如何查看视频,Web前端
- 2018_09_21_生活记录_参加人工智能大会
- qtp测试 java web_QTP之web常用对象
- trend函数用oracle实现,excel线性回归拟合线Trend函数是这样来使用的
- centos7.4上tecplot 奔溃 用python时
- 105套抖音快闪模板
- 设置图片的透明度从左到右渐变
- 零基础自学新概念英语的方法
- Java 12 / JDK 12 正式发布
- 零输入响应与零状态响应响应
- 图片上传时报403问题
- IDEA中建包的时候如何才能把包分开
- 性能测试领域:你知道的越多,不知道的也就越多
- 网络IO Socket
- 临床诊断行业贝克曼库尔特公司推出新一代全自动血型分析系统
热门文章
- TCP/IP协议之struct sock结构体
- 怎样改计算机密码忘了怎么办,电脑设置的密码忘了怎么办
- Kaldi WFST HCLG.fst 构图 学习
- wordpress themeforest
- BugFree使用指南
- 机器学习之逻辑回归 Logistic Regression(三)scikit-learn算法库
- (SELECT SUBSTRING(AreaCode FROM 0 FOR 5)FROM sysarea) = '810103'
- 高频故障-桌面图标变成白纸图标的恢复方案
- 原生JS实现刮刮乐功能
- 基于STM32F407_温度传感器DS18B20的TFT显示屏实时显示温度