1.Java语言有8种基本数据类型
java变量的数据类型分为两种

2.int类型
(1>int是最常用的整数类型,一个int类型的变量占用4个字节,即32位的内存空间。Int的最大表示范围为:-231~231-1,即-2147483648~2147483647,大约正负21个亿多些
(2>整数直接量是int类型
a.整数的直接量的类型默认为int类型,如果直接写出的整数超过了int的表达范围,将会出现编译错误
b.除了通常的十进制数字形式,整数直接量也可以写成16进制的形式<以0X或0x开头)或8进制的形式<以0开头)如:
        int a =100000。// 10进制
        int b = 0x186a0。// 16进制
        int c = 0303240。// 8进制
 
(3>两个整数相除,会舍弃小数的部分<注意:不是四舍五入),结果也是整数如:
      inttotal = 87。
      int error = 23。
      int percent = error / total * 100。
      System.out.println(percent+"%">。//结果为0%,23除以87整数部分为0,乘以100,为0b5E2RGbCAP
      percent = 100 * error / total。
      System.out.println(percent +"%">。// 结果为26%,230除以87整数部分为26p1EanqFDPw
(4>当两个整数进行运算时,其结果可能会超过整数的范围而发生溢出,正数过大而产生的溢出,结果为负数;负数过大而产生的溢出,结果为正数如:     DXDiTa9E3d
       inta = 2147483647。//int类型整数的上限
       int b = -2147483648。//int类型整数的下限
      a = a + 1。
      b = b - 1。
      System.out.println("a=" +a>。//输出结果: a=-2147483648溢出,结果错误RTCrpUDGiT
      System.out.println("b=" +b>。//输出结果: b=2147483647溢出,结果错误5PCzVD7HxA

3.long类型
(1>在表示整数时,如果int类型的范围不够,可以使用long类型,一个long型的变量占用8个字节<即64位),最大表示范围为:-263 ~ 263-1,即 -9223372036854775808 ~9223372036854775807如果要表示long直接量,需要以 L 或 l结尾
       long a =10000000000。//会有编译错误,因为10000000000编译器认为是int类型,而这个值,已经超出了int的范围jLBHrnAILg
       long b = 10000000000l。//正确
(2>对于较大的整数运算<超过int的表达范围),可以使用long型
        long distance1 = 10000 * 365 * 24 * 60 * 60 * 299792458l。//必须有一个long型数据参与的运算结果才是long型xHAQX74J0X
      System.out.println("distance1="+distance1>。//distance1=547836957965889536结果正确LDAYtRyKfE
        long distance2 = 10000 * 365 * 24 * 60 * 60 * 299792458。Zzz6ZB2Ltk
       System.out.println("distance2="+ distance2>。
       //distance2=-1973211136 溢出,=号后面的数据默认为int类型,超出了范围,发生溢出dvzfvkwMI1
(3>JDK提供 System.currentTimeMillis(>方法,返回1970年1月1日零点到此时此刻所经历的毫秒数,数据太大,故其数据类型为long
           long time =System.currentTimeMillis(>。rqyn14ZNXI
          System.out.println(time>。//输出的结果为: 139********87
通过上面的代码可以看出,输出的结果已经超出int类型的最大值,因此,JDK设计的返回类型为long型,该方法常常被用于计时操作
 EmxvxOtOco
4.double类型(1>2进制系统中无法精确的表示1/10,就好像十进制系统中无法精确的表示1/3一样,所以,2进制表示10进制会有一些舍入误差,对于一些要求精确运算的场合会导致代码的缺陷   double money = 3.0。SixE2yXPq5
       double price = 2.9。
      System.out.println(money - price>。//输出的结果是: 0.100000000000000096ewMyirQFL
如果需要精确的运算可以考虑放弃使用double或float而采用BigDecimal类来实现(2>浮点数的直接量有两种写法:1)通常写法,如:3.14、314、0.1、.5。 2)科学计数法,如:1.25E2、1.25e2、1.25E-2。其中,1.25E2表示1.25乘以10的2次方默认的浮点直接量为double型,如果需要表示float类型的直接量,需要加“f”或“F”后缀5.char类型(1>字符类型char事实上是一个16位无符号整数<都是正数),这个值是对应字符的编码,Java字符类型采用Unicode字符集编码,而Unicode是世界通用的定长字符集,所有的字符都是16位来表示例如:字符a实际的值为97,字符A实际的值为65,字符0实际的值为48
   char c1 = ‘中’。//c1中存的是”中”的编码kavU42VRUs