位运算了解与复习多线程

在说到位运算之前我们先说一下我们的进制,   我们的的10进制逢10进1,只有0-9.二进制逢2进1,只有0和1.。

原码:原码是给我们看的,我们可以根据原码计算。

反码:原码转换到补码需要的一个过程。

补码:给计算机计算的,我们看的是原码。

位运算需要注意的规则:

整数的三个码都是一样的,不需要进行转换。

负数的三个码不一样,需要进行转换。

在计算机中参与计算的是补码。

最左边的哪一位数字是最高的,也是符号位,符号位分为0 和 1 , 0为整数,1为负数。

 

2-3 //计算2和-3     二进制 

0 0 0 0 0 0 1 0 二的原码
1 0 0 0 0 0 1 1 -3的原码

1 1 1 1 1 1 0 0 -3的反码

1 1 1 1 1 1 0 1 -3的补码
-------------------------
0 0 0 0 0 0 1 0 二的原码
1 1 1 1 1 1 0 1 -3的补码
1 1 1 1 1 1 1 1 补码的结果
1 1 1 1 1 1 1 0 结果的反码
1 0 0 0 0 0 0 1 结果的原码
1乘2的0次方=1 原码的结果 -1

 

算数右移和算数左移还有一个逻辑右移。没有逻辑左移。

 

位运算

1.按位与 &
两位都为1,结果为1

5&6

0 0 0 0 0 1 0 1
0 0 0 0 0 1 1 0
------------------
0 0 0 0 0 1 0 0

4&5
0 0 0 0 0 1 0 0
0 0 0 0 0 1 0 1
----------------
0 0 0 0 0 1 0 0

2.按位或 |
两位有一位为1,结果为1

5|6

0 0 0 0 0 1 0 1
0 0 0 0 0 1 1 0
------------------
0 0 0 0 0 1 1 1


4|5
0 0 0 0 0 1 0 0
0 0 0 0 0 1 0 1
----------------
0 0 0 0 0 1 0 1

3.按位异或 ^
一位为0,一位为1,结果才是1

5^6

0 0 0 0 0 1 0 1
0 0 0 0 0 1 1 0
------------------
0 0 0 0 0 0 1 1


4^5
0 0 0 0 0 1 0 0
0 0 0 0 0 1 0 1
----------------
0 0 0 0 0 0 0 1

4.按位取反 ~ 一元表达式

~3 正数按位取反=自身的负数-1
~-3 负数按位取反=自身的正数-1

 

复习书上的多线程

进程:

进程是系统运行程序的基本单位。

每一个进程都有自己独立的一块内存空间,一组系统资源。

每个进程的内部数据和状态都是完成独立的。

线程:

线程是进程中执行运算的最小单位,可完成一个独立的顺序控制流程。每个进程中至少建立一个线程(这个线程称为主线程)。

如果一个进程中同时运行多个线程,用来完成不同的工作,这就叫做多线程。

多线程的好处:

可以充分利用cpu的资源,提高了程序的性能。减少了造成响应过慢等现象,给用户带来良好的用户体验。

在java中实现多线程:

java提供了一个Thread类用于实现多线程。

 

 看一下thread底层:

 

线程的状态:

线程的状态有五种:创建--就绪--运行--堵塞--死亡

堵塞状态也是分为有很多种情况。

 

线程中的同步方法:

synchronized修饰的方法可以实现线程同步。

 

  

posted @ 2018-10-15 17:22  就让文谦先行  阅读(215)  评论(0编辑  收藏  举报