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

这里只讨论七种数据类型间的运算,不包含Boolean类型。

  1. 自动类型转换:
    范围由低到高:
    byte 、char、 short --> int --> long --> float --> double
    容量小的数据类型的变量和容量大的数据类型的变量一起运算,结果自动提升为容量大的数据类型。
    特别的,当byte、short、char三种类型的变量做运算时结果为int类型(eg:short 和short做运算用int接受)。

  2. 强制类型转换:

/*
强制类型转换
1,需使用强转符()
2,强制类型转换可能导致精度损失
*/class  VariableTest2
{public static void main(String[] args) {double d1=12.9;int i1=(int)d1;  //截断操作,只取整数部分System.out.println(i1);}
}

  1. 变量运算规则的两个特殊情况
    编码情况一:
    ①情形一:(编译通过)
class  VariableTest2
{public static void main(String[] args) {long l=123213;  //没有以 l结尾,竟然没有报错System.out.println(l);}
}

末尾少加l没有报错,原因是123213这个数默认是int型了,int型赋值给long型,属于自动类型转换。所以不报错。
②情形二:(编译不通过)

class  VariableTest2
{public static void main(String[] args) {long l=123213;  //没有以 l结尾,竟然没有报错System.out.println(l);long l1=213354655562;System.out.println(l);}
}

报错,213354655562已经超过了int的范围;即”long l1=213354655562l;“(若末尾加上l,就不会报错,可以完整输出)


注意
float f1=12.3;若此句末尾不加f,会报错,编译失败。因为12.3不加f默认为double型,double型向float转会报错,所以必须加f。

编码情况二:
整型常量默认类型为int型,浮点型常量默认为double型

class  VariableTest2
{public static void main(String[] args) {byte b=12;byte b1=b+1;  //编译失败float f1=b+12.3; //编译失败}
}

字符串类型String

①String不是基本数据类型,属于引用数据类型;
②声明时用一对"";
③String可以与8种基本数据类型变量做运算,且运算只能是连接运算(+),并且运算结果仍为String类型。

class StringTest
{public static void main(String[] args) {int number=1001;String numberStr="学号:";String info=numberStr+number;   //+为连接运算,拼一起boolean b1=true;String info1=info+b1;System.out.println(info1);}
}

  1. 练习
class StringTest
{public static void main(String[] args) {char c='a'; //A:65 a:97int num=10;String str="hello";System.out.println(c+num+str);//1o7helloSystem.out.println(c+str+num);//ahello10System.out.println(c+(num+str));//a10helloSystem.out.println((c+num)+str);//107helloSystem.out.println(str+num+c);//hello10a}
}

  1. 练习
    实现打印输出内容:* *(星号tab键星号):
class StringTest
{public static void main(String[] args) {System.out.println("* *");//√System.out.println('*'+'\t'+'*');//×:'*'对应一个Ascll码,与后面做的是加法运算,结果为int型,int再与后面运算仍未int型System.out.println('*'+"\t"+'*');//√:中间为String型,+表示连接运算,\t为制表符System.out.println('*'+'\t'+"*");//×:前面两个做一次加法运算,后面做一次连接运算System.out.println('*'+('\t'+"*"));//√:后面两项先运算,结果为string再与前面连接}
}

注:练习二中1和4最后都应该为int型(P60)

进制(常识,了解)

对应:

class BinaryTest
{public static void main(String[] args) {int num1=0b110;int num2=110;int num3=0127;int num4=0x110A;System.out.println("num1="+num1);System.out.println("num2="+num2);System.out.println("num3="+num3);System.out.println("num4="+num4);}
}

都呈现为10进制

最高位是符号位。0为正,1为负

十进制转化为二进制(除2取余的逆)例如:13–>1101
二进制转八进制(三个看作一位)及二进制转16进制(四个看作一位)
八进制转二进制(一个数拆成三位)及十六进制转二进制(一个数拆成四位)拼一起:

3 Java 基础__不同数据类型之间的运算及进制相关推荐

  1. 基本数据类型之间的运算

    基本数据类型之间的运算 相同数据类型之间 相同数据类型之间计算, 得到的一定是这个数据类型 int + int = int 不同数据类型之间 首先, 把小的数据类型自动转换成大的数据类型, 然后再进行 ...

  2. JAVA基础之变量(数据类型及其转换)

    变量 变量的概念: 内存中的一个存储区域: 该区域的数据可以在同一类型范围内不断变化: 变量是程序中最基本的存储单元.包含变量类型.变量名和存储的值. 变量的作用: 用于在内存中保存数据. 使用变量注 ...

  3. 【java基础06:数据类型】及拓展、转义字符、计算机二进制的表现形式

    目录 JAVA是强类型语言,所有的变量必须先定义才能使用. 计算机只认识二进制,那么计算机是怎么表示现实世界当中的文字的呢? 计算机二进制的三种表现方式:源码.反码.补码 char类型 整数型 整数型 ...

  4. Java基础:基本数据类型包装类

    1. 基本类型包装类概述 为了方便操作基本数据类型值,将其封装成了对象,在对象中定义了属性和行为丰富了该数据的操作.用于描述该对象的类就称为基本数据类型对象包装类. 将基本数据类型封装成对象的好处在于 ...

  5. 新的JAVA基础第一天---数据类型等

    内容 java基础知识, java流程控制语句, 常用包和类 ,数组操作, 面向对象的概念 ,异常处理 ,文件访问iO流, 数据集合操作, 集合框架 jDBC访问数据库 目标掌握基础 java语言简介 ...

  6. java基础之封装数据类型

    为什么要使用封装数据类型: Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面向对象的,很多地方都需要使用对象而不是基本数据类型.比如,在集合类中,我们是无法将int .doubl ...

  7. Java基础之基本数据类型

    前言:Java内功心法之基本数据类型,看完这篇你向Java大神的路上又迈出了一步(有什么问题或者需要资料可以联系我的扣扣:734999078) 变量就是申请内存来存储值.也就是说,当创建变量的时候,需 ...

  8. java基本数据类型自动转包装类,Java String和基本数据类型之间的转换(包装类)

    一.String 转化成 基本数据类型 利用基本数据类型对应的包装类的parseXxx() 或 valueOf() 方法 注意 : String 对象的字面量 是 数字类型.否则会报异常(Number ...

  9. Java基础知识(四) 基本类型与运算

    Java基础知识 基本类型与运算 1. Java提供了哪些基本数据类型 2. 什么是不可变类 3. 值传递与引用传递的区别 4. Math类中的round.ceil和floor方法的功能各是什么 5. ...

  10. 一、C语言基础[运行原理、数据类型、格式化输出、进制转换、优先级、运算符号]

    一.c语言执行流程 1.1 源文件 内容:程序员书写源代码 1.2 目标文件 内容: 编译器:源代码转换到目标文件中代码(此时没有绑定任何库) 链接器:为目标文件中代码绑定上库 注意: 3. 此过程如 ...

最新文章

  1. 第1条:考虑用静态工厂方法代替构造器
  2. python 3.5-安装python3.5
  3. webdriver(python)学习笔记一
  4. python可以在哪些平台安装_python都有哪些版本,如何在你的计算机上运行python?...
  5. RabbitMQ fanout交换机(生产者)
  6. 快速沃尔什变换(FWT)
  7. 50:树中两个结点的最低公共祖先
  8. 新增功能!Trello个人应用程序登陆 Microsoft Teams
  9. python松天笔记200304
  10. 零基础也可现学苹果Swift语言?太傻太天真
  11. Web开发秘方(WEB DEVELOPMENT RECIPES)[47.5MB] PDF扫描版
  12. js中innerHTML与innerText的用法与区别【转自http://blog.sina.com.cn/johnpu】
  13. python+Appium 滑动界面操作遇到取的元素宽度为负数
  14. 阿里云oss权限控制,上传下载测试
  15. http status code —— http 状态码
  16. 在计算机科学中算法指的是,算法 - 为什么斐波纳契数在计算机科学中具有重要意义?...
  17. CentOS 8 下载安装stress实际操作以及实际应用,以及遇到的问题
  18. 注册表怎么用计算机管理打开,如何打开电脑注册表编辑器?打开注册表的几种方式介绍...
  19. 2.5 新建一个工程
  20. 昆明市谷歌高清卫星地图下载

热门文章

  1. jQuery 遍历 - 同胞(siblings)
  2. 超级表格企业版:服务上万家中小企业,提升效率
  3. matlab 不等式组求解例子,matlab求解不等式组
  4. Photoshop基础学习-修改图片文字
  5. .NET Core、DNX、DNU、DNVM、MVC6学习资料
  6. 百度百科创建对于文案和措辞有什么要求?
  7. [OpenHarmony RK3568] (二)基础开发
  8. 微信企业号 sdk java_基于Java spring框架的微信企业号开发中关于js-sdk的配置
  9. 递归例题讲解 一本通1215:迷宫 答案解析
  10. Ubuntu 16.04下的美化配置过程