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

    1.计算机基础

      bit,即0或1

      byte字节,8位作为⼀个字节,字节是处理数据的基本单位

      1 byte = 8bits

      1KB = 1024 bytes

    2.八种基本数据类型

      byte: 8位,最⼤127,最⼩-128,节省空间,占⽤int类型的四分之⼀,默认 0
      short: 16位,最⼩-32768,最⼤32767,int类型的⼆分之⼀,默认是0
      int: 32位,最⼩-2147483648,最⼤ 2147483647,整数默认是int类型,默认是0
      long: 64位,最⼩-9223372036854774808,最⼤9223372036854774807,默认是0L,
      float: 浮点, 单精度32位, 默认0.0f
      double: 双精度64位, 浮点数默认位double类型,默认是0.0
      boolean: 1位,true或者false,默认是false
      char: 16位的 unicode字符,即两个字节表示⼀个字符 最⼩是 u0000 即0,做⼤ ufff 即65535 例⼦ char demo = 'A'
      类型转换 double > float > long > int > short > byte
        小转大可以直接转换,从大到小,需要强制转换,会有精度丢失。
      引用数据类型:Class创建的对象 或者 数组都是引⽤数据类型
        String :字符串对象,也是引⽤⼀种数据结构,⽤来存储同⼀类型之的集合数据类型
    3.数组
      数组:⼀种数据结构,⽤来存储同⼀类型之的集合,通过⼀个整形下标可以访问数组中的每⼀个值, 从0开始计算,记住,特别重要。内存中存储相同数据类型的连续的空间
    使用数组:
      声明数组变量时,需要指出数据类型和数组变量的名字
    //声明数组,但没有初始化
    int [] numbers;
    
    //使⽤new运算符创建数组
    int [] numbers2 = new int[100];

    new int[n]将会创建⼀个⻓度为n的数组

    //可以使⽤这两种形式声明数组,推荐第⼀种
    int [] numbers;
    int numbers2 [];

    数组初始化和匿名数组

    //初始化,数组的⼤⼩就是初始值的个数
    int[] numbers = { 1,2,3,4,5,6 };
    //匿名数组
    new int[] { 1,2,3,4,5,6 };

    注意:所有元素都初始化为0,boolean数组的元素会初始化为false。⼀旦创建了数组,就不能改变它的⼤⼩,数组需要初始化才可以操作,不能索引越界。

    一维数组

    int [] numbers = {1,2,3};
    String[] str=new String[2];
    String[] str= {"apple", "xdclass", "cat", "dog"};

    多维数组

    //创建并初始化
    int [][] numbers = {[1,2,3],[4,5,6],[7,8,9]}
    //创建
    int [][] numbers2 = new int[3][3];

    数组⾥⾯有很多⽅法,是⾃带的⽅法和属性

      获取数组⻓度的属性名称 length,使⽤就是 数组名.length

    5.java内存空间堆栈

      数据类型

        基本数据类型: byte,short, int,long, float,doble,boolean,char

        引⽤数据类型:即除了基本的变量类型之外的所有类型

      java在内存中堆(Heap)、栈(Stack)两块存储空间

      数据类型在内存中使用

        基本的变量类型只有⼀块存储空间(分配在stack中),

          传递的时候直接是值传递,

          对数据进⾏操作,不影响原先的值

        引⽤类型有两块存储空间(⼀块在stack中,⼀块在heap中)

          ⼀个对象在内存中会请求⼀块空间来保存数据,访问对象的时候不会直接是访问对象在 内存中的数据,⽽是通过引⽤去访问。

        引用:也是⼀种数据类型,保存的是内存的地址,引⽤是存储在 stack栈空间⾥⾯

        不同的引用可以指向同一个对象,一个对象可以有多个引用

    //
    int a=1;
    boolean flag=false;
    // s在栈中   new Student();在堆中
    Student s = new Student();
    Person p = new Person();

    引用后修正结果

      因为字符串、数组或者对象是引⽤类型,所以修改后正在的数据都会发⽣变化

    String a = "学习java";
     String b = "l love java";
     System.out.println(a);
     System.out.println(b);
     b = a ;
     System.out.println(a);
     System.out.println(b);
     a = "现在在学java基础";
     System.out.println(a);
     System.out.println(b);

    数据拷贝

    int [] a = {1,2,3};
     int [] b = a;
     System.out.println(Arrays.toString(a));
     System.out.println(Arrays.toString(b));
     b[0] = 0;
     System.out.println(Arrays.toString(a));
     System.out.println(Arrays.toString(b));

    数组是引⽤类型,所有的引⽤都是指向这个值的, 也就是这个对象

    变量类型

      类变量(静态变量):

       使⽤static声明的变量,可以直接使⽤ 类名.变量名访问
       ⼀个类不管创建了多少个对象,类只拥有类变量的⼀份拷⻉,数值默认值是0,布尔型默认值 是false,引⽤类型默认值是null
        
       ⽣命周期:在第⼀次被访问时创建,在程序结束时销毁

       声明为public类型,⼀般这样声明 public static final

       存储在⽅法区,和堆栈不⼀样的⼀个空间
    public class Student{
     public static final String PREFIX = "我是叫";
    }

    实例变量(属性)

      需要使⽤对象.变量名才可以访问

      对象被实例化之后,实例变量的值就跟着确定,可以是赋值,也可以是默认值

      ⽣命周期:在对象创建的时候创建,在对象被销毁的时候销毁

      访问修饰符可以修饰实例变量,⼀般是私有的,private修饰,然后通过⽅法来进⾏查看或者修改

    public class Student {
     //介绍前缀
     public static final String PREFIX = "我是叫";
    
     //年龄
     private int age;
    
     //姓名
     private String name;
    
     public int getAge() {
     return age;
     }
     public void setAge(int age) {
     this.age = age;
     }
     public String getName() {
     return name;
     }
     public void setName(String name) {
     this.name = name;
     }
    }

    局部变量

      ⽅法中的变量

      声明在⽅法、构造⽅法、语句块、形式参数等

      ⽣命周期:当它们执⾏完成后,变量将会被销毁

      访问修饰符不能⽤于局部变量

      局部变量没有初始值,必须初始化后才可以被使⽤

    public class Student {
     //介绍前缀
     public static final String PREFIX = "我是叫";
    
     //年龄
     private int age;
    
     //姓名
     private String name;
    
     public int getAge() {
     return age;
     }
     public void setAge(int age) {
     this.age = age;
     }
     public String getName() {
     return name;
     }
     public void setName(String name) {
     this.name = name;
     }
    
     //⾃我介绍⽅法
     public String introduce(){
     String content = PREFIX + name + ",年龄是" + age;
     return content;
     }
    }
    dayehui
  • 相关阅读:
    大三上周总结
    大三上周总结
    大三上周总结
    大三上周总结
    大三上周总结
    大三上周总结
    python+requests+unittest 搭建接口自动化测试框架(四)
    python+requests+unittest 搭建接口自动化测试框架(三)
    python+requests+unittest 搭建接口自动化测试框架(二)
    python+requests+unittest 搭建接口自动化测试框架(一)
  • 原文地址:https://www.cnblogs.com/zrh-960906/p/14053285.html
Copyright © 2011-2022 走看看