java学习笔记(一)数据类型

基本数据类型 8个

类型 数量 数据类型 字节祥情
整形 4 byte 8bit
short 16bit
int 32bit
long 64bit
浮点型 2 float 32bit
double 64bit
字符型 1 char

16bit 2字节 Unicode编码 0-65535

布尔型 1 boolen 1bit  true false

1. 整型

          1.byte
               字节型------>8个bit 敏感单元位
               1byte == 8bit 0 0000000 256种组合
               用第一个bit位置来记录符号 0正数 1负数
               数值的范围 -2的7次方 ~ 2的7次方-1
                                                  -128 ~ 127
         2.short    
               2字节 == 16bit     65526种                   -32768     32767
          3.int
               4字节 == 32bit          -2147483648      2147483647
          4.long
               8字节 == 64bit

2.浮点

    1.float
         4字节 == 32bit
         0 000000000 00000000000000000000
    2.double

字符char

字符? ‘a’ ‘+’ ‘我’ ‘5’
字符中数字和整数的数字冲突
为了以示区分 每一个字符的前后各加单引号
为什么英文和符号和数字是一个字节
为什么中文是两个字节?
ASCII 美国信息交换标准代码
a------00000000------97
a------00000000------97
a------00000000------97
字母 数字 符号
26*2 + 10 + 100 字节256种组合

布尔型 boolen

引用数据类型

数组[]    类class(抽象类abstract class)     接口interface    枚举enum   注解@inte

常量

常量代表的是程序运行过程中  不能再次改变的值

###常量的作用*

1. 固定的值 代表计算古城中经常用到的值
        变于程序计算
        圆周率 3.1415926…
  2. 用来代表一个含义
        UP==> 1 2 3 4 分别代表上下左右四个方向
        
###什么样的值算是常量???
  1.固定不变的值 算作常量
    1 3.14 ‘a’ true
    可以认为所有的基本类型的值 固定不变 是常量
    
  2.特殊的常量
    “abc” —>String
    String是一个引用数据类型,它的值很特殊 可以简单的视作常量
    
  3.自己创建的空间 存储一个值 让他固定起来 不能改变
    fina int UP=1;

变量

变量指的是 程序执行过程中可以改变的
  变量是一个内存空间(小容器)
  变量空间在创建(声明)的时候 必须指定数据类型 变量空间的名字
  变量的空间  里面只能存储一个内容(值 引用)
  变量空间的内容可以改变

创建变量时 需要注意命名的问题

命名的规则

字母(大小写敏感感) 数字(0-9不允许开头) 符号(英文符号_ $) 中文(不推荐)

命名的规约

类名字 首字母大写 如果两个以上的单词  所有首字母大写
        SuperPerson
    变量名 首字母小写 如果两个以上的单词  之后的首字母大写
        superPerson
        遵循驼峰式命名规约
    所有的名字都需要见名知义
        为了增强程序的可读性

变量如何创建/声明

数据类型 变量名字;
  int a;
  String b;

需要注意:
  变量是一个空间 可以只创建空间 里面不存放内容
  变量空间创建后是没有默认内容 空的
  空的变量空间不能拿来使用 编译错误
  
  byte x; //声明一个变量空间 空间的名字是x 空间内要求存储的类型是byte整数
  x = 1; //讲一个1赋值到x空间内进行存储
  
  计算机底层做了什么事情
  1.x是什么? 变量空间 存在哪儿?
  2.1是什么? 1是常量 存在哪儿?
  3.=是什么? =是赋值 做了什么?
  
  计算机的硬件组成
  主板 cpu 声卡 显卡 网卡 电源
  内存 硬盘
  1.硬盘上创建了一个文件 Test.java
  2.文件中的内容是我们编写的源代码(跟计算机发送指令)

public class Test{
     public static void main(String[] args) {
         byte x;
         x=1;
     }
}
 

3.将Test.java源文件—>编译---->Test.class
      內容 我们看不懂 字节码 留给计算机识别
  4.执行---->内存中执行
      将硬盘上的Test.class内容 加载到内存里
  5.我们写好的指令 执行内存的空间 赋值 变化…
![此处输入图片的描述][1]

注释:

1.单行注释
  //
  2.多行注释
  /*
  
  /
  3.文档注释 类和方法上
  /
*
  
  */
  
 ==================================================
 
 float e=3.4F;
      从double转化到float会有损失
      1 3.4 常量值
      存储在常量缓冲区中的
      常量值的存储形式肯定不是十进制 是以二进制形式存储
      1----> 32bit(int)
      3.4 ----> 64bit(double)
     byte a = 1;
     1---->32bit
     00000000 00000000 00000000 00000001
     a---->8bit
     00000001
     =赋值的时候做了一个自动的决定 自动类型转化 即a的值在范围内-128 至127
 long d = 2147483648L;
     -2147483648 2147483647 是int类型的取值范围
     如果创建的常量值超过以上范围
     程序编译检测的时候会认为 数字太大
     如果我们真的需要那么大的数字 必须在后面加L告知
    
 字符   字符串
 char   String
 基本   引用
 ‘a’   “a” “abc” null

 public class Test2{
       public static void main(String[] strs){
         byte a=1;   //
         short b=2;
         int c=3; //-2147483648  2147483647    
         long d=2147483648L;   //超过int取值范围 加L 告诉编译器超过了int取值范围 为超过可不加
         float e=3.4F;
         double f=4.5;
         char g ='a' ;
         boolean h = true;
         

       }
}

数据类型之间的转化问题

整型
  byte  short  int  long
浮点
  float  double
字符
  char
布尔型
  boolen
byte a=1; //8bit  -128 ~ 127       
int b=a; //32bit
      食堂吃饭
      一碗米饭  2两碗   1两米饭
            4两碗
int a=1;
byte b=(byte)a; //127 (byte) 强制类型转换
      a----> 4两碗  1两米饭/3两空气 空气强制砍掉一部分
      b----> 2两碗  1两米饭/1两空气
00000000 00000000 00000000 00000001
00000001----只保留最后的8个bit位
      
      
int a=1000; //编译—运行
byte b=(byte)a; //127 (byte) 强制类型转换
      a----> 4两碗  3两米饭/1两空气 空气强制砍掉一部分
      b----> 2两碗  1两米饭/1两空气 -24
00000000 00000000 00000011 11101000 — 十进制—>二进制 除以2取余数 余数倒叙排列

int  a = 1; //32bit
float b = a; //32bit 可以 b = 1.0; 精确程度

long a = 1; //64bit
float b = a; //32bit

char—字符----‘a’----0001010101—97----int
char x = ‘a’;
int y = x; //??? y—>97

类型之间的转换问题

1.同种数据类型之间是可以直接进行赋值操作
    int a=1; int b=a; || float x=3.4; float y=x;
2.数据类型不同的空间 之间的赋值 ---->转换的问题
   同种大数据类型之间才能发生转换
     基本类型<---->基本类型之间 可以直接转换(自动 强制)
     引用类型<---->引用类型之间 可以直接转换(自动 强制—上转型 下转型)
     基本类型<---->引用类型之间 不可以直接转换(间接—包装类/封装类)
3.保证大数据类型一致的前提下      
   基本类型----基本类型
    小数据类型相同
     都是整型 都是浮点
       大空间变量可以直接存储小空间的数据
       小空间变量不可以直接存储大空间的数据(需要强制类型转换)
       转换过程写法都好用 如果转换的过程中数值的范围超过边界 可能会有损失
       byte a = 1; int b = a; //自动直接转化就可以
       int a = 1; byte b =(byte)a; //需要强制类型转换
       float x=3.4F; double y = x; //自动直接转化
       double x=3.4; float y = (float)x; //强制转换
       如果发现强制转换之前的数值比较大 强制转换这件事情是可以做
       int a=1000;   byte b=(byte)a;  //编译好用 执行后 b存放的值一定发生变化
    小数据类型不同
      整型----浮点型
       两个比较精确程度 浮点型精确度更高 可以直接存放整数 反之需要强制转换(强行将小数点之后的部分去掉 只保留整数)
       任何一个浮点型都可以直接存放一个整型的值
       int a = 1;fload b = a; //直接自动转化
       float a =1.0F; int b = (int)a; //强制类型转换
      整型----字符型
       每一个字符都对应着一个Unicode码 a–97
       char a = ‘a’; int y=x;    //自动转化 y–97
       int x = 97; char y =(char)x; //强制的转化
    * 布尔类型很特殊
       不能与其他基本类型发生转化
       
   引用类型之间后续…

发布了30 篇原创文章 · 获赞 0 · 访问量 6664

猜你喜欢

转载自blog.csdn.net/qq_37710756/article/details/103113770