Java基础——存储

目录

一.电脑解析java文件

二.两种存储形式

 三.数据类型

 四.各类型存储结构

五.字符串

 六.编码

乱码问题

(编码)例题 :


一.电脑解析java文件

二.两种存储形式

*磁盘的储存方式:磁单元存储(3-5ms) 

 通过改变磁头线圈中的电流方向进而改变磁颗粒的磁场方向来实现01存储。电生磁存储,磁生电读取。读取时找到磁单元很浪费时间。

*内存的储存方式:电容存储(20ns)

存储时充电,读取时放电。(充电代表1,补充代表0)

 三.数据类型

数据类型

1.基本数据类型

(1)整型:byte short int long

(2)浮点型:float double 

(3)布尔型:boolean

(4)字符型:char

2.引用数据类型

 四.各类型存储结构

 

五.字符串

public class Demo{


    public static void main(String[] args){
               String a = "123";
               String b = "123";
               System.out.printin(a == b);
  }
}

 a和b是引用类型,引用类型作比较是判断地址,而基本数据类型则是判断值。

故而输出应为True。

public class Demo{
    
       public static void main(Strng[] args){
          String a = "123";
          String b = "123";
          String c = new String("123");
          System.out.println(a == b);
     }
}

 

1.局部变量在栈中存字符串常量池里面的地址,相同字符串共用,减少内存损耗。

2. xxx.class文件进入方法区。

3. == 基本数据类型比较的是数值,而对于引用类型则是判断地址。

String c = new String("123");  //new 关键字是在堆内存中开辟内存空间

 ​​​​​​​​​​​​​​

 六.编码

源码:数据转化为二进制的数。

byte a = 10;  //00001010(源码)
byte b = -10;  //10001010(源码)

 反码:对于正数来说不变,负数来说除第一位符号位不变以外0->1,1->0.

 #反码

正数的反码 = 源码

负数的反码 = 源码的符号位不变,其余按位取反

a:反码:00001010(反码)

b:反码:11110101(反码)

 补码:对于正数来说不变,负数来说在反码基础上末尾位加1. 

#补码

正数的补码 = 反码 = 源码

负数的补码 = 在反码的基础上末尾+1

a:反码:00001010(补码)

b:反码:11110110(补码)

此时执行a+b

               00001010(补码)

       +       1111 0110(补码)

-------------------------------------------

                100000000            

(因为数据类型规定了数据在内存当中的存储大小,此时需要截取数据)

因此变为0000 0000其源码则是0000 0000 = 0

计算机当中存储数值类型数据使用的是补码的形式

 计算机进行存储时是将源码转化为补码进行计算,最后再从右向左以存储数据类型的大小保留位数。

一个像素点大小:56bit

显示器显示数据:

1.视觉信息

2.颜色(每个像素点显示:红黄蓝三原色(0-255)  3byte)

3.亮点

4.坐标  (每个像素点坐标  2 Short )

2 short = 4 byte 则一个像素点 7byte = 56bit

 一些字符如果用像素点表示的话太大故而采用字符集表示(ASCll编码),存储位置只记录文档左上角的坐标,颜色则单独存储。

乱码问题

 乱码:发送方和接收方采用了不同的字符集转换二进制的数据。

(编码)例题 :

1.

public class Test{
   public static void main(String[] args){
       byte a =1;
       byte b =127;
       byte c = (byte)(a+b);
       System.out.println(c);
    }
}

输出为:-128

1000 0000      -128

...........

1111 1100       -4

1111 1101       -3

1111 1110        -2

1111 1111        -1

0000 0000      0

0000 0001      1

0000 0010      2

0000 0100      3

0000 0101      4

......

0111 1111       127        

0111 1111   +   1  =  1000 0000(补码)即-128 变为0111 1111(反码)变为1000 0000(源码)这些数值可以包成一个圈连起来,这样强制类型转化时二进制不会超出范围,而是返回错误的值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值