生活中我们会把钱放进钱包、把书放进书包、把水杯放在桌上 —— 不同的东西需要放在对应的 “容器” 里。在软件编程中同样也存在这样的容器 我们称之为变量。
变量的创建
如同容器,在java的世界中 如果我们想存放一个值。那么我们首先要做的就是"容器"。当然和生活中一样的,不同类型的值(物品) 就需要不同类型的容器(变量)。想象一下 如果我们这个方面做错了 就好像是把水放到竹篮中 那真的是竹篮打水一场空了。
Java变量的类型:
在java中 存放字符串的类型我们使用string关键字,存放数值类型的值我们使用 byte、short、int、long(整数)和 float、double(小数),还有 char 存字符、boolean 存布尔值。
接下来我们就一个一个的说明什么是字符 什么是byte 什么是short 什么时候用int
先从这几个基础类型入手,每个都讲明白 “它是干啥的、什么时候用”,保证一听就懂!
- 先说说 char(字符类型)
首先注意,char 不是存数值的,是专门存单个字符的 —— 比如一个字母(a、B)、一个数字(8)、一个中文汉字(张)、一个符号(%),都算单个字符。
什么时候用?只要你想存 “单个字 / 单个符号” 就用它,比如存性别(' 男 '/' 女 ')、存单个验证码('6')。
举个例子:char sex = '男'; 就是用 char 存了 “男” 这个单个字符。
- 再讲 byte(字节类型)
- 是存很小的整数的,它能存的范围特别小,就 - 128 到 127 之间的整数。
什么时候用?一般是想节省内存的时候用 —— 比如存文件的字节数据、存传感器采集的小数值(比如温度 - 10~50),日常开发中单独用得少,大多是处理字节流的时候用。
举个例子:byte fileByte = 88; 存一个文件里的单个字节值。
- 然后是 short(短整型)
- 比 byte 能存的范围大一点,能存 - 32768 到 32767 之间的整数,还是属于 “小整数类型”。
什么时候用?和 byte 一样,也是为了节省内存,比如存一些固定范围的小数值(比如班级人数 0~100),但日常开发里用得也不多,不如 int 常用。
举个例子:short classNum = 45; 存班级人数 45。
- 最后说 int(整型)
- 是咱们日常开发最常用的整数类型,能存的范围很大,-2147483648 到 2147483647—— 基本上日常用到的整数(比如年龄、数量、分数)都能存。
什么时候用?只要你想存整数,优先用 int!比如存年龄(25)、存商品数量(100)、存考试分数(98),不用想,直接用 int 就行。
举个例子:int age = 28; 存年龄 28,这是最常见的用法。
总结(新手记重点)
存单个字符→用 char;
存极小整数、省内存→用 byte;
存小整数、比 byte 范围大一点→用 short;
日常存整数(年龄、数量等)→优先用 int(最常用)
在中学课程中,存在x+y=10;y=9的时候,x等于多少?其中的x和y就是数学中的变量。
变量的实质是一小块内存单元,这一小块内存里存储着变量的值;而当变量指向一个对象时,这个变量就被称为引用变量。
变量就是申请内存来存储值。也就是说,当创建变量的时候,需要在内存中申请空间。
例如 int a;就相当于向内存申请了四个字节大的内存。如果现在我们有一个1G的内存条,则理论上这个内存可以存储134217728个a。
1GB=1073741824字节。
1字节(Byte)=8位(bit) [6]
1KB( Kilobyte,千字节)=1024B [6]
1MB( Megabyte,兆字节)=1024KB [6]
1GB( Gigabyte,吉字节,千兆)=1024MB [6]
int:一般四个字节
int 数据类型是32位、有符号的以二进制补码表示的整数.
一个字节就是8比特;
电脑是以二进制存储以及发送接收数据的。二进制的一位,就叫做 1 bit。也就是说 bit 的含义就是二进制数中的一个数位,即 “0” 或者 "1"。
内存单元:
一个内存单元的大小是一字节,也就是8比特,是一串8比特的二进制数
(转载的)为什么int类型的最大值是2^31-1 ?
int类型4个字节,1个字节等于8个比特,32位,最大值用二进制表示就是, 0111...(总共31个1)。为什么第一位是0? 二进制里,最高位(第一位)表示符号
0表示正,1表示负。
所以将二进制01111...(31个1)转换成十进制,就是:2^01 + 2^11 + 2^21...+2^n1就变成了2的n次方求和, 这里的n就是30,因为第一位是0,即2^31 * 0
2的n次方求和(n=30),由等比数列可知, 2^0 + 2^1 + 2^2...+2^n=2^(n+1)-1 = 2^31-1
同理最小值的二进制表示就是,1000...(总共31个0),(负数二进制转十进制,是用补码(反码加1)转的。)
1000(31个0)的补码还是本身。 所以最小值就是, 2^00 + 2^10 + 2^20...+ 2^311=2^31= -2^31
也是转载来的原文作者也不知道是谁了。
