JAVA-1

91 篇文章 1 订阅

数据类型:

  • 基本数据类型
  1. 整型 byte(1字节,8个bit,都是敏感单元位) short int long
  2. 浮点型 float double
  3. 字符型char
  4. 布尔型 boolean 1bit true false
  • 引用数据类型
  1. 数组
  2. 类class(抽象类abstract class)
  3. 接口interface
  4. 枚举enum
  5. 注解@interface

常量

  • 程序在运行过程中不能再次发生改变的值
  • 作用
  1. 便于程序计算,直接采用
  2. 代表一个含义

变量

  • 在程序执行过程中可以进行改变的量,变量是一个内存空间,变量空间在创键时候,必须指定数据类型,变量空间名字,变量空间里面只能存储一个内容,变量空间内容可以改变
  • 变量空间创建后没有默认的内容,空的变量空间不能拿来使用,编译错误
  • 计算机底层对变量赋值的执行:
  1. 硬盘上创建java文件,文件中内容是我们编写的源代码,向计算机里面发送指令
  2. 将java文件进行编译,形成class(默认执行过程,类加载器,将硬盘中的字节码文件中的信息搬运到内存中)
  3. 执行,在内存里面执行,加载到内存里面,执行内存的空间,将方法区里面的常量区的值进行复制
内存:
一区:栈内存:先进后出,后进先出
二区:堆内存:
三区:方法区: 常量区;方法区(类模板);静态元素区
float e=3.4从double转化到float会有损失
3.4常量值,常量的存储形式不是十进制而是二进制形式存储
1  32bit(int)
3.4 64bit(double)
解决方法:float e=3.4F
byte a=1又为什么行呢:byte只有8个bit
赋值符号能够将前面无用的3个字节清除

数据类型的转化问题及运算符

  • 同种数据类型之间是可以进行赋值操作

  • 基本类型之间可以直接转换,引用类型之间可以直接进行转换,但是基本类型和引用类型之间不可以直接进行强制转换(通过包装类)

  • 大数据类型空间可以直接接受小数据类型的值(自动转换),小数据类型空间不可以直接接受大数据类型的值(强制类型转换)

  • 布尔类型不能与其他的基本类型转,只有true和false,但是和c语言不同,c语言中可以和0、1互换

  • & | ^ ! &&短路与 ||短路或

    && 短路
    当前面为false时候激发,短路的是&&后面所有计算过程,比&稍微好一点,但是结果是一样的
    & 可以视为逻辑运算,也可以视为位运算 &&只能当作逻辑运算来用
    || 短路或
    当前面为true时候激发,短路的是。。。。。。。,和|结果是一样的
    
  • 位运算:& | ^ ~ << >> >>>

  • 原码,反码 补码 二进制表示数字

    6
    原码:000000110
    反码:000000110
    补码:000000110
    -6
    原码:100000110
    反码:111111001
    补码:111111010
    计算机中不管是正数还是负数,存储的形式都是以补码的形式来存储
    >>保留符号位置1 填1
    >>>不保留符号
    

增强型for

语法为:

for (Type value : array) {

    expression value;

}

//以前我们这样写:

void someFunction ()

{

    int[] array = {1,2,5,8,9};

    int total = 0;

    for (int i = 0; i < array.length; i++)

    {

        total += array[i];

     }

    System.out.println(total);

 }

//现在我们只需这样写(和以上写法是等价的):

void someFunction ()

{

    int[] array = {1,2,5,8,9};

    int total = 0;

    for (int n : array)

   {  

       total += n;

    }

    System.out.println(total);

}

虽然看不到下标,但是都是对数组进行遍历

基本数据类型和引用数据类型在内存结构上的区别

  • int[] x= new int[]{10,20,30};

    //栈内存中的小容器,类型定义了只能存储这种东西,容器中只能存一份
    //见到new关键字,相当于在堆空间里面申请开辟一块新的空间
    //数组在堆内存里面是一段连续的地址
    //x里面存储的是hashcode
    
    
  • 基本类型中变量存储的是值,,传递的是值,一个变量改变,另一个不变

  • 引用数据类型存储的是地址,传递的是地址

[外链图片转存失败(img-FCvu06As-1562333099597)(/home/ach/Pictures/2019-02-28 19-58-31 的屏幕截图.png)]在这里插入图片描述

多维数组

  • 数据是用来存储一组相同类型数据的容器

  • 数组内部存储的元素可以是基本数据类型也可以是引用数据类型,数组本身就是一个引用数据类型

    静态初始化实例:
    int [][] array = {{1,2},{1,2,23},{4,5,6}};
    动态初始化:
    int [][] array ={{},{},{}}
    
    
  • 二维数组的存储结构

    int[][] array = new int[][]
    二维数组传递的也是地址,二维数组的存储结构是树
    

    [外链图片转存失败(img-eMnwOVLG-1562333099597)(/home/ach/Pictures/2019-03-02 21-15-51 的屏幕截图.png)]在这里插入图片描述

  • 如果小数组在初始化的时候没有指定长度,就没有小数组存在;

  • 二维数组传递

      public static void main(String[] args) {
            int[][] array = new int[3][2];
            array[0][0] = 10;
            array[0][1] = 20;
            array[1] = array[0];
            array[0] = new int[4];
            array[0][0] = 100;
            System.out.println(array[0][0]);
        }
    

    [外链图片转存失败(img-RkqTeEzw-1562333099598)(/home/ach/Pictures/2019-03-02 21-28-16 的屏幕截图.png)]
    在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值