zoukankan      html  css  js  c++  java
  • java的基本数据类型

    java的基本数据类型

    常量和变量
      Java常量:用文本串表示,可以区分为不同类型
      整数常量123 实数常量2.12

      字符常量‘c’
      逻辑常量true false
      字符串常量  “hello
    
    
    常量:在程序运行期间其值保持不变的变量。
      final定义常量——用符号表示常量
      final double PI = 3.14159; // PI是实数类型常量

    变量

      定义:值在运行时可以改变的量
      每个变量属于特定的数据类型,使用前要先声明,然后赋值,然后才能使用
        变量的定义和初始化         int x = 9;
        变量有一个名字,在内存中占存储单元,存储单元中存放变量的值(区分变量的名和变量的值)
     
    数据类型
    (1)整数类型
      特点:无小数部分;允许负数   byte、short、int、long(L)
        Java:整数的范围与Java代码所在机器无关
        Java中整数类型的三种表示形式:
          十进制整数:如,2,-6;
          八进制整数:以0开头,如02;
          十六进制整数:以0x开头,如Ox5317
      注意:这里没有二进制!!!

    (2)字符类型
       用‘’表示字符常量
        char c1 = ‘a’;   char c2 = ‘人’
      char :16位;使用Unicode编码
      可用十六进制编码形式表示
        5317 4EAC 6B22 8FCE 4F60 (16进制)
        使用‘’将其后的字符转换成其他含义
          ‘
    ’表示回车;
          ‘u5317’代表编码为5317 (16进制)的字符:‘北’
    System.out.print('u5317');
    System.out.print('u4eaC');
    System.out.print('u6B22');
    System.out.print('u8FCE');
    System.out.print('u4F60');
    //输出:北京欢迎你
      区分字符和字符串

    (3)浮点类型
      Java中的实数类型 float(4字节)、double(8字节,双精度)
      两种表示方法:
        十进制形式  如3.14,.314   314.0
        科学计数法,如:5e-3F
      默认为double型,若声明一个float型,需要在数字后面加上f或F
        double a = 12.3;       float f = 12.3f;
    float f = 12.3;
    System.out.println(f);//错误!提示精度缺失!
    //java中12.3默认我double类型。将其赋值给float类型的变量f,可能造成ing度缺失,所以报错!!!
    
    double pi = 3.1415926;
    int p = (int)pi;
    System.out.println(p);//p=3
      注意:计算机中无法精确表示实数

    (4)布尔类型 boolean
        用于判断逻辑,包含:false和true
        注意:只能取true和false,不能以0或非0整数来代替
     

    (5)基本类型数据之间的转换
    <1>类型的兼容转换
    float f = 1.0f;
    double d = f;
    <2>强制类型转换: (类型指示符)表达式
                double pi = 3.1415926;
                int p = (int)pi;//p=3
    
    转换规则:
    基本数据类型转换规则小结
      容量小的转换成容量大的(隐式的自动转换)
        byte short char->int->long->float->double
        byte short char互相之间不转换,用时全部转换成int类型
      容量大的类型转换成容量小的类型时,要加强制转换符,但可能降低精度或造成溢出
      多种类型混合运算时,系统自动将所有类型转换成容量最大的类型,再进行计算
      对于一个整数,编译器当作int型(默认)
      对于一个小数,编译器当作double型(默认)
      boolean类型和其他类型不能互相转换
     
    数据类型大小、范围、默认值如下:
    数据类型            大小(位)       范围                                                 默认值 

    byte(字节) 8 -128 - 127 0
    shot(短整型) 16 -32768 - 32768 0
    int(整型) 32 -2147483648-2147483648 0
    long(长整型) 64 -9233372036854477808-9233372036854477808 0
    float(浮点型) 32 -3.40292347E+38-3.40292347E+38 0.0f
    double(双精度) 64 -1.79769313486231570E+308-1.79769313486231570E+308 0.0d
    char(字符型) 16 ‘ u0000 - uffff ’ ‘u0000 ’ 使用的Unicode值  表示的,格式是‘uXXXX’。XXXX表示一个十六进制的整数。如:‘A’、‘9’、‘0’等。
    boolean(布尔型) 1 true/false false

    实例:
    int i1 = 123; 
    int i2 = 456;
    double d1 = (i1+i2)*1.2;//系统将转换为double型运算
    
    float f1 = (float)((i1+i2)*1.2);//需要加强制转换符
    
    byte b1 = 1; //整形常量赋值且未超出范围,可以直接赋值
    
    byte b2 = 2;//整形常量赋值且未超出范围,可以直接赋值
    
    byte b3 = b1+b2;//错误!!!!系统将转换为int型运算,需要强制转换符改为(byte) (b1+b2);
    
    System.out.println(b3);
    double d2 = 1e200;
    float f2 = (float)d2;//会产生溢出
    
    System.out.println(f2);
    
    
    
     float f3 = 1.23;//错误!!!要换成1.23f
     long l1 = 123;
     long l2 = 30000000000;//错误!!!数制超出了int的范围,必须加L
     float f = l1+l2+f3;//系统将转换为float型计算
    
     long l = (long)f;//强制转换会舍去小数部分(不是四舍五入)
    

      

    原码+补码+反码
    原码:本身的值。
    原码符号位不变->其他位取反,得到反码->再加1 得到补码。

    补码减1,得到反码->反码符号位不变,其他位按位取反 ->得到原码。


    需要注意的事项:
    double d1=1/3;//这里d1的值是0
    
    1/3是两个整数相除,首先做的是整数运算,结果是0。直接赋给d1,所以d1=0;
    需要做如下修改就可以:
    public class Test
    {
    	public static void main(String[] args)
    	{
    		double d1=1/3;
    		System.out.println(d1);
    		
    		double d2=1/3d;
    		System.out.println(d2);
    	}
    }
    
    结果:
    
    
     
  • 相关阅读:
    HDU 1850 Being a Good Boy in Spring Festival
    UESTC 1080 空心矩阵
    HDU 2491 Priest John's Busiest Day
    UVALive 6181
    ZOJ 2674 Strange Limit
    UVA 12532 Interval Product
    UESTC 1237 质因子分解
    UESTC 1014 Shot
    xe5 android listbox的 TMetropolisUIListBoxItem
    xe5 android tts(Text To Speech)
  • 原文地址:https://www.cnblogs.com/lixiaolun/p/4309240.html
Copyright © 2011-2022 走看看