JavaSe第二天

(1)变量和注释
(2)数据类型

1.变量和注释(重点)
如:
   xiaomage  18 ...

1.1 变量的基本概念
   当需要在程序中记录单个数据内容时,则需要声明一个变量,变量本质上就是内存空间中的一块存储单元用于存储数据内容,由于该内容可以发生改变,因此得名为"变量"。
   由于存储的数据内容大小不同导致所需存储单元的容量不同,在Java语言中使用数据类型加以描述,为了便于下次访问则需要指定一个名字,叫做变量名。

1.2 变量的声明方式
   数据类型 变量名 = 初始值;   - 其中=初始值可以省略,但分号不可以省略
如:
   int age = 18;  - 推荐该方式
   int age;     

1.3 标识符(变量名)的命名规则(笔试题)
   (1)必须由字母、数字、下划线以及美元$组成,其中数字不能开头。  
      如:age、name、size、age2、name2、nianling、taobao等
   (2)不能与Java语言中的关键字同名,所谓关键字就是Java语言中用于表示特殊含义的单词
      如:int、public、static、class、void等 
   (3)区分大小写,长度没有限制但不宜过长。
      如:name、Name、nAme代表不同的标识符,不推荐使用
   (4)尽量做到见名知意,支持中文但不推荐使用。
      如:year、name、age、time、hour、minute

1.4 注释
   // - 单行注释,从//开始一直到本行末尾都是注释。
   /**/ - 多行注释,从/*到*/之间的内容都是注释,但不允许嵌套。
   
2.数据类型
2.1 基本分类
   在Java语言中将数据类型分为以下两大类:
      (1)基本数据类型(记住 8个)
         byte、short、int、long、float、double、boolean、char
          1      2     4     8     4      8        1      2
      (2)引用数据类型(了解)
         数组、类、接口、枚举、标注

2.2 常见的进制
   在日常生活中采用十进制进行数据的描述,逢十进一,权重:10^0、10^1、10^2、...
   在计算机底层采用二进制进行数据的描述,逢二进一,权重:2^0、2^1、2^2、...
   通常采用二进制的最高位(最左边)代表符号位,0代表非负数,1代表负数。
如:
    10^2 10^1 10^0
    百    十   个
    1     2    3

2.3 进制之间的转换(尽量掌握)
(1)正十进制转换为二进制的方式
   a.除二取余法,让十进制整数不断地除以2取出余数,直到商为0时将余数逆序排列。
   b.拆分法,将十进制整数拆分为若干个二进制权重的和,有该权重则下面写1否则写0。
     如:
         45 = 32 + 8 + 4 + 1   

         128  64  32  16  8  4  2  1
          0   0   1   0   1  1  0  1   => 0010 1101

(2)正二进制转换为十进制的方式
   a.加权法,让二进制的每个数字乘以当前位的权重,然后再累加起来。
     如:
        0010 1101 => 0*2^7 + 0*2^6 + 1*2^5 + 0*2^4 + 1*2^3 + 1*2^2 + 0*2^1 + 1*2^0
                  => 0 + 0 + 32 + 0 + 8 + 4 + 0 + 1
                  => 45
练习:
   将十进制80和66拆分为二进制:0101 0000 和 0100 0010
   将二进制0101 0011和0010 1101转换为十进制:83 和 45

(3)负十进制转换二进制的方式
   a.先将十进制的绝对值转换为二进制,然后进行按位取反再加1.
     如:
        -45 => 将绝对值转为二进制:0010 1101
            => 进行按位取反:      1101 0010
            => 再加1:             1101 0011  

       -45 + 45 = 0            
          -45:1101 0011
           45:0010 1101 +
       -------------------------
             1 0000 0000 (假设只能存储8位二进制,此时最高位1会被丢弃,溢出)

扩展:
   有余力的同学课下查询原码、反码以及补码的概念。

(4)负二进制转换为十进制的方式
   a.先减1再按位取反,然后转换为十进制整数后添加负号.
     如:
        1101 0011  => 先减1:      1101 0010
                   => 按位取反:  0010 1101
                   => 转为十进制:45
                   => 添加负号:  -45

练习:
   将整数58、-58、82、-82转换为二进制:
   将二进制0010 1101和0111 1101转换为整数(正):
   将二进制1010 1101和1101 0011转换为整数(负):
解析:
   58 => 0011 1010     -58 => 1100 0110
   82 => 0101 0010     -82 => 1010 1110
   0010 1101 => 45     0111 1101 => 125
   1010 1101 => -83    1101 0011 => -45

2.4 单个字节表示的整数范围(重中之重)
   在计算机中单个字节表示8位二进制位,其中最高位代表符号位,因此表示整数范围如下:

   非负数:0000 0000 ~ 0111 1111 => 0 ~ 127 => 0 ~ 2^7-1
      0111 1111 => 0*2^7 + 1*2^6 + 1*2^5 + 1*2^4 + 1*2^3 + 1*2^2 + 1*2^1 + 1*2^0
                => 0 + 64 + 32 + 16 + 8 + 4 + 2 + 1
                => 127  

   负数:1000 0000 ~ 1111 1111 => -128 ~ -1 => -2^7 ~ -2^0
      1000 0000 => 先减1:     0111 1111 
                => 按位取反:  1000 0000
                => 转为十进制:128
                => 添加负号:  -128
      1111 1111 => 先减1:     1111 1110
                => 按位取反:  0000 0001
                => 转为十进制:1
                => 添加负号:  -1 
综上所述:
   单个字节所能表示的整数范围是:-128 ~ 127,也就是-2^7 ~ 2^7-1.

2.5 整数类型
   在Java语言中用于描述整数数据的类型有:byte、short、int、long,推荐使用int类型。
   其中byte类型在内存空间中占1个字节的大小,表示范围是:-128 ~ 127.
                                                        -2^7 ~ 2^7-1.
   其中short类型在内存空间中占2个字节的大小,表示范围是:-32768 ~ 32767.
                                                        -2^15 ~ 2^15-1.
   其中int类型在内存空间中占4个字节的大小,表示范围是: 正负二十一亿之间。
                                                        -2^31 ~ 2^31-1.
   其中long类型在内存空间中占8个字节的大小,表示范围是:比int类型还大的数.
                                                        -2^63 ~ 2^63-1.
   在Java程序中若出现直接写出的整数数据叫做 直接量/字面值/常量,如:66,直接量默认为int类型,若希望表达更大的直接量则需要在直接量的后面加l或者L,来表示long类型的直接量,推荐使用L。

扩展:
   由于long类型存储的数值范围依然有限,若希望描述更大的数据则使用java.math.BigInteger类型加以描述。

2.6 浮点类型
   在Java语言中用于描述小数数据的类型有:float和double,推荐使用double类型。
   其中float类型在内存空间中占4个字节,叫做单精度浮点数,通常小数点后有效到7位。
   其中double类型在内存空间中占8个字节,叫做双精度浮点数,通常小数点后有效到15位。
   在Java程序中若出现直接写出的小数数据叫做 直接量/字面值/常量,如:3.14,直接量默认为double类型,若希望表达float类型的直接量则需要在后面加上f或者F。

扩展:
   由于double类型的数据在运算时可能会有误差,若希望实现精确的运算则使用java.math.BigDecimal类型加以描述。
   有余力的同学课下查询float类型和double类型的底层二进制结构。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值