简单解读JAVA入门之作,Hello World!
package com.ghost.t20140430; public class Test1 { public static void main(String[] args) { System.out.println("Hello World!"); } }
上面这段程序称为JAVA源码,也就是供程序员开发的语言。计算机的本质,就是根据给定的输入,通过计算机计算得出计算的结果。计算机只能识别能有物理变化的现象,比如说为了表示“有人”和“无人”这两种现象,我们可以利用已知的物理现象,如电压的正、负来表示,电压为’正‘,则表示’有人‘,电压为’负‘则表示’无人‘,这样就可以建立起一一对应的关系,语言的本质也就是这样,’有人’就是一个符号,代表着一种交流。
十进制整数有无穷多个,二进制整数也有无穷多个,因为他们可以建立起一一对应的关系,所有它们的数量是相等的(为何相等?这看似简单,其实不简单。无穷的集合并不都是相等的。简单的例子,无理数集合和整数集合就不想等...有兴趣可以看看《实变函数》、《集合论》之类的数学书籍)。因为二进制在物理上容易实现,因此计算机命令主要是二进制形式的命令(有兴趣可以读读《数字电子技术基础》、《模拟电子技术基础》)。
....
回归上面的JAVA源码,说到计算机只识别二进制的命令,那么上面的命令如何转化到二进制的呢?对JAVA源码,应该有一套规范,叫做《JAVA语言规范》,只要是规范的东西,那么就应该不会产生歧义,因此上面的代码就应该能转换为无歧义的二进制形式供计算机识别。
由于JAVA要做到跨平台性(不同的操作系统下,如Linux、windows、Mac OS,用JAVA语言开发的程序,都能运行),因此需要Java源码需要转换为一种叫做java字节码的文件。
JAVA的跨平台性,是因为它为不同的操作系统编写了一个软件,叫做java虚拟机(Java virtual machine),就是运行在操作系统上的一个程序,这个程序在操作系统上创造了一个操作系统,即操作系统上的操作系统。在这JVM上就可以运行专为它写的命令——Java 字节码。从Java源码到Java字节码,这涉及到翻译的问题,如何转换?需要苦读《编译原理》。JVM如何知道Java字节码所代表的意思呢?这需要看看《JVM 规范》。一切都需要遵循规范,只有规范的东西才能无歧义地传递出信息。编写Java代码也需要规范,因为,Java代码是给人看的,编程实现功能是首要,但要能让人看得懂(当然得懂点Java编程基础知识),看得顺心,那才有可能成为大师。
Linux、windows、Mac OS等等操作系统是历史发展的产物,如果一开始就只有一种操作系统,那么就没有必要跨什么平台。在发展阶段,只有允许竞争、允许百花齐放,这样才能产生更好的结果。因为一开始大家都在探索,谁也不能肯定谁比别人更好。当发展到一定阶段就应该统一,比较、筛选出更好的结果。现在的浏览器,各种各样,什么ie6、ie8、ie10、ie11、chrome、firefox、safari等等;移动端操作系统Android、IOS、Windows Phone等等;各种计算机语言JAVA、C/C++、Python、Object C等等;各种数据库MySQL、Oracle、SQL Server等等;还有各种等等....还有现实中典型的现象,各种人类语言,English、汉语、粤语、日语等等。
我们要拥抱特色,因为我们是为了追求更好的统一。
...又扯了一些,好像离正题还更远
下次继续探索Hello World!因为离Hello World还很遥远。
相关推荐
北京动力节点-Java编程零基础教程-002-编程基础-基本概念-编译.mp4 北京动力节点-Java编程零基础教程-003-编程基础-基本DOS操作.mp4 北京动力节点-Java编程零基础教程-004-编程基础-在Window中显示文件扩展名.mp4...
002-Java零基础-EditPlus工具的引入.avi
day002 JAVA语法基础-方法.doc
day002 JAVA语法基础-数组加强.doc
day002 JAVA语法基础-数组入门.doc
day002JAVA语法基础-选择结构&循环结构.doc
day002 JAVA语法基础-表达式&类型转换&运算符.doc
**JAVA毕业设计 - JAVA002打飞机游戏设计与实现** 本资源提供了一个基于Java语言开发的打飞机游戏项目,旨在帮助Java学习者掌握基本的图形用户界面编程、事件处理和绘图技术。该项目不仅可作为毕业设计的参考,还可...
从零手写Tomcat【源码】【abl-tomcat-002】【基础完善,接收与处理信息】 文章地址:https://blog.csdn.net/m0_37969197/article/details/123965816 目录地址:...
├─(2) 002-Java夜校视频教程-常用的快捷键.avi ├─(3) 003-Java夜校视频教程-计算机的组成.avi ├─(4) 004-Java夜校视频教程-软件的分类.avi ├─(5) 005-Java夜校视频教程-常见DOS命令.avi ├─(6) 006-Java...
资源名称:Java零基础教程视频_从入门到精通资源目录:【】000_Java零基础视频教程__讲义【】000_Java零基础视频教程__课堂笔记【】001_Java零基础视频教程__安装EditPlus【】002_Java零基础视频教程__计算机概述...
章节1-什么是微服务\千锋java教程:001-构建单体应用模型.mp4章节1-什么是微服务\千锋java教程:002-走向单体地狱.mp4章节1-什么是微服务\千锋java教程:003-微服务解决复杂问题.mp4章节1-什么是微服务\千锋java教程...
JAVA WEB开发深入学习,核心基础 张孝祥老师力作 非常经典,很值得深入学习 强烈推荐
深入体验Java_Web开发内幕-核心基础.zip.001 张孝祥 JAVA经典教程系列
十个最常见的经典Java基础面试、笔试题
CSDN有上传文件大小限制,《Java核心技术 卷I 基础知识 第9版》分成了两个压缩文件上传,分别是: Java核心技术 卷I 基础知识 第9版.zip.001 Java核心技术 卷I 基础知识 第9版.zip.002
动力节点的杜老师讲述的mysql教程,详细讲解了MySQL的相关知识,包括MySQL概述,MySQL应用环境,MySQL系统特性,MySQL初学基础,MySQL管理工具,如何安装MySQL及MySQL新特性,通过观看可掌握MySQL全套知识。
的产品,并在此基础上增加了电商的功能。 功能 内容相关 文章管理 文章分类 文章标签 文章搜索(支持 sql like、Lucene、es、OpenSearch) 用户投稿 页面管理 评论管理 附件管理 电商相关 产品管理 产品分类 产品...
太平洋网络java笔试题SAA-C02 备注 这些是我在 Adrian Cantrill (SAA-C02) 课程中的个人笔记。 学习辅助工具。 可能有错误,所以请购买他的课程以获取原始内容并表示支持 目录 云计算基础 云计算提供 按需自助服务:...