03-内存寻址
别了阿娇,穿过大广场,你又回到洞中,找老学士复命。
你只见墙上挂了一幅图,老学士则在图前研究者什么。
老学士见你回来,微微点头,继续看着图,你也不便打扰,随便找了本书来看。
这些书都是岛主花重金从中原买来的,确实称得上是名家名典,有的甚至是当时孤本,十分珍惜。但是对于你来说,这些蝌蚪文的文言文,实在不是你的菜。
你只得起身四处闲逛。
老学士看到你四处闲逛,问道:“眼下没有什么事情做,我有些事情想要教你,不知道小哥……咳咳,应该称呼你为少侠了,不知少侠有没有兴趣听老夫啰嗦啰嗦?”
你正愁没事情做,赶忙点头,凑身到老学士身边。
只见老学士所看之图像是一个棋盘,上面大大小小得写了些内容,东一块,西一块,很是凌乱,但又感觉很有规律,你很难看出这是做什么用的。
老学士指着图问道:“此图,少侠可能看明白?”
你把头摇的跟拨浪鼓一样。
老学士笑道:“前日我曾跟你说过变量得值通过武功的方式将之注入到内存,此时可还记得?此图就是内存图。”
“内存是一个虚无的空间,我们并没有办法触摸到它。但是爪洼虚拟机提供了一些方法,可以让我们看到一些内存空间的虚像,凭借这些虚像,我们可以更好地写出复杂的符咒。”
“少侠且看,此图似棋盘一般,但是又不是以点为根基,而是以方格为根基。每个方格中都可以存入一些内容,当然,每个格子可存入的内容数量有限。”

“每个格子都有专属的标识,跟下棋一样,围棋高手下盲棋的时候,就是通过专属标识在脑子中构建棋局,一般来说都是先横后竖,比如13这个数字,它的位置就是横四竖二,而11则是横八竖二。”
“在岛主处,有一本名为API的上古典籍,里面记载了关于整个爪洼世界的内容,老夫有幸,受岛主青睐,曾在岛主处研习了一段时日的API。据典籍记载,内存空间分为无数个小格子,每个格子可存储1bit的内容,所谓的1bit就像我们所说的斤和两一样,而1bit有八个位构成,通过int武功注入内存后,这个变量的值要占用4bit,也就是三十二个位。怎奈老朽无能,参不透这其中的奥妙。或许岛外有高人了解其中的机密也未可知。”
老学士的话中带有些许的遗憾。但是老学士又突然精神抖擞起来,道:“人生不如意十之八九,好在老朽还有时间继续参悟,倒也不觉得有什么可惜之处。”
“据老朽的研习,发现这些格子的内容不是一成不变的,也就是说,我们可以通过武功注入内容,也可以取出内容,还可以修改内容。格子有一个开始的地方,被称为零的位置,也就是说内存是从横零竖零的地方开始记录内容。那么只要你知道某一个格子的编号,就可以将内容注入其中,或者从中取出。有些格子可以保存符咒的咒语,也就是成为命令集的东西,爪洼虚拟机中有一个叫做处理器的中枢会用到这些命令集。”
“处理器知道如何启动注入到内存中的命令,几乎所有的处理器命令都类似于从某些格子中获取内容,启动某些功能,完成某些操作,再将之发送给其他的格子。数百个简单的命令通过有序的组合,可以组合成为一些复杂而有用的命令。”
“但是,格子的编号难以记忆,因此变量名就成为了编号的替代品,也就是说,我们定义变量的时候,是定义了一个地址的替代品,然后通过运功,将内容注入内存中的某一个格子中,并且将这个格子的编号跟变量名进行连接,以后我们就可以通过变量名操作这些格子中的内容。这样一来,就不难理解变量是有类型和名称的,通过运功将值注入内存,因此,类型,名称,内存,值,这四个就成为了浑然一体。”
“我给你写一些咒语,你看看你了解了多少。”
package xkx.javaworld.day0322;
/**
* 符咒包: xkx.javaworld.day0322
* 总纲名: Task0102
* 制符人: 小虾米
* 符咒文:
* 制符日: 爪洼历1127年03月22日
*/
public class VarDemo {
public static void main(String[] args) {
/*
创建一个变量,其名称为s1,通过String进行定义,用来存储文本
但是同一个类中,或者同一个方法中不能存在同名的变量
因为没有值,所以该变量并没有注入内存
*/
String s1;
/*
创建一个变量,其名称为s2,并且将侠客岛三个字赋值给它并注入内存
*/
String s2 = "侠客岛";
int a;
int b = 4;
}
}
“正好我这里有一些一级的任务书,跟变量和内存稍微有些接近,有时间的话,你就做做看吧。”
问题1:一切从简单开始
有时候我们会接到一些非常简单,而且可能无聊的任务。没办法,人生就是这样。
我想把龙岛主和木岛主的名字存到内存中去,这样就需要定义两个String的变量用来存储文本。
如果你闲来无事,就帮帮我,如果这张符咒能显现两位岛主的名字那就更好了。
package xkx.javaworld.level01.task02;
//在这里编写代码
问题2:光有名字还不够
我突然想到,光有两位岛主的名字还不太够,如果能把岛主们的年龄也存起来就更好了。
可惜我并不知道岛主们的年龄,我只记得他们来这里二十七年了。
那时候,木岛主刚刚而立之年,而龙岛主刚刚不惑之年。
如果你不知道什么是而立和不惑,那你得去问问有学问的人了。
等你算出了这两个年龄,那么就定义两个int类型变量,把值存起来。
package xkx.javaworld.level01.task03;
//在这里编写代码
问题3:棋盘的格子数
我突然忘记了棋盘有多少个格子了。
我只记得,棋盘是由横十九个点,竖十九个点组成,两点之间有一线,也就是说两点之间可以产生一个格子。
这样算的话,格子的数量应该是横十八竖十八,那么只要求取十八的平方数应该就知道格子数了。
我老了,算不出来有多少了,谁可以帮我算出一共有多少个格子?
package xkx.javaworld.level01.task04;
//在这里编写代码
Warning: A non-numeric value encountered in /home/r2223300/public_html/javaworld.koneko-consulting.com/wp-content/themes/xs/functions.php on line 71
Alright, peeps! If you’re into Free Fire and wanna spice things up with some bets, freefirebetting might just be your jam. Just remember to play it cool and responsible, yeah?