要理解类型转换,可以这样想象,大脑前面是一篇内存,源和目标分别是两个大小不同内存块(由变量及数据的类型来决定),将数据源赋值给目标内存的过程,就是用目标内存块尽可能多地套取源内存中的数据

以下内容涵盖:

  • 基本数据类型

  • 基本数据类型变量间转换

  • 基本数据类型与String间转换

  • 进制与进制间的转换

一、变量的基本知识点

  • 变量的使用:

    • java定义变量的格式:数据类型变量名 =变量值;

    • 变量必须先声明,再赋值(初始化变量),后使用

  • 变量的概念:

    • 内存中的一个存储区域

    • 该区域的数据可以在同一类型范围内不断变化变量是程序中最基本的存储单元。包含变量类型、变量名和存储的值

  • 变量的作用:

    • 用于在内存中保存数据

  • 使用变量注意:

    • Java中每个变量必须先声明,后使用使用变量名来访问这块区域的数据

    • 变量的作用域:其定义所在的一对{}内

    • 变量只有在其作用域内才有效

    • 同一个作用域内,不能定义重名的变量

class VariableTest{public static void main(String[] args){//变量的定义int myAge = 12;//变量的使用System.out.println(myAge);//变量的声明int myNumber;//变量的赋值myNumber = 1001;System.out.println(myNumber);}
}

二、变量按照数据类型来分

  • 基本数据类型:

  • 整型:byte\short\int\long

  • 浮点型:float\double

  • 字符型:char

  • 布尔型:boolean

  • 引用数据类型:

  • 类(class)

  • 接口(interface)

  • 数组(array)

三、变量在类中声明的位置

成员变量 vs 局部变量

class VariableTest1 {public static void main(String[] args) {//1.整型:byte(1字节=8bit) \ short(2字节) \ int(4字节) \ long(8字节)// byte范围:-128 ~ 127//byte b1 = 12;byte b2 = -128;//b2 = 128;  编译不通过System.out.println(b1);System.out.println(b2);// 声明long型变量,必须以"l"或者"L"结尾// 通常定义整型变量时,使用Int型short s1 = 128;int i1 = 1234;long l1 = 3141414L;System.out.println(l1);/*
1.整数类型:byte、short、int、long Java各整数类型有固定的表数范围和字段长度,不受具体OS的影响,以保证java程序的可移植性。java的整型常量默认为int型,声明long型常量须后加'l'或'L'java程序中变量通常声明为int型,除非不足以表示较大的数,才使long500MB 1MB = 1024KB 1KB= 1024B B= byte?bit?
bit:计算机中的最小存储单位。byte:计算机中基本存储单元。
*/
/*
2.浮点类型:float、double与整数类型类似,Java浮点类型也有固定的表数范围和字段长度,不受具体操作系统的影响。
浮点型常量有两种表示形式:十进制数形式:如:5.12512.0f
.512(必须有小数点)科学计数法形式:如:5.12e2512E2100E-2
float:单精度,尾数可以精确到7位有效数字。很多情况下,精度很难满足需求。
double:双精度,精度是float的两倍。通常采用此类型。
Java的浮点型常量默认为double型,声明float型常量,须后加‘f’或‘F’.
*/double d1 = 123.3;System.out.println(d1 + 1);float f1 = 12.3F;System.out.println(f1);
//3.字符型:char(1字符=2字节)
//①定义char型变量,通常使用一对' ',内部只能写一个字符char c1 = 'a';//编译不通过//c1 = 'AB';System.out.println(c1);char c2 = '1';char c3 = '中';char c4 = 'お';System.out.println(c2);System.out.println(c3);System.out.println(c4);
//②表示方式:1.声明一个字符2.转义字符3.直接使用Unicode值来表示字符型常量char c5 = '\n'; //换行符c5 = '\t'; //制表符System.out.print("hello" + c5);  System.out.print("world");char c6 = '\u0043';    //使用Unicode值表示字符型常量(0043=C)System.out.println(c6);//4.布尔型:boolean
//只能取两个值之一:true、false
//常常在条件判断、循环结构中使用boolean isMarried = true;if(isMarried){System.out.println("你就不能参加\"单身\"part了!\n很遗憾!");}else{System.out.println("你可以多谈谈女朋友!");}}
}

四、基本数据类型之间的运算规则

前提:这里讨论只是7种基本数据类型变量间的运算。不包含boolean类型的。

1.自动类型提升:byte、short、int--> long--> float--> double char--> int--> long--> float--> double结论:当容量小的数据类型的变量与容量大的数据类型的变量做运算时,结果自动提升为容量大的数据类型。特别的:当byte、char、short三种类型的变量做运算时,结果为int型
2.强制类型转换(又称显式类型转换):说明:此时的容量大小指的是,表示数的范围的大和小。比如:float容量要大于long的容量
当把高精度的变量的值赋给低精度的变量时,必须使用显式类型转换运算语法:(类型名)要转换的值例如:int a = (int)45.23; //此时输出a的值为45long y = (long_456.6F; //此时输出y的值为456int b = (int)'d'; //此时输出b的值为100
//*********************************************************当把整数复制给一个byte、short、int、long型变量时,不可以超出这些变量的取值范围,否则必须进强制类型转换。例如:byte b = (byte)129; //结果为-127
  • 有多种类型的数据混合运算时,系统首先自动将所有数据转换成容量最大的那种数据类型,然后再进行计算。

  • byte,short,char之间不会相互转换,他们三者在计算时首先转换为int类型。

  • boolean类型不能与其它数据类型运算。

  • 当把任何基本数据类型的值和字符串(String)进行连接运算时(+),基本数据类型的值将自动转化为字符串(String)类型。

五、String类型变量的使用

  1. String属于引用数据类型,翻译为:字符串

  2. 声明String类型变量时,使用一对""

  3. String可以和8种基本数据类型变量做运算,且运算只能是连接运算:+

  4. 运算的结果仍然是String类型

class StringTest{public static void main(String[] args) {String s1 = "Hello World!";System.out.println("s1");String s2 = "a";String s3 = "";int number = 1001;String numberStr = "学号:";String info = numberStr + number; //   + 连接运算System.out.println(info);boolean b1 = true;String info1 =  info + b1;System.out.println(info1);//****************************************System.out.println("----------------实例1--------------------");char c = 'a'; //97    A:65int num = 10;String str = "hello";System.out.println(c + num +str); //107helloSystem.out.println(c + str + num); //ahello10System.out.println(c + (num + str)); //10helloaSystem.out.println((c + num) + str); //107helloSystem.out.println((str + num) + c); //hello10aSystem.out.println("----------------实例2--------------------");//* *System.out.println("*   *"); //*       *System.out.println('*' + '\t' + '*'); //93System.out.println('*' + "\t" + '*'); //*       *System.out.println('*' + '\t' + "*"); //51*System.out.println('*' + ('\t' + "*")); //*       *System.out.println("----------------实例3--------------------");//String str1 = 123; //编译不通过String str1 = 123 + "";System.out.println(str1); //"123"//int num1 = str1;//int num1 = (int)str1; //"123" int num1 = Integer.parseInt(str1); System.out.println(num1);}
}

 六、进制与进制间的转换

Java变量/变量运算/变量转换相关推荐

  1. 7.Java中变量的隐式转换以及强类型转换

    1.变量的相加,(变量的数据类型一致),直接运算即可!          结论:         Java中变量的 隐式转换(数据类型的默认类型提升)         byte,short,char- ...

  2. Java输出、变量、数据类型及其转换

    20190701(输出.变量.数据类型及其转换) 标签: java #输出命令 System.out.println("徐凤年"+"两袖青蛇"+"剑开 ...

  3. java为什么复制数组会减一_如果从数组中复制了Java,为什么Java需要对最终变量进行显式强制转换?...

    从以下代码开始- byte foo = 1; byte fooFoo = foo + foo; 当我尝试编译此代码时,会得到以下错误- Error:(5, 27) java: incompatible ...

  4. 学习 尚硅谷-宋红康 Java基本语法(上): 变量与运算符

    关键字 文章目录 关键字 保留字(reserved word) 标识符(Identifier) 变量 运算符 赋值运算符 比较运算符 逻辑运算符 位运算符 三元运算符 运算符的优先级 关键字(keyw ...

  5. Java语言基本语法————变量和常量数据类型

    变量 变量的概念: 内存中的一个存储区域 该区域有自己的名称(变量名)和类型(数据类型) Java中每个变量必须先声明,后使用 该区域的数据可以在同一类型范围内不断变化  定义变量的格式:数据类型   ...

  6. java的常量和变量_JAVA-常量和变量

    常量和变量 变量:内存中一块存储空间,可保存当前数据.在程序运行过程中,其值是可以改变的量. 1)必须声明并且初始化以后使用(在同一个作用域中不能重复声明变量)! 2)变量必须有明确类型(Java是强 ...

  7. Java基础语法之变量、运算符、流程控制、数组和方法等基础语法

    变量.运算符.流程控制.数组和方法等基础语法.Java程序的执行流程,符合Java语法规则的程序. 1.1.1 Java初识 对Java进行简单介绍,Java程序如何执行,以及Java程序的结构. J ...

  8. 02 Java基础语法(变量+数据类型+运算符)

    Java基础语法 2 基础语法 2.1 二进制(复习总结) 进制转换(二进制 八进制 十进制 十六进制) 2.2 变量 2.2.1 变量定义 2.2.2 使用变量 2.2.3 声明变量的3种方式 2. ...

  9. 【天天Java系列】02_变量与运算符

    文章目录 1.关键字(keyword) 2.标识符 3.变量 3.1为什么需要变量? 3.2初识变量 3.3Java中变量的数据类型 3.4 变量的使用 3.4.1 变量的声明 3.4.2 变量的赋值 ...

最新文章

  1. C#调用非托管代码找不到入口点解决办法
  2. 方法总比困难多_只是为了生活
  3. 如何使用Web Service新建和更新Wiki页面的内容
  4. IT从业者进阶指南:如何提升自身的不可替代性
  5. HTML5/CSS3系列教程:使用SVG图片
  6. Kali Linux 从入门到精通(二)-安装
  7. FTP 编写 4:命令解析
  8. 【写作技巧】如何写开题报告?
  9. win10系统自带图标/壁纸位置
  10. 电源功耗压力测试软件,整机功耗测试_机箱电源新闻-中关村在线
  11. 零售的哲学 零售心理战 读后感--7-11这个产品不错!
  12. office表格怎么冻结前两行_冻结Excel表格中多行或多列的方法
  13. 5.3 react路由组件
  14. Jetpack Compose UI组件入门教程
  15. QQ群霸屏技术教程:不论霸屏技术,只谈QQ认证群
  16. 七夕节程序员应有的表白方式
  17. 【分享Oracle练习二】
  18. mysql 锁定表_mysql表锁定技术
  19. 瀑布模型的特点及优缺点
  20. 在windows下启动容器时,报 the input device is not a TTY. If you are using mintty, try prefixing the command

热门文章

  1. UNcrackable-Level1绕过root检测
  2. Python 卸载所有pip依赖包
  3. C语言数据结构+冒泡排序的实现
  4. 几款免费的数据恢复软件测试
  5. 基于PHP网上书店网上图书销售系统——计算机毕业设计
  6. JSP基础语法-动作(Action)
  7. 批量nii文件转换成jpg格式
  8. CSDN TOP1“一个处女座的程序猿“如何通过写作成为百万粉丝博主
  9. vivado [Runs 36-335] DCP is not a valid design checkpoint问题解决方法
  10. 测试开发工程师面试总结(一)——Java基础篇