zoukankan      html  css  js  c++  java
  • 数据类型与变量

    Java语言提供了八种基本(内置)类型。

    六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。

    除此之外的(包括String类型)都是引用数据类型。

     基本数据类型 我们又分为大概八种:

    数据类型 名称 大小(字节) 范围 默认值
    byte 字节型 1B -128 ~ 127 0
    short 短整型 2B - 32768 ~ 32767 0
    int 整型 4B -2^31 ~ 2^31-1 0
    long 长整型 8B -2^63 ~ 2^63-1 0
    float 单精度浮点型 4B -10^-38~-10^38和10^-38~10^38 0.0f
    double 双精度浮点型 8B -10^-38~-10^38和10^--38~10^38
    0.0d
     char  字符型  2B  0 ~ 65535  'u0000'
     boolean  布尔型  1/8B  true/false  false

     

     

     

     

     

     

     

     

    引用数据类型: 

    数组类型(array), 枚举类型(enum), 类类型(string ),接口类型(interface)

    变量的使用:

    使用变量的步骤:

     第一步,声明变量, 即根据数据类型在内存申请空间。

     数据类型  变量名   int  n ;

    第二步:赋值,即数据存储至对应内存空间 。

     变量名  = 数值    n= 100;

    第三步:使用变量,即取出数据使用。

    数据类型 变量名 = 数值  int n = 100;

    注意:与JS不同,Java是一种强类型的语言,声明时必须强制定义类型,不但
    更加安全,也体现了其严谨。

    赋值运算符

    变量名 = 表达式; 

     a = b + 1 ;   准确读法:将右边的表达式 b + 1 的值赋给变量a  ;

    表达式就是符号( 如加号、 减号) 与操作数( 如b1等) 的组合 ;

     

    为什么数据有范围? 

    变量是申请内存来存储值。而每个类型的变量申请的内存大小不尽相同,比如int占4字节,char占2字节 提示:1G=1024M 1M=1024K 1K=1024Byte 1Byte=8bit 

    二进制

    计算机是依靠1和0的开关来通过处理器进行计算的。 二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”。 

    二进制转换

    原则 : 除二取余,倒序排列  用数值乘以2的幂次依次相加 。

     

    取值对应:

    数据类型 大小 十进制范围 二进制范围
    byte
    1B -128 - 127
    00000000
    –11111111
    short 2B -32768 - 32767
    00000000
    00000000 –
    11111111
    11111111
    int  4B -2^31 – 2^31-1
    00000000
    00000000
    00000000
    00000000 –
    11111111
    11111111
    11111111
    11111111

     

     

     

     

     

     

     

     

     

     

     

    基本数据类型转换:

    自动数据类型转换的:
    1. 转换前的数据类型与转换后的数据类型是兼容的;
    2. 转换后的数据类型比转换前的范围表示大 ;

    double d = 3.10;
    int n = (int)d;
    //n的值为d转换截取后的值3

     String 与基本类型转换  

     1. String 转Int 
    String str = "100";
    //第一种方式
    int i = Integer.parseInt(str);
    //第二种方式
    int j = Integer.valueOf(str);
    
      2. Int 转String 
      int i = 100;
    //第一种方式
    String s1 = Integer.toString(i);
    //第二种方式
    String s2 = String.valueOf(i);
    
    String与float、long之间转换的方式类同

     

    System.out.println( (int)(char)(byte)-1 ) . 输出 65535
     如何解决精度损失问题 :  大数据操作 ;
    1 。 Bigdecimal  大浮点数
     
    BigDecimal  解决 (导入Math 包) 
    实例化 BigDecimal  
    BigDecimal  db = new  BigDecimal ( "2.00");
    BigDecimal  bi  = new BigDecimal ( " 1.10");
    // BigDecimal  方法的减法方法subtract。
    BigDecimal  d = bd.subtract( bi );
    运算符
    i ++   先用 i 再加1;
    ++ i   先加1 再用 i; 
      求值 :  i = 1 ;
        i ++  +  i ++  +  ++i   +  --i  + --i   = ? 
    byte a =1; 求 a+=1; 和a=a+1;
    a+=1. 包含隐式自动转换, 而a = a+1 ;   则需要强制类型转
    a = ( byte) ( a+1);
     
    十 ----->>二    进制转换。  
    除二取余
    二------->> 十 进制转换
    乘以2的幂次方              
     
    真值
    因为第一位是符号位,所以机器数的形式值就不等于真正的
    数值。例如上面的有符号数 10000011,其最高位1代表负,
    其真正数值是 -3 而不是形式值131(10000011转换成十进
    制等于131)。所以,为区别起见,将带符号位的机器数对应
    的真正数值称为机器数的真值。
     
    例:0000 0001的真值 = +000 0001 = +1,1000 0001的真
    值 = –000 0001 = –1
     
    原码
    原码就是符号位加上真值的绝对值, 即用第一位表示符号,
    其余位表示值. 比如如果是8位二进制:
    [+1]原 = 0000 0001
    [-1]原 = 1000 0001
    第一位是符号位. 因为第一位是符号位, 所以8位二进制数的
    取值范围就是:
    [1111 1111 , 0111 1111],即:
    [-127 , 127]
    原码是人脑最容易理解和计算的表示方式.
     
    反码
    反码的表示方法是:正数的反码是其本身;的反码是在其原
    码的基础上, 符号位不变,其余各个位取反。
    [+1] = [00000001]原 = [00000001]反
    [-1] = [10000001]原 = [11111110]反
    可见如果一个反码表示的是负数, 人脑无法直观的看出来它
    的数值. 通常要将其转换成原码再计算。
     
    补码
    补码的表示方法是:正数的补码就是其本身;的补码是在其
    原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即
    在反码的基础上+1)
    [+1] = [00000001]原 = [00000001]反 = [00000001]补
    [-1] = [10000001]原 = [11111110]反 = [11111111]补
    对于负数, 补码表示方式也是人脑无法直观看出其数值的.
    通常也需要转换成原码在计算其数值.
     
      位运算符
     
    &和&&的区别
    && 称为 逻辑与 (又称短路与),只要前者条件为假后面条件不会执行。称为遇假则假。
    &  称为按位与。 不管第一个条件是否为假,两边都要执行,最终得出结果。 
    |  和 || 的区别
    || 原理同&& 一样 , 为逻辑或(又称短路或),只要前面为真则就执行, 称遇真则真 。
    |  按位或   不管第一个条件是否为真, 两边都要执行,得出最后结果
     
  • 相关阅读:
    PythonのTkinter基本原理
    使用 Word (VBA) 分割长图到多页
    如何使用 Shebang Line (Python 虚拟环境)
    将常用的 VBScript 脚本放到任务栏 (Pin VBScript to Taskbar)
    关于 VBScript 中的 CreateObject
    Windows Scripting Host (WSH) 是什么?
    Component Object Model (COM) 是什么?
    IOS 打开中文 html 文件,显示乱码的问题
    科技发展时间线(Technology Timeline)
    列置换密码
  • 原文地址:https://www.cnblogs.com/thelovelybugfly/p/9619539.html
Copyright © 2011-2022 走看看