1.基本数据类型

java中是采用Unicode编码的,其一个字符占用两个字节,故java中字符char可以存储一个中文汉字

整数默认是int类型,浮点数默认是double类型

在定义long类型的变量时候要加上L,Float类型变量的时候要加上f

byte,short 在定义的时候,他们接受的其实是一个int类型的值,只是自己做了一个数据检测,如果不在byte 的范围内就会报错

例如: byte a = 130;

2.比较字节数

备注:1字节(Byte)=8位(Bit)

3.转换中的知识

java中整数类型默认的int类型;小数类型默认的double;

char 可以当做一种特殊的整数类型;

int无法转换为boolean;

小数类型转为整数类型,小数可能被舍弃,所有出现精度损失,所以需要强制转换;

boolean 类型不能转换成任何其它数据类型;

4.转换的类型

数据类型的转换,分为自动转换和强制转换。

1.自动转换:是程序在执行过程中“悄然”进行的转换,不需要用户提前声明,一般是从位数低的类型向位数高的类型转换

2.强制转换:必须在代码中声明,转换顺序不受限制 格式是: 目标数据类型 变量 = (目标数据类型) (被转换的数据)

                                                                                            byte c = (byte)  (a + b)   //a原本是byte类型   b原本是int 类型  运算后结果是int类型再强制转换
//没报错的原因:
//编译时候,进行检查,看赋值大小是否超过变量的类型所容纳的范围
//如果超过,报错:从int转换到byte可能会有损失,如果没超过,编译通过

float f3 = 100L; 这种情况,整数部分,可以直接赋值给float整数部分

float f1 = 100.9; 这种情况,因为默认的是double,如果这样转换,有可能失去小数点,必须强制转换

long l3 = 1000.9f; 小数转为整数,小数可能丢失,需要强制转换

int i2 = d2; //错误: 不兼容的类型: 从double转换到int可能会有损失
char c1 = 'a';
int i3 = c1; //自动转换
int i4 = 100;
//char c2 = i4;// 错误: 不兼容的类型: 从int转换到char可能会有损失

5 四则运算中的类型转换

1、如果两个操作数中有一个是double类型,另一个就会转换为double类型;

2、否则,如果有一个操作数是float,另一个就会转化为float;

3、否则,如果有一个操作数是long,另一个就会转换为long;

4、否则,两个操作数都将转换为int类型。

byte b1 = 10;
byte b2 = 11;
byte b3 = b1 + b2 //错误
//错误: 由上可知两个byte类型做加法出的数据类型是int类型,不兼容的类型: 从int转换到byte可能会有精度损失 (由大到小) byte b3 = (byte)(b1 + b2); //正确 利用强制转换是可以
byte b1 = 3, b2 = 4, b;
b = 3 + 4 //是对的 因为是常量3和4的计算,是先把结果计算出来,然后看结果是否再byte范围内,7是在byte的范围内,所以不报错

总结: 是变量运算,先看进行变量的类型提升

是常量运算,先把结果计算出来,看计算结果是否在定义的结果变量的类型范围内

java基本类型及其相互转换的更多相关文章

  1. java对象与xml相互转换 ---- xstream

    XStream是一个Java对象和XML相互转换的工具,很好很强大.提供了所有的基础类型.数组.集合等类型直接转换的支持. XStream中的核心类就是XStream类,一般来说,熟悉这个类基本就够用 ...

  2. java string类型的初始化

    以下基本上是java string类型最常用的三种方法 new string()就不介绍了  基本等同于第三种 String a;  申明一个string类型的 a,即没有在申请内存地址,更没有在内存 ...

  3. java 枚举类型分析

    最近做android开发,需要用到枚举值,这样可以连续赋值,我按之前c++那样书写,如下所示: public enum ColorSelect { RED_BAGE = 0, GREEN_BAGE, ...

  4. java double类型保留两位小数4种方法【转】

    4种方法,都是四舍五入,例: import java.math.BigDecimal; import java.text.DecimalFormat; import java.text.NumberF ...

  5. Java元组类型之javatuples

    转载:Java元组类型之javatuples 关于方法的返回值,经常需要返回2个值或多个值的一个序列,比如数据表的一条记录,文件的一行内容等.除了使用数组Array.集合(List.Set.Map)这 ...

  6. 【转】java枚举类型enum的使用

    原文网址:http://blog.csdn.net/wgw335363240/article/details/6359614 java 枚举类型enum 的使用 最近跟同事讨论问题的时候,突然同事提到 ...

  7. java浮点类型计算

    java浮点类型需要采用java.math.*这个工具包,这样的计算结果才是我们想要的.呵呵 import java.math.BigDecimal; import java.text.NumberF ...

  8. 【转】掌握java枚举类型(enum type)

    原文网址:http://iaiai.iteye.com/blog/1843553 1   背景 在java语言中还没有引入枚举类型之前,表示枚举类型的常用模式是声明一组具有int常量.之前我们通常利用 ...

  9. 转载 java枚举类型enum的使用 (原文地址:http://blog.csdn.net/wgw335363240/article/details/6359614)

    java枚举类型enum的使用 最近跟同事讨论问题的时候,突然同事提到我们为什么java中定义的常量值不采用enmu枚举类型,而采用public final static 类型来定义呢?以前我们都是采 ...

随机推荐

  1. 学习 Civil 3D二次开发从哪儿开始?

    1.1 从哪儿开始 对于多数的工程设计人员,不完全具备上节所述的各种条件.对于Civil 3D的应用可能比较熟悉:但对于计算机语言,只限于上学时所学的一点基础知识,步入工作岗位后与计算机语言基本无缘: ...

  2. Apache与Nginx动静分离

    概述 Nginx的静态处理能力很强,但是动态处理能力不足,因此,在企业中常用动静分离技术.动静分离技术其实是采用代理的方式,在server{}段中加入带正则匹配的location来指定匹配项 针对PH ...

  3. BZOJ3730震波——动态点分治+线段树(点分树套线段树)

    题目描述 在一片土地上有N个城市,通过N-1条无向边互相连接,形成一棵树的结构,相邻两个城市的距离为1,其中第i个城市的价值为value[i].不幸的是,这片土地常常发生地震,并且随着时代的发展,城市 ...

  4. LOJ2980 THUSC2017大魔法师(线段树+矩阵乘法)

    线段树每个节点维护(A,B,C,len)向量,操作即是将其乘上一个矩阵. #include<iostream> #include<cstdio> #include<cma ...

  5. 洛谷P1916 小书童——蚂蚁大战

    题目背景 小A在你的帮助下,开始“刷题”,他在小书童里发现了一款叫“蚂蚁大战”(又称蛋糕保卫战)的游戏.(你懂得) 题目描述 游戏中会出现n只蚂蚁,分别有a1,a2……an的血量,它们要吃你的蛋糕.当 ...

  6. Android EditView 获取焦点 不弹出软键盘

    很简单的做法: 找到AndroidManifest.xml文件 然后在对应的activity中增加android:windowSoftInputMode="adjustPan" & ...

  7. IDM下载神器

    破解版IDM 个人评价:基本上能满足日常下载需求,除bt.磁力外. 不管是在线视频, 还是音乐, 电子书, 统统都能下载, 还附有爬虫功能~~ 直接附链接: 百度云链接: https://pan.ba ...

  8. windows 虚拟环境下 安装 mysql 引擎一系列错误处理

    报错现象 运行django 报错. 很明显是缺少引擎 下载引擎 django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb m ...

  9. mysql 备份数据语句

    rem ******MySQL backup start********@echo offforfiles /p "D:\website\备份\数据库日常备份" /m backup ...

  10. MT【154】拉格朗日配方

    (清华2017.4.29标准学术能力测试24) 设$x,y\in\mathbb{R}$,函数$f(x,y)=x^2+6y^2-2xy-14x-6y+72$的值域为$M$,则______ A.$1\in ...