一丶变量的基本概念

  1.什么是变量

    (1).内存中的一个存储区域

    (2).该区域有自己的名称(变量名),和类型(数据类型)

    (3.)该区域的数据可以在同一类型范围内不断变化(定义变量的主要目的是因为数据的不确定性)

  2.为什么要定义变量

    用来不断存放同一类型的常量,并可以重复使用

  3.变量的类型

    

    一般使用使用Int,byte也比较常用  因为他是数据的最小单元

二丶类型的提升&强制转换

  1.两个不同类型无法进行 计算 ,因为内存空间大小不一致

  2.除非是数值类型,因为可以类型自动提升

  

  注:图中是byte类型自动类型提升为整型  音为byte类型是一个八位,int 是四个八位,所以可以自动提升,反之,int 自动类型转换byte则不可以 ,因为会丢失精度

   如果必须要将byte转换为Int 类型 ,则需要强制类型转换(int有四个8位,若要强制转为为byte 则会把前面三个8位舍弃掉,丢失精度,慎用)

三丶类型运算细节

  

//1
byte a=4;
a=3+7;

//2
byte b=3;
byte c=7;
a=b+c; System.out.println(a);

1.第一代码块执行过程是首先声明变量,判断赋给变量的值是否在byte类型的取值范围内(-128~127)如果在,则会自动将int类型转换为byte类型(也就是去掉前面的3个8位),第二行复制代码,因为3和7的和是整型,所以在赋值时也是先判断赋给a的值是否在byte类型范围内,如果存在,则赋值给a,如果不存在则编译报错;

2.第二代码块同上,声明两个变量,然后把两个变量值相加,因为b和c是变量,变量的值是变化的,不确定的,因为无法再程序运行之前判断两个变量的值是否在byte取值范围内,所有会直接编译报错。

int a=5;
int b=Integer.MAX_VALUE;
int c=10;
a=b+c;
System.out.println(a);

1.而int 类型不会出现问题,因为整型计算得到的所有结果都是整型,如果运算结果大于整型取值范围,则会去掉高位,保留32位

  

    

java语言基础-变量的更多相关文章

  1. Java语言基础---变量与数据类型

    变量的作用域 java用一对大括号“{}”作为语句块的范围,称为作用域.作用域中的变量不能重复定义:离开作用域,变量所分配的内存空间将被JVM所收回. 基本数据类型的包装类 java为基础数据类型提供 ...

  2. java语言基础02

    一.Java语言基础(常量的概述和使用)(掌握) 1:什么是常量 就是在程序的执行过程中其值不发生改变的量. 2:Java中常量的分类 (1):字面值常量 (2):自定义常量(面向对象部分讲解) 3: ...

  3. day02<Java语言基础+>

    Java语言基础(常量的概述和使用) Java语言基础(进制概述和二,八,十六进制图解) Java语言基础(不同进制数据的表现形式) Java语言基础(任意进制到十进制的转换图解) Java语言基础( ...

  4. Java之--Java语言基础组成(关键字、标识符、注释、常量和变量、运算符)

    Java语言基础组成-关键字.标识符.注释.常量和变量.运算符 Java语言由8个模块构成,分别为:1.关键字:2.标识符(包名.类名.接口名.常量名.变量名等):3.注释:4.常量和变量:5.运算符 ...

  5. 第二十一节:Java语言基础-关键字,标识符,注释,常量和变量,运算符

    Java语言基础-关键字,标识符,注解,常量和变量,运算符 class Demo { public static void main(String[] args){ System.out.printl ...

  6. Java学习总结(二)----Java语言基础

    1.     Java语言基础 2.1 关键字 定义:被java语言赋予特殊含义的单词 特点:关键字中的字母都为小写 用于定义数据类型的关键字 class,interface,byte,short,i ...

  7. Java之--Java语言基础组成—数组

    Java语言基础组成-数组 Java语言由8个模块构成,分别为:关键字.标识符(包名.类名.接口名.常量名.变量名等).注释.常量和变量.运算符.语句.函数.数组. 本片主要介绍Java中的数组,数组 ...

  8. Java之--Java语言基础组成—函数

    Java语言基础组成-函数 Java语言由8个模块构成,分别为:关键字.标识符(包名.类名.接口名.常量名.变量名等).注释.常量和变量.运算符.语句.函数.数组. 本片主要介绍Java中的函数,函数 ...

  9. Java语言基础(九)

    Java语言基础(九) 一.自增运算(++) 自减运算(--) i++ 就是将i+1再赋给 i i-- 是将i-1再赋给 i 对变量i,j来说,i++ 或++i 这里没什么区别,都是将i的值加1后,再 ...

随机推荐

  1. OpenStack之Keystone模块

    一.Keystone介绍 OpenStack Identity(Keystone)服务为运行OpenStack Compute上的OpenStack云提供了认证和管理用户.帐号和角色信息服务,并为Op ...

  2. [pixhawk笔记]6-uORB流程及关键函数解析

    本文中将结合代码.文档及注释,给出uORB执行流程及关键函数的解析,由于uORB的机制实现较为复杂,所以本文主要学习如何使用uORB的接口来实现通信.回到上一篇笔记中的代码: #include < ...

  3. QT控件学习

    一.QPushButton 1.设置背景色: ui->pushButton->setStyleSheet("background-color: rgb(170, 0, 255)& ...

  4. 快用Visual Studio(二)- 界面,功能区与命令面板

    Layout Editing Explorer Saving Searching Command Palette File Navigation File and Folder Based Files ...

  5. HDFS的回收站 && 安全模式

    回收站机制 1). HDFS 的回收站机制由 core-site.xml 中 fs.trash.interval 属性(以分钟为单位)设置,默认是 0,表示未启用.注意:配置数值应该为1440,而配置 ...

  6. hadoop随手笔记

    1.Hadoop Streaming 是为了方便不太熟悉java用户编写MR程序的工具.用户可以将任何可执行文件(C++)或者脚本(python,ruby)作为Mapper/Reducer, 提高了效 ...

  7. journalctl 工具使用

    在Systemd出现之前,Linux系统及各应用的日志都是分别管理的,Systemd开始统一管理了所有Unit的启动日志,这样带来的好处就是可以只用一个 journalctl命令,查看所有内核和应用的 ...

  8. spark(四)yarn上的运行模式

    架构图 yarn-cluster yarn-client 区别 Yarn-cluster spark的driver运行在applicationMaster内,启动流程为: 这张图可能比较直观 Yarn ...

  9. Caffe cpu版本 Linux配置命令及搭建

    Caffee 安装过程 1.安装依赖包 $ sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-de ...

  10. Objective C NSString 编码成URL 特殊字符处理

    找了一下网上的教程都是使用类似以下代码,Xcode提示这个CoreFoundation不受ARC管理,所以折中的方式是添加__bridge. NSString *encodedValue = (__b ...