数据类型
强类型语言
##要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用##
像这些java,Python,c++,这些东西都是强类型语言,
也就是说,一旦定义了一个变量,指定了某个数据类型,如果不经过转换,它就永远是这个类型了,(听不懂没关系,我们接着看)
因为这样的强类型语言,所以它的安全性很高,又因为强类型语言,它都是死板的,所以速度很慢,既有弊端又有好处,都是相对的
弱类型语言
要求变量的使用可以不符合规定,所有变量都必须先定义后才能使用
有强就弱,这个弱类型语言和强类型语言相比,速度就会相对快很多,当然安全性低,比如后面要学的“VB”“JS”这一种建立在强类型之上的,或等下可以去试一试,
比如说: ‘12’+3,它可以等于数字的123,也可以等于一串字符的‘123’,可以表达不同的意思,就随意的,在这里说有点听不懂,直接进IDEA
进入IDEA后进入创建新的类,名称为demo02,我们可以保持一课一个demo,这样比较好查看,也不会乱
我们按照强类型的要求:要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用
先写一个main方法,psvm之前学过的,然后要求上说变量要先定义才能使用,那我们如果不定义会怎么样呢?
变量就一个a,它就直接报红了,直接输出就会提示尚未初始化变量a,这样是不行的,必须要附上一个值,比如a=10
但是给他附了值了,它还是报红,这是跟之前不一样了,这里就涉及到下面讲的数据类型,
你看这个String,它是要写一串字符串的,但这个10是个数字,它下面就报红了,说需要String,但是找到了int类型的,那int呢,是代表数字的,就是不能这么复制,要加上双引号,让他变成字符串,跟之前的helloworld一样,
那刚才那个10是要怎么定义的呢,数字是int类型的,那我们再加一个int,变量名为num,付个10的值
这就成功了,要记住这个int就是输出数字的,然后string是输出字符条的,
那如果把字符条输出在int后面,然后直接输出会怎么样呢?
它就会跟刚才一样提示需要的是int类型的数字,但找到的是string类型的字符条,输出那边也提示:不兼容的类型,string无法转换为int,也就是字符条不能转换成数字,那如果把双引号里的hello改成数字可不可以呢?要知道双引号是输出字符条的,双引号内的所有文字都是会被当做字符条的
然后我们把字符条和数字一起输出一下
可以看到的结果是:10 以及 hello都被输出出来了,这是没有问题的,
到这里如果把这些全都学会那么等一下学变量就会容易很多,其实都是很简单的
java的数据类型分为两大类
java分为基本类型(primitive type)和引用类型(reference type),而我们现在注重学习基本类型,先把基本类型搞定了,剩下的都是引用类型了
基本类型(primitive type)
在生活中,我们总用得到各种字符和数字吧,什么整数小数各种符号什么的,而在java里面也是一样的,
基本类型里有:数值类型 和Boolean类型,数值类型就是表示各种数字和标点符号什么的,Boolean类型是表示是非对错开关的
分为:整数类型,浮点类型,字符类型
整数类型
就是整数,以下四个都可以代表整数,
范围就是这个代码可以表示什么数字,比如byte就可以表示负一百二十八到正一百二十七的数字之间,还有学过的int就可以表示负2147483648到正2147483647的数字,一般int就够我们用了,以此类推
在整数类型里有四个类型定义,
byte:占1个字节范围:-128到127
short:占2个字节范围:-32768到32767
int:占4个字节范围:-2147483648到2147483647
long:占8个字节-9223372036854775808到9223372036854772807
浮点类型:就是小数,以后叫做浮点数
以下浮点数,float占四个字节跟int一样,double占8个字节跟long一样,那小数上,我们一般常用的是double
在浮点类型里面有两个定义
float:占4个字节
double:占8个字节
字符类型:就是字符
字符类型只有一个定义
char:占2个字节
boolean类型:就是:是 和 非 或者 对 和 错
占1位某值只有true 和 false两个
讲那么多也看不懂,那我们直接进入到IDEA学习吧
我还在demo02上写,可以把原来的删掉,
整数类型
整数可以通过 int byte short long 来定义,其中int是最常用的,,要注意:java是强类型语言,
每个关键字都代表着固定的数值,不能多也不能少,所以byte是表示的数值是不能超过127的,
注意这个long类型,long可以表达这么长的数字,可以和其他整数类型输出一样的数字,那这时候你不去看关键字很难区分这个是long还是int,为了更好区分,给他在数字后面加个L
浮点类型
浮点数就是小数,通过float double来定义,表示小数,推荐常用double,因为float类型要在小数后面加上个F,两者本质是一样的只是要加上个F做区分
字符类型
字符类型通过:char 来定义,字符代表的是单个字,写两个字就不行了,那想要写多个字符就要用到我们的String,但是string是一个类,不是关键字,不知道类没关系我们后面会讲到
Boolean类型
Boolean 也称布尔值,只有: true 和 false 两个来定义,只是代表是非对错,
引用类型
我们刚刚学的是基本类型,而剩下的就都是引用类型,包括有:类 , 接口 , 数组,这些是面向对象的时候要学习的,现在不用着急一个一个学
字节
刚才可能有些人会有点疑问,就是,那些类型都会占字节多少多少,那什么是字节呢?
要知道电脑都有硬盘来存放数据的,而这个字节是硬盘的存储单位
计算机内部数据存储的最小单位是:位(bit) 用的是八位二进制的算法:11001100,一个1 一个0 等于一位,习惯用小写b来表示
字节(byte):计算机中 数据处理 的基本单位,习惯用上大写 B来表示
注意:1B(byte,字节)= 8bit(位),一个11001100就是一字节了
所以我们的数值类型的byte占1字节,short占1字节,int占4字节,long占8字节,那么1字节等于8位,4字节等于32位,8字节等于64位,
思考一下电脑的32位和64位有什么区别
跟大家科普一下,32位的操作系统可以装32位的CPU,而64位的操作系统可以装32位的CPU也可以装64位的CPU
字符是指计算机中使用的字母,数字,字,符号
这边讲一下单位的进制
1bit表示1位
1bit(位)=1Byte(字节)
1024B=1KB
1024KB=1MB
1024MB=1GB
1024GB=1TB
1024TB=1PG
… 以此类推
我们下载的时候总是看到 1kb,1mb,1G什么的都是这个8位2进制的