zoukankan      html  css  js  c++  java
  • JAVA SE 基础复习-基本程序设计(1)

    1、java基本数据类型

      int         4      最大值 0x7fffffff 2147483647=2的31次方-1  首位为符号位   最小值-2147483648  0x80000000  补码存储 首位不变 其他位取反后加1

      short     2      最大值2^15-1  32767  最小值-2^15  -32768

      long       8     最大值2^63-1    最小值-2^63  

      byte       1     最大值2^7-1  127  最小值-2^7  -128

      float       4   在内存中保存的字节格式 SEEE EEEE EMMM MMMM MMMM MMMM MMMM MMMM

      S 代表符号位,1是负,0是正
      E 偏移127的幂,二进制阶码=(EEEEEEEE)-127。
      M 24位的尾数保存在23位中,只存储23位,最高位固定为1。此方法用最较少的位数实现了
      较高的有效位数,提高了精度。

      double    8  和上面类似,能够精度更高范围更大的数,如Double.MAX_VALUE=1.7976931348623157E308   1.7976931348623157*10^308

      char       2

      boolean  2

          注意:float和double只能用来做科学计算或者是工程计算; 在商业计算中我们要用java.math.BigDecimal。

    2、java类型转换

      1)基本数据类型转换

        Java 语言是一种强类型的语言。强类型的语言有以下几个要求:

        -变量或常量必须有类型:要求声明变量或常量时必须声明类型,而且只能在声明以后才能使用。

        -赋值时类型必须一致:值的类型必须和变量或常量的类型完全一致。

        -运算时类型必须一致:参与运算的数据类型必须一致才能运算。

        但是在实际的使用中,经常需要在不同类型的值之间进行操作,这就需要一种新的语法来适应这种需要,这个语法就是数据类型转换。

        在数值处理这部分,计算机和现实的逻辑不太一样,对于现实来说,1和 1.0 没有什么区别,但是对于计算机来说,1 是整数类型,而 1.0 是小数类型,其在内存中的存储

      方式以及占用的空间都不一样,所以类型转换在计算机内部是必须的。

        Java 语言中的数据类型转换有两种:

        -自动类型转换:编译器自动完成类型转换,不需要在程序中编写代码。

        -强制类型转换:强制编译器进行类型转换,必须在程序中编写代码。

        由于基本数据类型中 boolean 类型不是数字型,所以基本数据类型的转换是出了 boolean 类型以外的其它 7 种类型之间的转换。下面来具体介绍两种类型转换的规则、

    适用场合以及使用时需要注意的问题。

        1>自动数据类型转换

          转换规则:从存储范围小的类型到存储范围大的类型。

          具体规则为:byte→short(char)→int→long→float→double

          在进行运算的时候,整型与浮点型运算会转换成浮点型,长整型与浮点型运算也是转换成浮点型。

        2>强制数据类型转换

          该类类型转换很可能存在精度的损失,所以必须书写相应的代码,并且能够忍受该种损失时才进行该类型的转换。

          具体规则为:double→float→long→int→short(char)→byte

          语法格式为:(转换到的类型)需要转换的值

          注意:

            小数转整数的时候,采用的是去1法,无条件舍去小数部分。

            整数(byte ,char ,short ,int ,long)直接的转换规则

                A、长变短   直接截取  

                如   int i=0xffffff01;byte b=(byte)i;System.out.println(b);输出是1,直接截取后八位0x01。

                B、短变长   如果是有符号位的,除开char之外的执行符号扩展;

                      没有符号位的,如char,直接在符号前面补0。

                如 (int)(char)(byte)-1    输出是65535.

                第一步:int->byte    0xffffffffffffffffffffffffffffffff  截取后八位   0xffffffff

                第二步:byte->char  0xffffffff      带符号  执行符号扩展  负数就在前面补1正数补0    0xffffffffffffffff

                第三步:char->int     0xfffffffffffffff    char转int     直接补0      0x0000000000000000ffffffffffffffff

                最后变成了65535

      2)引用数据类型转换

        这一部分在面向对象中复习。

  • 相关阅读:
    C#带日期型默认值参数的函数
    mvc调用webapi上传图片或文件
    mysql增删改查存储过程
    sql 分页存储过程
    sql 出库存储过程
    Ternura
    留言板
    友链
    .net 死锁
    C#微信小程序搜索框
  • 原文地址:https://www.cnblogs.com/maydow/p/4792251.html
Copyright © 2011-2022 走看看