Java语言基本数据类型、转换及其封装
1. 逻辑类型 ·常量 true,false。 ·变量的定义 使用关键字boolean来定义逻辑变量: boolean x; boolean tom_12; 也可以一次定义几个: boolean x,tom,jiafei,漂亮 x,tom,jiafei,漂亮都是变量的名字。定义时也可以赋给初值: boolean x=true,tom=false,漂亮=true,jiafei 2.整数类型 ·常量123,6000(十进制),077(八进制),0x3ABC(十六进制)。 ·整型变量的定义分为4种: 1.int 型 使用关键字int来定义int型整形变量 int x int tom_12 也可以定义几个: int x,tom,jiafei,漂亮 x,tom,jiafei,漂亮都是名字。定义时也可以赋给初值: int x=12,tom=-1230,漂亮=9898,jiafei 对于int型变量,分配给4个字节byte,一个字节由8位(bit)组成,4个字节占32位(bit)。bit 有两状态,分别用来表示0,1。这样计算机就可以使用2进制数来存储信息了。内存是一种特殊的电子元件,如果把内存条放大到摩天大楼那么大,那么它的基本单位——字节,就好比是大楼的房间,每个房间的结构都是完全相同的,一个字节由8个能显示两种状态的bit组成,就好比每个房间里有8个灯泡,每个灯泡有两种状态——亮灯灭灯。 对于 int x=7; 内存存储状态如下 : 00000000 00000000 00000000 00000111 最高位:左边的第一位,是符号位,用来区分正数或负数,正数使用原码表示,最高位是0,负数用补码表示,最高位是1。例如: int x=-8; 内存的存储状态如下: 11111111 11111111 11111111 11111000 要得到-8的补码,首先得到7的原码,然后将7的原码中的0变成1,1变成0,就是-8的补码。 因此,int型变量的取值范围是-2^31~2^31-1。 2. byte型 使用关键字byte来定义byte型整型变量 byte x ; byte tom_12; 也可以一次定义几个: byte x,tom,jiafei,漂亮 x,tom,jiafei,漂亮都是名字。定义时也可以赋给初值: byte x=-12,tom=28,漂亮=98,jiafei 注:对于byte型变量,内存分配给1个字节,占8位,因此byte型变量的取值范围是: -2^7~2^7-1。 3.short型 使用关键字short来定义short型整型变量: short x; short tom_12; 也可以一次定义几个: short x,tom,jafei,漂亮 x,tom,jafei,漂亮都是名字,定义时也可以赋给初值: short x=12,tom=1234,漂亮=9876,jafei 注:对于short型变量,内存分配给2个字节,占16位,因此short型变量的取值范围是-2^15~2^15-1。 4.long 型 使用关键字long来定义long型整型变量 long x; long tom_12; 也可以一次定义几个 long x,tom,jiafei,漂亮 x,tom,jiafei,漂亮都是名字。定义时也可以赋给初值: long x=12,tom=1234,漂亮=9876,jiafei 注:对于long型变量,内存分配给8个字节,占64位,因此long型变量的取值范围是 -2^63~2^63-1。 3. 字符类型 ·常量 A b ? !9 好 \t , Java使用unicode 字符集,所以常量共65535个。 ·变量的定义 使用关键字char来定义字符变量 char x,char tom_12 也可以一次定义几个: char x,tom,jafei,漂亮 x,tom,jafei,漂亮都是变量名字,定义时也可以赋给初值: char x=A,tom=家,漂亮=假,jiafei char 型变量,内存分配给2个字节,占16位,最高位不用来表示符号,没有负数的char.char型变量的取值范围是0~65535. 对于 char x='a'; 那么内存x中存储的是97,97是字符a在unicode表中的排序位置,因此,允许将上面的语句写成 char x=97; 要观察一个字符在unicode表中的顺序位置,必须使用int型显示转换,如(int)'a',不可以使用short型转换,因为char的最高位不是符号位,如果要得到一个0~65535之间的数乴代表的unicode表中相应位置上的字符也必须使用char型显示转换。 在下面的例子中,分别用显示转换来显示一些字符在unicode表中的位置,以及某些位置上的字符。 例子: public class Example2_1 { public static void main(String args[]) { char chinaWord='你',japanWord=' '; int p1=20328,p2=12358; System.out.println("汉字\'你\'在unicode表中的顺序位置:"+(int)chinaWord); System.out.println("日语\' \'字在unicode表中的顺序位置:"+(int)japanWord); System.out.println("unicode表中第20328位置上的字符是:"+(char)p1); System.out.println("unicode表中第12358位置上的字符是:"+(char)p2); } } 4. 浮点类型 实型 浮点型分两种: 1. float 型 ·常量 123.5439f,12389.987F,123.0f,2e40f 2乘10的40次方,科学计数法 ·变量的定义 使用关键字float来定义float型变量: float x;float tom_12; 也可以一次定义几个: float x,tom,jiafei,漂亮 x,tom,jiafei,漂亮都是名字,定义时也可以赋给初值: float x=12.76f,tom=1234.987f,漂亮=9876.0f,jiafei 注:对于float型变量,内存分配给4个字节,占32位,float型变量的取值范围大约是10^-38~10^38,-10^38~10^-38。 2. double 型 ·常量12389.5439d ,d可以省略,12389908.987,123.0,6e-140 (6乘10的-140次方,科学计数法) ·变量的定义 使用关键字double来定义double型变量: double x;double tom_12; 也可以一次定义几个: double x,tom,jiafei,漂亮 x,tom,jiafei,漂亮都是名字,定义时也可以赋给初值: double x=12.76,tom=1234098.987,漂亮=9876.098d,jiafei 注:double型变量,内存分配给8个字节,占64位,double型变量的取值范围大约是10^-308~10^308。 5.基本数据类型的转换 当我们把一种基本数据类型变量的值赋给另一种基本类型变量时,就涉及到数据转换。基本类型数据的下列类型会涉及到数据转换,不包括逻辑类型和字符类型。我们将这些类型按精度从“低”到“高”排列了顺序。 byte short int long float double 当把在级别低的变量的值赋给级别高的变量时,系统自动完成数据类型的转换。例如: float x=100; 如果输出x的值,结果将是100.0 例如: int x=50; float y; y=x; 如果输出y的值,结果将是50.0。 当把在级别高的变量值赋给级别低的变量时,必须使用显示类型转换运算, 显示转换的格式: 类型名 要转换的值 例如: int x=(int)23.89; long y=(long)34.98F; 如果输出x,y的值将是23和34,强制转换运算可能导致精度的损失。 例子: public class Example2_2 { public static void main(String args[]) { byte a=120; short b=255; int c=2200; long d=8000; float f; double g=12346789.123456789; b=a; c=(int)d; f=(float)g; //导致精度的损失。 System.out.print("a="+a);System.out.println("b="+b); System.out.print("c="+c);System.out.println("d="+d); System.out.print("f="+f);System.out.println("g="+g); } } |
----------------------------------------------
java 基本数据类型之间的转换
一些初学JAVA的朋友可能会遇到JAVA的数据类型之间转换的苦恼,例如,整数和float,double型之间的转换,整数和String类型之间的转换,以及处理、显示时间方面的问题等。下面笔者就开发中的一些体会介绍给大家。 1 数据类型转换的种类 简单数据类型之间的转换又可以分为: 2.1自动类型转换 如果低级类型为char型,向高级类型(整型)转换时,会转换为对应ASCII码值,例如r 2.2强制类型转换 2.3包装类过渡类型转换 float f1=100.00f; double d1=100.00; 当希望把int型转换为double型时,自动转换: int i1=200; 简单类型的变量转换为相应的包装类,可以利用包装类的构造函数。即: 3 字符串型与其它数据类型的转换 int i1=10; 4、将字符型直接做为数值转换为其它数据类型 5、Date类与其它数据类型的相互转换 import java.text.SimpleDateFormat;
在java中除了这些转换之外基本数据类型还可以被隐式的转换成String,例如: System.out.print(转换 100);//如果在数据前面有字符串用 连接//就会隐式的转换成 String
2.时间型转字符型: 3.将long型转化为String型 ---------------------------------------------- java基本数据类型与其封装类 2008年12月21日 星期日 10:04
|