1、基本数据类型(4类8种)
整型:byte 1(字节) short 2 int 4 long 8 浮点型:float 4 double 8 字符型:char 2
布尔型:boolean 1
2、基本数据类型的转换
(1)基本数据类型的转换规则
- 范围小的数据类型值(如byte),可以直接转换为范围大的数据类型值(如int); (自动类型转换)
- 范围大的数据类型值(如int),不可以直接转换为范围小的数据类型值(如byte)。(强制类型转换)
- 范围从小到大依次排列为:byte -> short(char) -> int -> long -> float -> double
- byte、short、char之间不会相互转换
(2)练习:short s1 = 1; s1 = s1 + 1与short s1 = 1; s1 += 1;
short s1 = 1; s1 = s1 + 1不能正常运行,因为s1是short类型,与1相加的结果是int型,因为它自动进行了类型转换变为int型,要想正常运行需要进行强制类型转换s1 =(short)(s1 + 1)
short s1 = 1; s1 += 1可以正常運行,因为+= 是java语言规定的运算符,java编译器会对它进行特殊处理,因此可以正确编译。
(3)Byte a=1,b=1,Byte c=a+b
低于int的3种数字类型byte、short和char进行算术运算后,结果会自动提升成int类型,也就是说a+b的结果变成了int类型。byte c=(byte)(a+b)就可以了
3、调用数据类型对应类的静态方法
直接调用类里面的方法,来确定每种数据类型的位数(bit)、最大值、最小值。因为是静态方法,因此,可以直接用类名进行调用。
在API文档中的java.lang.Short可以找到Short的以下静态方法:
public class Data { //静态方法可以直接用类名调用 public static void main(String[] args) { System.out.println("基本类型:byte 二进制位数:" + Byte.SIZE); System.out.println("最小值:Byte.MIN_VALUE=" + Byte.MIN_VALUE); System.out.println("最大值:Byte.MAX_VALUE=" + Byte.MAX_VALUE); System.out.println(); System.out.println("基本类型:short 二进制位数:" + Short.SIZE); System.out.println("最小值:Short.MIN_VALUE=" + Short.MIN_VALUE); System.out.println("最大值:Short.MAX_VALUE=" + Short.MAX_VALUE); System.out.println(); System.out.println("基本类型:int 二进制位数:" + Integer.SIZE); System.out.println("最小值:Integer.MIN_VALUE=" + Integer.MIN_VALUE); System.out.println("最大值:Integer.MAX_VALUE=" + Integer.MAX_VALUE); System.out.println(); System.out.println("基本类型:long 二进制位数:" + Long.SIZE); System.out.println("最小值:Long.MIN_VALUE=" + Long.MIN_VALUE); System.out.println("最大值:Long.MAX_VALUE=" + Long.MAX_VALUE); System.out.println(); System.out.println("基本类型:float 二进制位数:" + Float.SIZE); System.out.println("包装类:java.lang.Float"); System.out.println("最小值:Float.MIN_VALUE=" + Float.MIN_VALUE); System.out.println("最大值:Float.MAX_VALUE=" + Float.MAX_VALUE); System.out.println(); System.out.println("基本类型:double 二进制位数:" + Double.SIZE); System.out.println("最小值:Double.MIN_VALUE=" + Double.MIN_VALUE); System.out.println("最大值:Double.MAX_VALUE=" + Double.MAX_VALUE); System.out.println(); System.out.println("基本类型:char 二进制位数:" + Character.SIZE); System.out.println("最小值:Character.MIN_VALUE="+ (int) Character.MIN_VALUE); System.out.println("最大值:Character.MAX_VALUE="+ (int) Character.MAX_VALUE); } }
4、引用数据类型(类,如:String类、接口类型、数组类型、枚举类型、注解类型)
(1)Scanner类:
import java.util.Scanner; public class ScannerDemo { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int a=sc.nextInt(); System.out.println(a); } }
(2)Random类:
import java.util.Random; public class RandomNum { public static void main(String[] args) { Random ran=new Random(); int i=ran.nextInt(100); double j=ran.nextDouble(); System.out.println(i +" "+" "+ j); } }
(3)字符串类型(String类):
String
类代表字符串。 Java程序中的所有字符串文字(例如"abc"
)都被实现为此类的实例。
public class Test { public void str(){ Integer num=123; String strNum=String.valueOf(num); System.out.println("转化后的字符串为:"+strNum); } public static void main(String [] args){ Test test=new Test(); test.str(); } }
如上的程序为直接类名调用方法String类中的静态方法,将int型的数据转化为字符串类型的数据。