1、数据类型 1.1、数据类型有什么用? 数据类型用来声明变量,程序在运行过程中根据不同的数据类型分配不同大小的空间。 int i = 10; double d = 1.23; i变量和d变量类型不同,空间大小不同。 1.2、数据类型在java语言中包括两种:
第一种:基本数据类型 基本数据类型又可以划分为4大类8小种: 第一类:整数型 byte,short,int,long (没有小数的) 第二类:浮点型 float,double (带有小数的) 第三类:布尔型 boolean:只有两个值true和false,true表示真,false表示假 第四类:字符型 char:java中规定字符型字面量必须使用单引号括起来。属于文字。
8小种: byte,short,int,long float,double boolean char
第二种:引用数据类型 字符串型String属于引用数据类型。 String字符串不属于基本数据类型范畴。 java中除了基本数据类型之外,剩下的都是引用数据类型。 引用数据类型后期面向对象的时候才会接触。 1.3、8种基本数据类型中 整数型:byte short int long有什么区别? 浮点型:float和double有什么区别? 区别:占用的空间大小不同。
关于计算机存储单位? 计算机只能识别二进制。(1001101100...) 1字节 = 8bit(8比特)--> 1byte = 8bit 1bit就是一个1或0. 1KB = 1024byte 1MB = 1024KB 1GB = 1024MB 1TB = 1024GB
byte b = 2; 在计算机中是这样表示的:00000010 short s = 2; 在计算机中是这样表示的:00000000 00000010 int i = 2;在计算机中是这样表示的:00000000 00000000 00000000 00000010 ...
类型 占用字节数量(byte) ------------------------------------ byte 1 short 2 int 4 long 8 float 4 double 8 boolean 1 (1byte的1或0,00000001(true)或00000000(false)) char 2 关于二进制? 二进制??? 1 2 3 4 5 6 7 1 10 11 100 101 110 111 ....
十进制转换成二进制 125 转换成二进制??? 办法:除以2,然后余数逆序输出。 1111101
二进制转换成十进制 2的2次方 2的1次方 2的0次方 1 1 1 4 2 1 1*4 + 1*2 + 1*1 = 7
2的2次方 2的1次方 2的0次方 1 0 1 4 2 1 1*4 + 0*2 + 1*1 = 5
1.4、byte类型的取值范围? byte是 [-128 ~ 127] 共可以标识256个不同的数字。 byte类型的最大值是怎么计算出来的? byte是1个字节,是8个比特位,所以byte可以存储的最大值是: 01111111 注意:在计算机当中,一个二进制位最左边的是符号位,当为0时表示正数, 当为1时表示负数。所以byte类型最大值是:01111111 那么是不是2的7次方-1呢? 是不是:10000000(前边是一个二进制) - 1 byte类型最大值是:2的7次方 - 1.
有几个取值范围需要大家记住: (1个字节)byte: [-128 ~ 127] (2个字节)short:[-32768 ~ 32767] 可以表示65536个不同的数字 (4个字节)int: [-2147483648 ~ 2147483647] (2个字节)char: [0~65535] 可以表示65536个不同的数字
short和char实际上容量相同,不过char可以表示更大的数字。 因为char表示的是文字,文件没有正负之分,所以char可以表示 更大的数字。 1.5、对于8种基本数据类型来说: 其中byte,short,int,long,float,double,boolean,这7种类型计算机表示起来 比较容易,因为他们都是数字。其中布尔类型只有两个值true和false,实际上 true和false分别在C++中对应的是1和0,1为true,false为0。
对于char类型来说计算机表示起来比较麻烦,因为char对应的是文字,每一个国家 的文字不一样,文字不能直接通过“自然算法”转换成二进制。这个时候怎么办? 字符编码诞生了。 什么是字符编码? 字符编码是人为的定义的一套转换表。 在字符编码中规定了一系列的文字对应的二进制。 字符编码其实本质上就是一本字典,该字段中描述了文字与二进制之间的对照关系。 字符编码是人为规定的。(是某个计算机协会规定的。) 字符编码涉及到编码和解码两个过程,编码和解码的时候必须采用同一套字符编码 方式,不然就会出现乱码。
关于字符编码的发展过程? 起初的时候计算机是不支持文字的,只支持科学计算。实际上计算机起初是为了 战争而开发的,计算导弹的轨道....
后来随着计算机的发展,计算机开始支持文字,最先支持的文字是英文,英文 对应的字符编码方式是:ASCII码。
ASCII码采用1byte进行存储,因为英文字母是26个。(键盘上所有的键全部算上也 超不过256个。1byte可以表示256种不同的情况。所以英文本身在计算机方面就占有 优势。) 'a' --(采用ASCII码进行编码)-> 01100001 01100001 --(采用ASCII码进行解码)-> 'a' 如果编码和解码采用的不是同一个编码方式,会出现乱码。 'b' ---> 98 'c' ---> 99... 'a' ---> 97
'A' ---> 65 'B' ---> 66 ...
'0' ---> 48 (这个'0'不是那个0,是文字'0') '1' ---> 49 随着计算机语言的发展,后来国际标准组织制定了ISO-8859-1编码方式, 又称为latin-1编码方式,向上兼容ASCII码。但不支持中文。
后来发展到亚洲,才支持中文,日文,韩文.... 中文这块的编码方式:GB2312<GBK<GB18030 (容量的关系) 以上编码方式是简体中文。
繁体中文:big5(台湾使用的是大五码。)
在java中,java语言为了支持全球所有的文字,采用了一种字符编码方式 叫做unicode编码。unicode编码统一了全球所有的文字,支持所有文字。 具体的实现包括:UTF-8 UTF-16 UTF-32.... 需要记住: ASCII('a'是97 'A'是65 '0'是48...) ISO-8859-1(latin-1) GB2312 GBK GB18030 Big5 unicode(utf8 utf16 utf32)
2、八种基本数据类型详解 字符型 char 整数型 byte short int long 浮点型 float double 布尔型 boolean
4、关于数据类型详解 字符型:char 整数型:byte short int long byte b = 127; // 可以直接赋值 short s = 32767; // 可以直接赋值 char // 没有超出char的取值范围可以直接赋值给char变量吗?
浮点型:float double 布尔型:boolean
5、综合的看一下,在类型转换的时候需要遵循哪些规则?
第一条:八种基本数据类型中,除 boolean 类型不能转换,剩下七种类型之间都可以 进行转换;
第二条:如果整数型字面量没有超出 byte,short,char 的取值范围,可以直接将其赋 值给byte,short,char 类型的变量;
第三条:小容量向大容量转换称为自动类型转换,容量从小到大的排序为: byte < short(char) < int < long < float < double,其中 short和 char 都占用两个字节,但是char 可以表示更大的正整数;
第四条:大容量转换成小容量,称为强制类型转换,编写时必须添加“强制类型转换符”, 但运行时可能出现精度损失,谨慎使用;
第五条:byte,short,char 类型混合运算时,先各自转换成 int 类型再做运算;
第六条:多种数据类型混合运算,各自先转换成容量最大的那一种再做运算;
所有的笔试题都超不出以上的6条规则。死记硬背。
6、运算符
算术运算符: + - * / % ++ --
关系运算符: > >= < <= == !=
逻辑运算符: & | ! && ||
赋值运算符: = += -= *= /= %=
三目运算符: 布尔表达式 ? 表达式1 : 表达式2
字符串连接运算符: +