一段代码-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来写可读性可维护性更好,但是回帖意见不一致,我想作者在理论层面没有做出更好的论述,而我今 ...
随机推荐
- 系统剪切板的使用UIPasteboard
最近发现支付宝和淘宝使用吱口令和淘口令的功能,就一直想怎么实现的,觉得应该是使用了系统的剪切板,然后查阅了资料做下笔记! 系统的剪切板主要是使用了UIPasteboard这个类. UIPasteboa ...
- java使用类序列化反序列化(读写文件)
创建类:Role package com.wbg.springRedis.entity; import java.io.Serializable; public class Role implemen ...
- 清除IE8/IE9/IE10/IE11浏览器缓存文件 100%有效
不管你是哪个版本的IE浏览器,按照下面指示操作,都能清除掉你使用浑身解数也清不掉的缓存文件! 第一步,打开IE浏览器——工具——Internet选项 有的IE浏览器的Internet选项藏在右上角一个 ...
- sql server 获取存储过程,表值,标量函数的参数
所有的参数都是存在 sys.parameters 这个表中的,我们可以仿造 sql得到表中的列信息 这篇中的sql语句(提示:我们在表值函数中创建的表,最后我们是返回这个表的,我们可以用这个sql语句 ...
- apache Rewrite配置(转)
1.Rewrite规则简介: Rewirte主要的功能就是实现URL的跳转,它的正则表达式是基于Perl语言.可基于服务器级的(httpd.conf)和目录级的 (.htaccess)两种方式.如果要 ...
- Oracle创建聚簇表
创建聚簇表过程: 创建簇(cluster)----创建簇表(基本类似创建一般表但有区别)----创建簇索引(index)----数据管理 创建簇: create cluster stu_ach(sid ...
- centos7 php7 动态编译mysqlnd: configure: error: Cannot find OpenSSL's <evp.h> 错误解决
开始以为是没有安装openssl, openssl-devel,安装后发现还是提示这个错误,搜索了一下evp.h,这个文件也存在.GOOGLE 了一下,在stackoverflow,找到了答案,原来是 ...
- Ajax的open()方法
Ajax的open()方法有3个参数:1.method:2.url:3.boolean: 参数1有get和post两个取值 参数2表示什么就不用说了 重点说下第3个参数:boolean的取值 当该bo ...
- Java实例 Part1:Java基础输出语句
** Part1:Java基础输出语句 ** 第一部分最基础,就是标准的输出语句. ps:(目前还没熟悉这个编辑器,先尝试一下) Example01 : 输出"hello world&quo ...
- 第4天 Java基础语法
第4天 Java基础语法 今日内容介绍 流程控制语句(switch) 数组 流程控制语句 选择结构switch switch 条件语句也是一种很常用的选择语句,它和if条件语句不同,它只能针对某个表达 ...