一段代码-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来写可读性可维护性更好,但是回帖意见不一致,我想作者在理论层面没有做出更好的论述,而我今 ...
随机推荐
- EF Core中怎么实现自动更新实体的属性值到数据库
我们在开发系统的时候,经常会遇到这种需求数据库表中的行被更新时需要自动更新某些列. 数据库 比如下面的Person表有一列UpdateTime,这列数据要求在行被更新后自动更新为系统的当前时间. Pe ...
- Vue.js与 ASP.NET Core 服务端渲染功能整合
http://mgyongyosi.com/2016/Vuejs-server-side-rendering-with-aspnet-core/ 原作者:Mihály Gyöngyösi 译者:oop ...
- springboot-redis缓存
Redis缓存使用 1. 引入依赖(可能已经引入了):spring-boot-starter-cache 2. 在application.yml配置文件中配置spring:redis:host/p ...
- linux系统基础之-----磁盘结构(基于centos7.4 1708)
- 坑爹的jquery ui datepicker
1.坑爹的jquery ui datepicker 竟然不支持选取时分秒,害的我Format半天 期间尝试了bootstrap的ditepicker,但是不起作用,发现被jquery ui 覆盖了, ...
- 02-HTTP的请求方法以及响应状态码
1. HTTP的请求方法以及响应状态码 1.1. 请求方法 http请求方法有GET.POST.PUT.HEAD.DELETE.OPTIONS.TRACE.CONNECT.当然上述方法是基于HTT ...
- CentOS7 搭建GIT环境
一. 安装 libiconv 这个是非常规项 如果服务器原来已经装过 可以不装 但是如果git安装时候提示找不到libiconv 需要在git的安装参数中指定安装路径 最新版是 1.15 wget h ...
- 关于一个flask的服务接口实战(flask-migrate,flask-script,SQLAlchemy)
前言 最近接到一个接收前端请求的需求,需要使用python编写,之前没有写过python,很多技术没有用过,在这里做一个学习记录,如有错误,请不了赐教. Flask Api文档管理 使用Falsk A ...
- python教程(二)·数据类型
数据类型,顾名思义就是数据的类型,数据到底有哪些类型呢?在python中,最基本的数据类型有好几种,让我来逐个介绍. 整数类型(int) python中只有一种整数类型,就是int类型,在程序中的写法 ...
- C语言实验报告(四)完全数
完全数,又称完美数或者完备数.是一些特殊的自然数.它所有的真因子的和,恰好等于它本身.编程找出1000以内的所有完全数,并输出该数成为完全数的因子. (例如6=1+2+3.按照6,its factor ...