- 不同类型的数据联合输出,代码示例
package Type_Trans_Pack;
public class My_Class {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("sqrt(10)/(sqrt(20)-sqrt(5)) = " + Math.round(Math.sqrt(10)/(Math.sqrt(20)-Math.sqrt(5))));
}
}
- Math.round 表示对小数点后面第一位数字,进行四舍五入操作。
- System.out.println 可以连接不同类型的数据,进行一行输出。
例:
System.out.println("嗨!我的名字是" + name + “,我是第” + num + “号参赛选手!”);
- Java 也不允许对变量重复定义。
例:
int a=9;
// int a; // 这一句代码会有红线显示,表示因重复定义而出错。
- 字符转换整型
System.out.println(Byte.parseByte("108"));
System.out.println(Integer.parseInt("801"));输出即为字符串对应的数字。
- 数字进制转换
System.out.println(Integer.toHexString(16));
System.out.println(Integer.toBinaryString(32));
- Java 默认整数运算的结果为整数,byte 和 short 类型变量在计算的时候,被计算机识别为 32 位(int)整型变量。
byte num = 3;
// byte val = 3+num; // 报错
- Java 默认浮点数运算的结果 计算机默认为 double 类型
long a=9;
float b = 9.2f;
float c = b+a;
double d = b+a;
- float 类型变量字长为 32 位,double 为 64 位
数据类型 | 符号位 | 指数位 | 尾数位 |
float | 1 | 23 | 8 |
double | 1 | 52 | 11 |
由上可知,因为,尾数位和指数位的存在,所以,float精度小于int(31位),double精度小于long(63位)。
- Java底层是用一个16位整数表示字符型数据的,占2个字节,该整数称为 Unicode 编码。
System.out.println((char)65+":"+65); // 65 A ; 97 a
System.out.println('\u4e2d'); // 中
- 布尔类型数据的输出
System.out.println(true);
System.out.println(90>89);
- 小类型数据项大类型数据转换
例:
byte-->short-->int-->float-->long-->double
由之前的预备知识可以了解到,int-->float 以及 long-->double 易丢失精度。
package Type_Pack;
import java.util.jar.Attributes.Name;
public class Type_Class {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
float num = (float)Math.pow(3,2);
String Name = "张"+"大飞";
System.out.println(Name);
int numint = -2;
long numlong = numint;
System.out.println(numint);
System.out.println(numlong);
// int2float 二进制码最后2字节(8位)精度丢失
int i = 0x10000010;
float f = i;
System.out.println(Integer.toBinaryString(i)+":"+i);
System.out.println(Integer.toBinaryString((int)f)+":"+f);
// long2double 二进制码最后11位精度丢失
long lnum = 0x1000000000000010l; // 加上l至关重要 !!!
double dnum = lnum;
System.out.println(Long.toBinaryString(lnum));
System.out.println(Long.toBinaryString((long)dnum));
int src = 65;
char dst = (char)src;
System.out.println(dst);
}
}
注:
若,long lnum = 0x1000000000000010l; // 加上l至关重要 !!!,该段代码没有添加上“l”,则lnum的字长只能有32位,添上才允许出现64位。
输出:
张大飞
-2
-2
10000000000000000000000010000:268435472
10000000000000000000000000000:2.68435456E8
1000000000000000000000000000000000000000000000000000000010000
1000000000000000000000000000000000000000000000000000000000000
A
- 大类型向小类型转换,也称强制转换,用字符类型加括号即可实现。
例:
int src = 65;char dst = (char)src;