一段代码-Java
在打算写这么一篇文章的时候,想到很多,觉得要是全都写下来的话,估计BZ也不知道要写多少,总之,好多吧!那么,就让BZ一切从简...
我们知道java它的特殊性在于,用它所写代码的运行是依靠自己的一套jvm规则,通过java自己的编译器将之编译成字节码文件,而后,通过已经实现jvm规则的容器,也就是jvm虚拟机将class(字节码)文件加载.
这时候,在它的jvm内部,会将加载进来的class文件进一步链接执行. jvm内部是有它自己的一套汇编指令集的,通过自己的这套汇编指令集来与class文件进行匹配,从而最终还是变成机器码交由物理操作系统的cpu来处理,在这过程中,它的执行当然也是会依赖操作系统的,像windows操作系统等,都有自己的函数库,封装了很多函数,来供第三方软件调用.当然,这些东西在创造这门语言的时候,就已经被语言的创造者考虑好了,对于这些,<<编译原理>>这本书中讲的也是比较清晰,BZ自认为对这方面的理解很菜,就不说叨了!
就这样,一段0和1跑起来了!
现在,我们再在上面的东西中,加一些内容:
其实,在BZ个人来说,我觉得程序的本质存在就是处理数据,当然可能有人会说,应该是0和1,或者有人会说高低电平等等,我们姑且就不扯这些吧!
我们知道,在cup的指令执行中,内存中一段数据,cpu并不知道它是我们实际的data(数据),还是应该执行的指令,只要是cpu它自己的指令指针所指的内容,它在读取以后,都会当成指令来执行,简直就是长枪所指,所向披靡!聊完这个,我们再来聊聊内存,我们知道,在电脑内存不够的情况下,需要给电脑开拓一下疆土,这就需要我们根据具体配置情况,给它加入新的内存条了,这些,真正归结为的是物理上的说法.我们一般会将所有的硬件区域的内存(显示器有它自己的GPU,也有它自己的内存....)都串联起来成一条逻辑内存区,在这个区域中,有一部分地址是属于显示器的,如果将数据写到这部分内存地址中,就会在电脑屏幕上显示出来,当然,这些也都涉及到一些其他的技术,像是电子方面,像素,三原色,以及GPU内嵌的核心算法等,这些BZ也不懂,就这样,我们整个的程序,也就是将数据搬来搬去,各种运算,然后显示出来,这也就是BZ所说的程序本质就是处理数据!
BZ写到这里,也就停手了!因为这里面涉及到的每一个关键词,我觉得,都可以出好几本书了,所以BZ也就适可而止,把要表达的认知和思想表现出来就可以了!
此仅是BZ个人编程至今,所学至今的认知和看法!
最后,编程的人生需要分享!
一段代码-Java的更多相关文章
- 收藏的一段关于java大数运算的代码
收藏的一段关于java大数运算的代码: package study_02.number; import java.math.BigDecimal; import java.math.BigIntege ...
- java中 synchronized 的使用,确保异步执行某一段代码。
最近看了个有关访问网络url和下载的例子,里面有几个synchronized的地方,系统学习下,以下内容很重要,记下来. Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一 ...
- 一段代码看 Java 引用类型
Java 中的操作数(不知道叫什么,相对于 bytecode 而言,类似 CPU 的操作码和操作数)分为值类型和引用类型: 值类型就是直接存储最终数值的,如 char, int, float, dou ...
- [改善Java代码]Java的泛型是类型擦除的
泛型可以减少强制类型的转换,可规范集合的元素类型,还可以提高代码的安全性和可读性,正是因为有了这些优点,自从Java引入泛型之后,项目的编码规则上便多了一条,优先使用泛型. Java泛型(Generi ...
- 一段网上java常见escape和unescape方法的BUG
escape编码和unescape编码,就是将一个字符转换为16进制unicode编码,前面加%字符进行标识. 此处不再多做解释,参考这里:http://www.jb51.net/article/23 ...
- 记录这段时间java编程的小知识点
记录这段时间java编程的小知识点 eclipse项目导入中文乱码 eclipse左侧目录结构变动 eclipse代码段左右移动 按tal键,是整体右移. 按shift table 同时按,是整体左 ...
- springboot项目启动成功后执行一段代码的两种方式
springboot项目启动成功后执行一段代码的两种方式 实现ApplicationRunner接口 package com.lnjecit.lifecycle; import org.springf ...
- 正则表达式(代码java版)
目录 元字符 检测工具 普通字符 字符类 预定义字符类 数量词 默认数量词 自定义量词 预定义量词 边界标识符 正则组 简单应用 复杂组序 捕获组 看了好些天的正则表达式,终于有时间来写一篇关于它的博 ...
- 评《撸一段 SQL ? 还是撸一段代码? 》
最近看到一篇博客<撸一段 SQL ? 还是撸一段代码?>,文章举例说明了一个连表查询使用程序code来写可读性可维护性更好,但是回帖意见不一致,我想作者在理论层面没有做出更好的论述,而我今 ...
随机推荐
- Java中Class类及用法
Java中Class类及用法 Java程序在运行时,Java运行时系统一直对所有的对象进行所谓的运行时类型标识,即所谓的RTTI.这项信息纪录了每个对象所属的类.虚拟机通常使用运行时类型信息选准正确方 ...
- 论文笔记 | A Closer Look at Spatiotemporal Convolutions for Action Recognition
( 这篇博文为原创,如需转载本文请email我: leizhao.mail@qq.com, 并注明来源链接,THX!) 本文主要分享了一篇来自CVPR 2018的论文,A Closer Look at ...
- OS--lab0+lab1+lab4+lab5+lab6+lab7
URL:https://github.com/Chasssser/MytestOR(Linux) git clone https://github.com/Chasssser/Mytest
- Xdebug 备注
安装步骤: 查看自己的环境是否已安装 Xdebug ,查看方法:使用phpinfo(),搜索 Xdebug 如果没有 如图: 如果没有:下一步确定你的PHP版本信息: Xdebug下载地址 https ...
- Linux下Git远程仓库的使用详解
Git远程仓库Github 提示:Github网站作为远程代码仓库时的操作和本地代码仓库一样的,只是仓库位置不同而已! 准备Git源代码仓库 https://github.com/ 准备经理的文件 D ...
- Redis支持的五种数据类型
redis支持的五种数据类型: 1.string(字符串) 2.hash(哈希) Redis hash 是一个键值(key=>value)对集合. Redis hash是一个string类型的f ...
- linux系统可执行文件添加环境变量使其跨终端和目录执行
在命令行终端输入:echo $PATH 回车可打印出PATH变量对应的路径 现有一可执行文件qtFirstC,文件所在目录为:/home/lolors/qtFirstC 此时test只能在此目录下运行 ...
- echarts 点击方法总结,点任意一点获取点击数据,举例说明:在多图联动中点击绘制标线
关于点击(包括左击,双击,右击等)echarts图形任意一点,获取相关的图形数据,尤其是多图,我想部分人遇到这个问题一直很头大.下面我用举例说明,如何在多图联动基础上,我们点击任意一个图上任意一点,在 ...
- DataSet转换为泛型集合和DataRow 转成 模型类
public static class TransformToList { /// <summary> /// DataSet转换为泛型集合 /// </summary> // ...
- CI框架视图继承
CI(CodeIgniter)框架 视图继承 这个代码不是我撸的 ... 当时在哪儿找的忘了 ... 如果有侵权什么的 ... 联系我删了 ... 需要去core里面创建一个MY_loader.php ...