基本数据类型
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基本数据类型相关的知识,希望对你有一定的参考价值。
一、char类型
1、char数据类型一般用单引号包括
有一些字母对应的Unicode编码为:
0~9: 48~57
A~Z: 65~90
a~z: 97~122
2、转义字符
转义字符是"\\",通过转义字符可表示一些特殊的字符
例如:
‘\\n‘表示回车
‘\\t‘表示制表符
‘\\\\‘表示\\
‘\\‘‘表示单引号
‘\\‘‘‘表示双引号
‘\\u4e2d‘表示Unicode编码对应的字符(汉字:中)20013
3、数据类型之间的转换
a、小数据类型和大数据类型之间的转换
小类型向大类型的转换会自动完成,自动类型转换也叫“隐式类型转换”
自动转换的规则:符号位会自动扩展,负数补1,正数补0
自动类型转换包括以下情况:
(1)、byte->short->int->long->float->double
(2)、int和char类型的数据在某些情况下可以自动相互转换
b、整数到浮点数转换会损失精度
int类型:4个字节,32位
long:8个字节,64位
将int类型转换为long类型时,高32位自动补1
c、小转大一般是安全的,当时当精度高转向精度低时,会有精度丢失的隐患
int类型转换为float(int的精度为31位,float 的精度为23位)
会丢失精度
long类型(精度有63位)转换为double类型(精度有52位)都是8个字节64位
这个也会丢失精度
long l = 0x20000000000001L;(16进制数,每一个数代表4位二进制数,所以14*4=56位)
d、大类型向小类型转换
1、强制类型转换
java在进行整数类型的运算时,默认是作为int类型
java在明显的可以算出运算结果的运算会直接算出结果,不经过编译器(只要不超过类型所表示的范围)
2、强制类型转换
btye类型是8位。在补码中,符号位,为1时是负数,为0时是正数
二进制的最高位是符号位,0表示正数,1表示负数
正数的值是其本身,负数的值是最高位(符号位)不变,(即正负号不变,但是逐位取反时,所有位都要取反,最高位也是),其它位逐位取反,再加1.
byte字节类型,
1 00000001=257
这有9位数,最高位要舍弃,因为byte只能保存8位
00000001,所以强制类型转换后的值为1
3、int类型和char类型的转换
java对char类型的数据在底层是按int 类型来处理的
int类型与char类型在赋值时可以自动转换
例如:char c=65;//将int数值65自动转为A赋值给C
int i=‘B‘;//将char类型的值B,自动转为66赋值给int型的变量i
System.out.println(c+","+i);
输出的结果为A,66
4、字符类型的数值可进行数值计算
将字符类型的数据与普通数值进行计算
char c=‘A‘;
int i = c+1;
c=(char)(c+1);后面这个为int类型,赋值给char类型要强制类型转换
二、通过args数组获取数据
1、有几个常见的包装类用法
1 int a=Integer.MIN_VALUE;//a的值为int类型的最小值 2 int b=Integer.MAX_VALUE;//int类型的最大值 3 int Integer.parseInt(String s);//将字符串类型的整数转换为int类型的数据 4 String Integer.toBinaryString(int value);//将十进制转换为二进制,返回结果为String 类型 5 String Integer.toHexString(int value);//将十进制转换为十六进制,返回结果为String 类型
2、实例
1 public static void main(String[] args) { 2 // TODO Auto-generated method stub 3 int a = Integer.parseInt(args[0]); 4 int b = Integer.parseInt(args[1]); 5 System.out.println(a + "+" + b + "=" + (a + b)); 6 System.out.println(a + "-" + b + "=" + (a - b)); 7 8 }
在run configurations这里配置,运行时的信息,在arguments中输入需要传入的args字符串参数,然后转为int,得到运算结果。
三、通过scanner从控制台获取数据
1、String next()接收控制台输入的一个字符串
2、String nextLine() 接收控制台输入的一个字符串
3、int nextInt() 接收int类型的一个数据
4、double nextDouble()
5、boolean nextBoolean()作用同上
6、输入char类型的数据
Scanner类没有提供直接输入char类型的方法,
通过charAt()方法从next()或者nextLine()获取输入的字符
char String.charAt(int index);
从字符串中获取指定下标的字符,下标从0开始
例如:“abc”.charAt(0)的结果是a
实例:
1 Scanner scanner = new Scanner(System.in);//变量scanner在栈空间,new出来的对象在堆空间 2 // scanner变量存放的是对象在堆空间中的一个地址 3 String name = scanner.next(); 4 System.out.println(name); 5
7、自增和自减和自乘自除
++i:先加1, 先将i的值加1,再赋值
i++:后加1,先赋值,再将i的值加1
i*=n;i/=n;
i=i*n;i=i/n;
8、不借助第三个变量,交换两个变量的值
a=a+b;
b=a-b;
a=a-b;
9、java的错误类型:
程序的错误分为:
①编译期语法错误:可以借助eclipse的提示修改
②运行期异常错误:系统会提示错误类型和出错的位置
③运行期编译错误:
逻辑错误:程序可以编译运行,但执行的结果不是预期的结果(或者说是不正确的结果)。
以上是关于基本数据类型的主要内容,如果未能解决你的问题,请参考以下文章