#深入理解jvm

对Bootloader(引导加载程序)的几点理解

1、在加电复位之后,大多数处理器都会从一个默认的地址处获取代码。比如MIPS结构的CPU会从0xBFC00000处取第一条指令,而ARM结构的CPU则从地址0x00000000处取第一条指令。因此,在嵌入式开发板中,需要把存储器件ROM或Flash等映射到这个默认的地址处,Bootloader就存放在这个地址开始处,这...

对IIC总线时序的一点理解以及ACK和NACK(NAK)

参考自:http://blog.chinaunix.net/uid-16100003-id-3059814.html关于IIC的响应问题:对于每一个接收设备(从设备,slaver),当它被寻址后,都要求在接收到每一个字节后产生一个响应。因此,themasterdevice必须产生一个额外的时钟脉冲(第九个脉冲)用以和这...

UART,SPI,IIC的一点理解

转自:http://bbs.21ic.com/icview-253715-1-1.htmlUART通用异步收发器,UART是通用的异步传输模式,在它这种基础上加上其他接口或者解码器就衍生出多种异步传输模式,比如232,485,红外线等。这就好像脚上穿高跟鞋,跑鞋,皮鞋等,虽然走路方式不一样,但是其原理都是脚在向前走。自...
代码星球 ·2021-02-21

关于ARM立即数的理解

转自:http://blog.sina.com.cn/s/blog_9bad4f090101e14d.html一、立即数指令码的组成ARM公司将32bit指令码分为如下两部分:32bit立即数通过Imm8值循环右移ROR值*2bit得到。即:shifter_operand=immed_8Rotate_Right(rot...
代码星球 ·2021-02-21

字对齐、半字对齐、字节对齐的理解

一般情况下字为32位(4字节)、半字为16位(2字节)、字节为8位(1字节)。大多数计算机使用字节(8位的数据块)作为最小可寻址的存储器单位,而不是访问存储器中单独的位。存储器的每一个字节都由唯一的数字标识,称为该字节的地址,所有可能地址的集合称为存储器空间。举例来说,ARM处理器工作状态有如下两种:ARM状态:执行字...
代码星球 ·2021-02-21

C++编程对缓冲区的理解

本文转自:http://www.vckbase.com/index.php/wv/1592什么是缓冲区缓冲区又称为缓存,它是内存空间的一部分。也就是说,在内存空间中预留了一定的存储空间,这些存储空间用来缓冲输入或输出的数据,这部分预留的空间就叫做缓冲区。缓冲区根据其对应的是输入设备还是输出设备,分为输入缓冲区和输出缓冲...
代码星球 ·2021-02-21

理解volatile

在大多数情况下,把变量缓存在寄存器中是一个非常有价值的优化方法,如果不用的话很可惜。C++编译器提供了显式禁用这种缓存优化的机会。如果你声明变量是使用了volatile修饰符,编译器就不会把这个变量缓存在寄存器里——每次访问都将去存取变量在内存中的实际位置。防止了C++编译器对所修饰的变量进行优化。主要应用于多线程编程...
代码星球 ·2021-02-21

理解C语言声明的优先级规则

A声明从它的名字开始读取,然后按照优先级顺序依次读取。B优先级从高到低依次是:  B.1声明中被括号括起来的那部分  B.2后缀操作符:       括号()表示这是一个函数,而  &nbs...

java基础学习中理解的问题-输入输出流,a++,++a

学习时有些东西不能很好理解,网上查资料等进行消化,大致如下,欢迎补充,共同进步:一、输入输出流理解理解输入输出流必须理解内存、磁盘、终端(屏幕/键盘)、网络之间的关系程序操作的数据都应该是在内存里面,内存是你操作的主对象,把数据从其他资源里面传送到内存里面,就是输入,反之,把数据从内存传送到其他资源,就是输出。读文件B...

Gradle里面的依赖implementation和api的区别理解

Gradle新版本里面依赖的写法支持implementation和api,下面简单解释两者的区别:  implementation表示依赖,即只依赖不打包进来。  api表示打包,即不仅依赖还打包进来,这样上层就不用重复依赖。  注意:这里的打包是便于理解,是指打包依赖关系而不是打包源代码,也就是说将依赖暴露给上层。 ...

kotlin基础语法的理解

1.companionobject  //相当于java的publicstatic2.当一个类或者接口只有一个抽象方法时,Lambda表达式可以使用随尾闭包。3.修改kotlin编译器版本:打开setting->othersetting—>KotlinCompiler->kotlintoJVM。4.主...
代码星球 ·2021-02-20

kotlin里面的out,in的简单理解

out相当于java里面的<?extend>in相当于java里面的<?super> ...
代码星球 ·2021-02-20

http协议里的Last-Modified,If-Modified-Since,If-None-Match,ETag的简单理解

1.从服务端传给客户端的:  1)Last-Modified:表示服务端资源最后修改的时间,也就是传给客户端,用于告诉客户端,服务端资源最后修改的时间  2)Etag:表示字符串唯一标识符,也是传给客户端,用于告诉客户端,表示服务端资源发生修改了的最新标识。因为Last-Modified的一些缺陷,比如只能标识到时间秒...

Android配置文件gradle里的buildConfigField和manifestPlaceholders的理解

gradle文件的配置:defaultConfig{//定义一个String类型的变量,变量名为APP_ID_2,变量值取至于APP_ID_2_VALUEbuildConfigField"String","APP_ID_2",""${APP_ID_2_VALUE}""manifestPlaceholders=[APP_...

RxJava2的doOnSubscribe方法和doOnNext方法的理解

1.doOnSubscribe是事件被订阅之前(也就是事件源发起之前)会调用的方法,这个方法一般用于修改、添加或者删除事件源的数据流。2.doOnNext是观察者被通知之前(也就是回调之前)会调用的方法,说白了就是最终回调之前的前一个回调方法,这个方法一般做的事件类似于观察者做的事情,只是自己不是最终的回调者。(观察者...
首页上一页...23456...下一页尾页