|
类型名称 |
字节空间 |
范围 |
整数型 |
byte |
1 |
-27到27-1 或者 -128到127 |
|
short |
2 |
-215到215-1 |
|
int |
4 |
-231到231-1 |
|
long |
8 |
-263到263-1 |
浮点型 |
float |
4 |
单精度,对小数部分的精度要求不高 |
|
double |
8 |
双精度,精确的小数部分并操作值很大时 |
字符 |
char |
2 |
0到65535 因为少一个符号位所以比int大两倍 |
布尔 |
boolean |
1 |
真true 假false |
float和double有个问题 在我们大多的小数而言转换位二进制是无限位的,缺少精度。在后面的api java会解决
测试的话可以用下面
package com.tedu.basic; //测试取值范围 public class Test1_Scope { public static void main(String[] args) { byte bmax = Byte.MAX_VALUE; byte bmin = Byte.MIN_VALUE; //打印变量的值快捷键alt+/ System.out.println(bmax);//127 System.out.println(bmin);//-128 short smax = Short.MAX_VALUE; short smin = Short.MIN_VALUE; System.out.println(smax);//32767 System.out.println(smin);//-32768 //int Integer int imax = Integer.MAX_VALUE; int imin = Integer.MIN_VALUE; System.out.println(imax);//2147483647 System.out.println(imin);//-2147483648 //long Long long lmax = Long.MAX_VALUE; long lmin = Long.MIN_VALUE; System.out.println(lmax);//9223372036854775807 System.out.println(lmin);//9223372036854775808 //float Float float fmax = Float.MAX_VALUE; float fmin = Float.MIN_VALUE; System.out.println(fmax);//3.4028235E38 System.out.println(fmin);//1.4E-45 //double Double double dmax = Double.MAX_VALUE; double dmin = Double.MIN_VALUE; System.out.println(dmax);//1.7976931348623157E308 System.out.println(dmin);//4.9E-324 System.out.println(); char c = 'h';//"" 字符串 ''字符 char c2 = '0'; char c3 = '我';//char可以存一个汉字 char c4 = 200; //字符类型,最终的输出结果就是一个字符 //能够把98换算成字符b, //因为char类型底层会查ascii码表 //ascii码表里规定了0-127对应的字符, //ascii码表里没有的数字都按?字符来处理 System.out.println(c4);//? } }
编码--把文字转换位数字的过程 转换规则是--码表
ASCLL(阿斯特码表) 0-127 虽然是半个字节但是占用的还是一个字节
ISO8859-1(西欧码表)0-255占用一个字节
GB2312(简体)、BIG5(繁体)占用2个字节
GBK(国标码) //国家自己的编码
UnIcode编码体系里面有很多的码表(万国码) 具体有(utf-8、utf-16、utf-32等等)
转义字符:
\t 空格 \r回车 \n换行等等