发表于: 2017-10-11 17:58:22

2 795


今天完成的事情:

1.简单了解了二进制及常用方法

(1)计算机内部处理是采用二进制的计数方式,这样做的好处是就是简化了计算机的硬件实现,电路设计等等。2进制最初是由莱布尼兹提出的。常用的还有8进制表示方式(0开头),16进制(0x开头)

(2)二进制的运算

---&(按位与):两数对应位都为1,结果为1,否则为0。

---|(按位或):两数对应位存在1,结果为1,否则为0。

---^(异或):两数对应位相同结果取0,其它为1。

--->>(右移);尾部去除n位,首部0补齐,无符号

---<<(左移):首部去除n位,尾部0补齐

(3)异或运算用法

----交换两个变量一般有三种方法1.中间变量替代  2.算术运算 3.异或运行

主要说下第三种,例如两个变量 a,b;

交换过程: a=a^b;b=a^b;a=a^b;

这么做的好处:在计算机内部二进制的运算效率最高,这种交换方式主要利用了异或运算满足交换律

①首先b=a^b;--------》b=a^(b^b);-------》b=a^0;---------》b=a; 这就完成了a的值赋给了b。

②a=a^b;与①类似原理

(4)左右移运算的常用方法,可以通过二进制的左右移运算完成基本数据类型与byte字节的转换,这么做在代码在不同平台移植过程中是具有意义的。下面举例说明简单的做法:

简单解释下:这里仅仅做了int类型和byte转换

① int向byte转换,这里就用到了右移运算,其实这里两个数是10进制和16进制,也是可以运算的,系统会转化为2机制进行运算。int类型数据在计算机中占用4个字节32bit,一个字节8bit也就是说1个int类型数据转化为4个byte型。

② 0xff这个16进制数用2进制表示是11111111八个1,任何数和它进行按位与运算获得是它本身的值,其实就是把一个int类型的数按照8bit分为4组,然后通过运算分别取这4组的数转换为byte,这里还需要使用强制转换,大类型向小类型

③ byte数组转换为int类型

  这个跟②刚好是一个相反的过程

2.小课堂准备--数据库索引

(1)MySQL索引概念

索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。
MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。
不建立索引的话,MySQL执行查询会从数据表的第一行开始查直到查询想要的数据结果。

(2)索引的分类

<p>索引的分类--单列来区分</p>
<p>1.普通索引--这是最基本的索引,它没有任何限制</p>
<p>2.唯一索引--索引列的值必须唯一,但允许有空值;如果是组合索引,则列值的组合必须唯一</p>
<p>3.主键索引--列值唯一,非空,一个数据表只能有一个主键</p>
<p>4.组合索引:将数据表中多个列建到一个索引中,MySQL组合索引遵循最左前缀原则,
   就是说你的查询条件语句里必选包含组合索引第列的值才能使用
   改组合索引,例如在某个数据表中为user,name,age三个列建立组合索引,
   查询语句里必须有where user*才会调用这个索引。
</p>

明天的计划:
1.继续学习java web

遇到问题:

收获:

1.总结下之前学习的MySQL数据库相关的知识,对索引的作用和概念了解的更深入一些。


返回列表 返回列表
评论

    分享到