原标题:Java数据类型及使用方法

一、基本数据类型

整型:byte、short、int、long (在计算机中以二进制补码格式存储)

浮点型:float、double (在计算机中以IEEE754格式存储)

字符型:char (在计算机中以unicode码格式存储)

布尔型:boolean (只有true和false两个值)

二、1、长整型:long

定义 :long a=100;int b=a; (编译出错)

给a重新赋值:long a=2147483648; (编译出错)

定义:long a=2147483648L;(正确,说明此时可以是long型的取值范围)

说明在long型的数据后不加L/l时,数据仍为long型,但其取值范围却是int型的取值范围;数据后加L/l时,取值范围才是long型的取值范围。

2、浮点型:long

定义:float a=19; 输出a时为19.0

定义:float a=19.1; (编译出错)

定义:float a=19.1f; (正确)

说明在 float型的数据后不加F/f,则数据不能有小数位,但输出时,能够输出一位小数;若在float型的数据后加上F/f,则数据可以有小数位;

三、类型转换(注:boolean型不会发生类型转换,基本类型和复合类型不能相互转换)

1、自动转换

1)赋值转换:用于短字节的数据类型转换成长字节的数据类型(byte型的数据不能转换成char型,short型和char型数据也不能相互转换)

2)单目运算符提升

++、――运算符不会自动提升,+(正)、-(负)会将byte、short、char型的数据自动转换成int型的数据

3)双目运算符提升

如果有一个操作数是double型的,则把另一个转换成double型;否则 如果有一个操作数是float型的,则把另一个转换成float型;否则 如果有一个操作数是long型的,则把另一个转换成long型;否则 两个操作数都转换成int型。

4)三目运算符 ? : 其中op1必须是boolean型的,而op2和op3两操作数必须是能够自动转换成相同类型的数据,op2和op3会自动提升为两操作数中字节较长的一个,并且结果为提升后的类型。

如:byte a1=20;

short a2=10;

boolean b=true;

short c = b ?

a1 : a2;

结果为short型的数据c

2、强制转换

例子:

int a;

byte b=(byte)a;

定义:a=-126;

(分析:int形的数据有4个字节,而byte形的数据只有1个字节,所以只取int型数据的最后一个字节)

a的原码: 10000000,00000000,00000000,01111110

补码: 11111111,11111111,11111111,10000010

法一:r=(10000010)=130 (此时将 10000010 看成是纯的二进制数去计算,而不考虑它的符号位); byte型数据范围[-128,127],由于 r>127,所以 r=r-M (若整型数据值域[-L,R],则M=L+R+1),如果r还不在byte型数据的取值范围内,则继续 r=r-M 直至r在其取值范围内,取得r后,即为byte型的 b .此处r=-126,所以输出b为-126.

法二:直接将int型数据的最后一个字节看成是byte型数据的补码形式,在将补码转换成原码,即得到 b

四、逻辑运算符

1、&&和|| (&&的优先级要高于||的)

特点:只要左操作数已经得出整个表达式的值,就不再计算右操作数的之值,左右操作数必须为boolean型的。

例子:

boolean test1= ++x==-1 && ++x==1 || ++x=2;

boolean test2= ++y==-1 || ++y==1 && ++y=2;

System.out.println(x+" "+test1);

System.out.println(y+" "+test2);

结果:1 false

2 true

2、&和| (逻辑位运算符)

特点:先把两个操作数的值计算出来,然后再进行逻辑运算

int x=-1,y=-1;

boolean test1= ++x==-1 & ++x==1 | ++x=2;

boolean test2= ++y==-1 | ++y==1 & ++y=2;

System.out.println(x+" "+test1);

System.out.println(y+" "+test2);

结果: 2 false

2 true

五、移位运算

<< (左移) 高位丢失、低位以0填充

>> (右移) 低位丢失、高位以符号位填充

>>> (无符号位右移) 低位丢失、高位以0填充

此运算符不会对左右两操作数作算术提升,但会对左操作数进行单独提升,若为byte、short、char、int型,则得到结果为int型,若为long型,则结果为long型,但左右操作数均不能为浮点型,否则出错。

当左操作数为int型时,右操作数的低5位才有用,这样可以防止移位超过int型所具有的位数, 当左操作数为long型时,右操作数的低6位才有用。

例子:

int a=-2;

short b=-10;

int c=a>>b;

b的补码:11111111,11111111,11111111,11110110

取b的最后5位, r=(10110)=22;

a的补码:11111111,11111111,11111111,11111110

将a向右移动22位,再在高位补上1,得到 11111111,11111111,11111111,11111111 ,转换成原码得到 c=-1

六、赋值运算

1.简单赋值运算

表达式: =

左操作数可以事先没有赋值

表达式的类型必须和变量的类型相同,或能赋值转换成变量的类型,

2.组合赋值运算

表达式: op=

int a=10;

double b=23.3;

a*=b;

左操作数事先一定要赋值

左边的类型和右边的类型不一定要相同,此处a*b得到的是double型的,组合运算符会自动把double型的值转换成int型的值存入变量a中。返回搜狐,查看更多

责任编辑:

java长整型定义和输出_Java数据类型及使用方法相关推荐

  1. java长整型时间转日期_C#长整型时间与java长整型时间转换

    最近在有一个解析并转发病毒软件日志的活,这个软件用的是SQLite嵌入式数据库存储病毒日志.查询病毒记录后,我发现它用长整型存储攻击时间这个字段,而且是一个10位的值.而我的解析系统是用C#写的,C# ...

  2. C语言输出长长整型错误,c语言长整型定义

    我用long int怎么不行呢 基本定义形式为: long var_name = INIT_VALUE; 一. 长整型在C语言中类型关键字为long. 定义时,var_name为变量名. INIT_V ...

  3. java长整型转换为整型_java ip地址转换为长整型

    java ip地址转换为长整型 java ip地址转换为长整型: public class Util { /** * 字符串ip转换为long * @param 字符串ip * @return */ ...

  4. java 取整型的低八位_Java 基础(十五)并发工具包 concurrent

    本文目录: java.util.concurrent - Java 并发包简介 阻塞队列 BlockingQueue 数组阻塞队列 ArrayBlockingQueue 延迟队列 DelayQueue ...

  5. python长整型是什么_Python【数据类型】

    我们人类可以很容易的分清数字与字符的区别,但是计算机并不能呀,计算机虽然很强大,但从某种角度上看又很傻,除非你明确的告诉它,1是数字,"汉"是文字否则它是分不清1和汉的区别的,因此 ...

  6. java长整型_java – 将整数转换为长整型

    我需要使用反射获得字段的值.这样发生,我不总是确定字段的数据类型.为了避免一些代码重复,我创建了以下方法: @SuppressWarnings("unchecked") priva ...

  7. java 长整型long_关于java:长于Long.MAX_VALUE的长整型

    如何获得大于long.max_值的长数值? 我希望此方法返回true: boolean isBiggerThanMaxLong(long val) { return (val > Long.MA ...

  8. java整型_java中长整型定义

    展开全部 Java的整型最大值e69da5e6ba9062616964757a686964616f31333337396166/长整型和短整型最大值及表示法定义代码:public class Damo ...

  9. java长整型数输入格式_java编程之计算16位长整型数字中0-9出现次数(从命令窗输入数据)...

    /* *读入一个16位的长整型,利用switch语句计算0-9这十个数字中,每个字出现的次数 **/ import java.util.Scanner; class number{ public st ...

最新文章

  1. hive中order by,sort by, distribute by, cluster by作用以及用法
  2. 【微信小程序企业级开发教程】如何搭建服务器(tomcat)后台
  3. Android下 scrollview的滚动停止事件的监听方法
  4. 北京大学计算机系 丁主任,丁骋、李时新参加第七届新闻史论青年论坛暨北京大学新闻学研究会年会...
  5. WebService学习之三:spring+cxf整合
  6. 《Don't make me think 》关于Web可用性的三大定律
  7. 自己动手美化博客园个人博客
  8. 扇贝有道180923每日一句
  9. 20210406森林里的兔子
  10. vue3.0在mian.js中引入全局less
  11. 使用libmp3lame库编码mp3
  12. 【Java】【MySnake】仿贪吃蛇小游戏开源代码(持续更新)
  13. php m3u8cms,苹果cms V8和V10整合Dplayer播放器插件支持mp4和m3u8格式播放
  14. 计算机数学与高中数学衔接,浅谈如何做好高中数学与大学数学的衔接
  15. 计算机开机图片怎么换,如何把电脑开机画面换成自己的图片?
  16. C++语法整理(From GitHub)
  17. Esp32 spi slave配置
  18. 解析微信开发之搜索歌曲
  19. pycharm此应用程序无法启动,因为无法初始化qt平台插件
  20. Kruskal 算法介绍

热门文章

  1. NowCoder Wannafly 27E 黄魔法师 构造
  2. linux编辑文件,中途退出再进入编辑操作
  3. 洛谷 P4147 玉蟾宫 P1169 [ZJOI2007]棋盘制作(求最大子矩阵)
  4. css怎么将样式取消,css怎么把透明样式取消
  5. Kali渗透-NMAP高级使用技巧和漏洞扫描发现
  6. Linux下重启网卡失败
  7. inflater用法
  8. 不再为阿里妈妈赚钱而玩博客……
  9. ZBrush新手普遍疑惑,你遇到几个?常用ZBrush快捷键汇总
  10. json串解析,成员变量大写字母开头