Java02 数据类型和变量

五、数据类型和变量


1.内存中如何存储数据
    计算机中只能存储二进制的数据
    计算机中最小的存储单元字节(Byte),
字节:8个二进制位构成1个“字节(Byte)”,1个字节可以存储一个英文字母或半个汉字
位:最小的数据单元,每一位的状态只能是0或1,这种只有0和1的数字进制叫二进制
        1KB=1024B
        1MB=1024KB
        1GB=1024MB
使用中为了方便表示二进制数字,还会将二进制转换成十六进制、八进制来表示
2.进制转换
    2.1 其它进制转十进制,就是该位的数字×该位的位权,然后累加即可
N进制的位权,从低位开始,n的0次幂,n的1次幂,n的2次幂......
    2.2 十进制转N进制:十进制的数字短除N倒取余,倒出的余数就是转换好的数字,当商为0时,就转换完成
    其它
        (十进制)D—(二进制)B   整数位短除2取余,反取至商为0止;小数位乘以2取整,正取至小数位为0止
(八进制)O      (十六进制)H
3.java基本数据类型/元数据类型(四类八种)
   整数型:byte(1)、short(2)、int(4)、long(8)
   浮点型:float(4)、double(8)
   字符型:char(java中2个字节)
        Java中,只要是字符,不管是数字还是英文还是汉字,都占两个字节。
        原因:Java编译器默认使用Unicode编码,因此2字节可以表示所有字符。
   逻辑型:boolean(1个或者4个)
        1个字节
        表现阶段不同,jvm运行当int用(4个字节)
   数字如果是有正负之分(有符号的数字),二进制中的最高位代表符号位;0代表正数,1代表负数(计算机中只有加法,减法需转成补码运算)
(1个字节有8位,最高位代表符号位,其余7位才代表数字)
       
举例:float:4字节—32位
1                8位                  23位
符号位     指数位               尾数位
          -2^128~2^127       2^23
          -10^38~10^38       10^7
                                        小数位数最多7位,最后1位不准确
                                         
基本数据类型和引用数据类型的区别
存储上的区别:基本数据类型是存放在栈中的简单数据段;引用数据类型是存放在堆内存中的对象,在栈内存中存放的是堆内存中具体内容的引用地址,通过这个地址可以快速查找到对象;
传递方式:基本变量类型在方法中定义的非全局基本数据类型变量,调用方法时作为参数是按数值传递的;引用数据类型变量,调用方法时作为参数是按引用传递的,传递的是引用的副本;
比较上的区别:基本数据类型的比较是值;引用类型比较的是地址


4.变量
   4.1变量的声明(定义)形式:数据类型 变量名;
    只声明变量,不为变量赋值,该变量无法使用
    重新赋值就会将原来的值覆盖掉  
    打印时,双引号中的内容原样打印,变量名打印的是变量值      System.out.println("a = "+ a);    
    有双引号参与的+法运算,是拼接动作   例如"10" + 1 = "101"    
    4.2变量的其它声明方式
        int x,y=0,z,q;      int o=7,i=100;
        数字后面跟着L或者l,代表该数字的类型是长整型long      long l = 100L;
short s =23;       eg: short s =23s;  此方式错误 
        小数后面不加f,该小数的类型就是double  double d = 1.5;或者double d = 1.5d;
小数后面加f,该小数的类型才是float        float f = 1.1234567f;
        字符类型:在单引号''中必须是一个字符,不能多也不能少      char ch = '张';
""字符串   ''字符char
        逻辑型 布尔型:值只能是true或者false      boolean bool = true;
        在同一个花括号{}中,声明变量时,变量名不能重复    eg: (String[] args)里的args也不能重复       4.3变量名
        代表了一个内存地址,由于内存地址是一个数字,不方便记忆,并且也不能直观的知道该内存中存储的数据代表什么,所以通过变量名为它起一个有意义的名字,既方便记忆,也有具体含义
        必须遵循的命名规范:
变量名只能由数字、字母、下划线、$组成  
不能以数字开头    eg:int _ = 10;  (java中可以,有些语言_另作它用) 
        约定俗成的规范:
见名知义:看到变量名就知道它的含义
小驼峰命名方法:首字母小写,从第二个单词开始,每个单词的首字母大写    eg:myName、  findByName


类型转换
1.强制类型转换(显式转换):表数范围大的类型转换为表数范围小的类型
  eg: int x = 128;   byte y = (byte)x;   System.out.println("y = " + y);
2.隐式转换:表数范围小的类型转换为表数范围大的类型
    eg:   long z = x;      float fl = z;
    格式:(要转换成的类型)要转换类型的数据;       int x = 128;   byte y = (byte)x;    System.out.println("y = " + y);
    char类型和数字之间的转换      char cha = '王';   int word = cha;   System.out.println(word);        29579
ASCII码表:将键盘上的所有的字符,都有一个对应的数字      'A'-065  'a'-097  '0'-048
char类型无符号位,java中只有2个字节,最大到65535
       cha = 40000;   System.out.println(cha);            鱀
    布尔类型不能和其它类型进行类型转换
    int test = (int)true;   boolean n = (boolean)0;      程序错误
   如果数字是以0x开头,代表十六进制的数字,在十六进制中10-15对应的是A-F
         16进制    int s = 0X123F;或者 int s = 0x123f;   (大小写同步)
   数字以0开头,代表8进制的数字,例如012代表8进制的10       s = 012;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值