整理了一下Java基本数据类型和面试可能涉及的知识。

     字节数(byte)  位数(bit)  取值范围
整型  byte  1  8  -2^7 ~ 2^7 -1
short   2  16  -2^15 ~ 2^15-1
int*  4  32  -2^31 ~ 2^31-1 
long   8  64  -2^63 ~ 2^63-1 
 浮点型   float   4  32  
double*  8  64  
字符型 char   2  16 0~2^16-1
布尔型 boolean   1  

整型的取值范围:

最高位为符号,正负各2^(位-1)个数,0归为正数,故正数范围为0~2^(位-1)-1,负数为-2^(位-1)~-1

浮点型的取值范围:

float和double的范围是由指数的位数来决定的。没有搞清楚这个,迟点复习再看。

https://www.cnblogs.com/BradMiller/archive/2010/11/25/1887945.html 这篇写得蛮好的

1. 基本数据类型之间的转换

参考:https://www.cnblogs.com/liujinhong/p/6005714.html

 低精度  →→   自动转换   →→  高精度 
byte、char、short、int、long、float、double
←←   强制转换   ←←

由于Java中默认整型数据使用int,浮点型使用double,故书写规范:

  1. byte a = 1;         //自动转换
  2. byte b = (byte)128;    //数值超出范围需作强制转换
  3. long c = 10000000000L;  //强制转换
  4. float d = 3.5f;      //强制转换
  5. double e = 3.5;

进行数学运算时,数据类型会转换为涉及数据的最大形式

  1. int a = 2;
  2. byte b = 2;
  3. byte c = (byte)(a+b);
  4. double d = 5;
  5. char ch = (char)('a'+1);

char型运算时会自动提升为int类型

  1. char a = 55;
  2. char b = 'a';
  3. char c = (char)(a+b);
  4. char d = 'a'+'a';
  5. System.out.println(a);//7
  6. System.out.println(b);//a

2. 基本数据类型的包装类及其转换

 基本数据类型   boolean  char byte short  int long float double
包装类  Boolean Character Byte  Short  Integer  Long  Float  Double 

装箱与拆箱

  1. Integer i = 10;  //装箱 基本类型 → 包装器类型
  2. int n = i;     //拆箱 包装器类型 → 基本类型

查看对应.class文件可发现,以上代码实际调用的方法:

  1. Integer i = Integer.valueOf(10);
  2. int n = i.intValue();

Integer(指向缓存/常量池) 和 new Integer(指向堆)由于指向内存位置不一样,比较时两者不等。

② Integer(非new)互相比较时,数值位于int取值范围内,比较结果为true,超出范围则为false

③ int和Integer/new Integer比较时,由于Integer会首先作拆箱处理与int比对,所以比较结果一定为true

注:Double比较有所差别,所有Double的比较都为false

详细可参详:https://www.cnblogs.com/dolphin0520/p/3780005.html

相关题目:

1.

short s1 =1; s1 = 1+1; short s1 = 1; s1 +=1; 上述语句能否编译通过,为什么?

  1. short s1 = 1;
  2. s1 = 1+1; //计算时会转换成int类型,由于左方是short类型的数据,右边运算完没有进行强制转换,所以编译不通过
  3.  
  4. short s1=1;
  5. s1 += 1; //因为“+=”是赋值运算符,不牵涉与其它类型的数字计算,也不会转成 int 类型的,所以编译通过

【Java】基本数据类型以及其转换的更多相关文章

  1. Java基础——数据类型之间的转换

    Java数据类型分为三大类,即布尔型.字符型和数值型.其中数值型又分为整型和浮点型.Java的基本数据类型(8种)为布尔型boolean(1字节):字符型char(2字节):整型byte(1字节).s ...

  2. java各种数据类型之间的转换

    1如何将字串 String 转换成整数 int?   A. 有两个方法:   1). int i = Integer.parseInt([String]); 或 i = Integer.parseIn ...

  3. java --基本数据类型间的转换

    public class changetype { public static void main(String[] args) { String ar = "true"; //S ...

  4. java代码---数据类型的强制转换----不懂啊

    总结:看写的测试代码 字符到整型必须进行强制转换 package com.a.b; //byte→int 可以 int范围大,不必转换 B.short→long //C.float→double 这个 ...

  5. java 各数据类型之间的转换

    String —> Date SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");Date ...

  6. java 各种数据类型的互相转换

    StringBuilder转化为String StringBuilder stb = new StringBuilder(); String str=stb.toString(); //方法1 Str ...

  7. Java中数据类型及其之间的转换

    Java中数据类型及其之间的转换 基本的数据类型 基本类型有以下四种:1)int长度数据类型有:byte(8bits).short(16bits).int(32bits).long(64bits).2 ...

  8. java中的、标识符、运算符以及数据类型之间的转换。

    ---恢复内容开始--- 数据类型之间的转换: 1:自动转换:就是不用说出要转换成什么类型,由java中的虚拟机自动将小数据类型转换成大数据类型,但大数据中的数据精度有可能被破坏. 2:强制转换:强制 ...

  9. Java中的基本数据类型和基本数据类型之间的转换

    在Java中有8中基本数据类型,分别为: 整型: byte.short.int.long 浮点型:float.double 布尔型:boolean 字符型:char. byte:    8位,  封装 ...

  10. Java中数据类型及其之间的转换(转)

    Java中数据类型及其之间的转换 基本的数据类型 基本类型有以下四种:1)int长度数据类型有:byte(8bits).short(16bits).int(32bits).long(64bits).2 ...

随机推荐

  1. Docker Flie

    七.Docker File .dockeringore:打包忽略的文件列表,每行写一个文件的路径,可使用通配符 FROM指令:指定基础镜像 FROM <repository>[:<t ...

  2. HTTP/TCP协议基础

    HTTP协议 基本概念 HTTP协议(超文本传输协议 HyperText Transfer Protocol):是用于从WWW服务器传输超文本到本地浏览器的传送协议.它不仅保证计算机正确快速地传输超文 ...

  3. QPS,TPS,吞吐量,响应时间详解及关系

    并发数 并发数是指系统同时能处理的请求数量,这个也是反应了系统的负载能力 吞吐量吞吐量是指单位时间内系统能处理的请求数量,体现系统处理请求的能力,这是目前最常用的性能测试指标 响应时间RT(Respo ...

  4. Mac安装pyenv及pyenv的使用

    Mac系统自带的Python是2.7.10,自己需要Python 3.x,此时需要在系统中安装多个Python,但又不能影响系统自带的Python,即需要实现Python的多版本共存,pyenv就是这 ...

  5. string类型的方法

    var str1 = ' this is string1 '; var str2 = 'this is string2'; str1.indexOf('s'); //args:string retur ...

  6. 练习九:time.sleep方法

    让python程序暂停预定时间后再运行,需要用到time.sleep方法要求,随便写入一段代码,测试time.sleep方法 import time dict1 = {1:'a',2:'b',3:'c ...

  7. 如何在mssql中获取最新自增ID的值

    @@IDENTITY 返回最后一个插入 IDENTITY 的值,这些操作包括:INSERT, SELECT INTO,或者 bulk copy.如果在给没有 IDENTITY 列的其他表插入记录,系统 ...

  8. Oracle的表操作,约束

    回顾MySQL创建表语句users(id整型/name字符串/birthday日期型,默认今天)drop table if exists users;create table if not exist ...

  9. JS展示预览PDF。

    刚好遇到需求,需要在手机端--展示一个电子收据,电子收据返回是PDF格式的,所以需要在前端上面去做PDF预览. 在学习过程中,了解到一种很简单,不需要任何插件的方法做PDF预览,但是这方法有局限性. ...

  10. 可视化工具Navicat的使用/pymysql模块的使用

    一.可视化工具Navicat的使用 1.官网下载:http://www.navicat.com/en/products/navicat-for-mysql 2.网盘下载:http://pan.baid ...