一、基本类型介绍

关键字 数据类型 占用字节数 取值范围 默认值
byte 字节型 1个字节 -128~127 0
char 字符型 2个字节 Unicode0~Unicode215-1 \u0000
short 短整型 2个字节 -215~215-1 0
int 整型 4个字节 -231~231-1 0
long 长整型 8个字节 -263~263-1 0
float 单精度浮点数 4个字节 -2128~2128 0.0
double 双精度浮点数 8个字节 -21024~21024 0.0
boolean 布尔型 1个字节 true|false false

float与double的范围和精度

  范围

  float:      1bit(符号位)  8bit(指数位)  23bit(尾数为)

  double:   1bit(符号位)  11bit(指数位)  52bit(尾数为)

float的指数范围 -127~128,而double的指数范围-1023~1024

  float的范围为-2128~2128,也即-3.40E+38 ~ +3.40E+38;double的范围为-21024~21024,也即-1.79E+308 ~ +1.79E+308

  精度

  float和double的精度是由尾数的位数来决定的。浮点数在内存中是按科学计数法来存储的,其整数部分始终是一个隐含着的“1”,由于它是不变的,故不能对精度造成影响。

  float:223 = 8388608,一共七位,这意味着最多能有7位有效数字,但绝对能保证的为6位,也即float的精度为6~7位有效数字;
    double:252 = 4503599627370496,一共16位,同理,double的精度为15~16位。

基本类型赋值

  byte:

byte b=1;
byte a=1+2;

  short

short s=1;

  char

char a='A';                   //直接用字符赋值
char b=65; //用10进制数字赋值
char c='\u0041'; //使用unicode码赋值
char d=0x0041; //使用16进制赋值
char e=0101; //使用8进制赋值
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(d);
System.out.println(e);

上面输出的都是是字符'A'

  int

int a=3;

  long

long a=1;
long b=10000000000l;
//如果赋值范围超过了int,就必须在后面加上字母l或者L

  float

float a=1.2f;

  double

double a=1.2;

二、基本类型运算

1、java中byte、short和char类型运算操作首先会把这些值转换成int类型,然后对这些int值进行运算,返回int类型。

byte a=1;
byte b=2;
byte c=a+b; 这里先将a和b转换成int类型在进行计算,结果返回int类型,所以这里结果不正确
可以改为:
int c=a+b;
或者
byte c=(byte)(a+b); 当然这里不能操作byte范围
byte a=1;
char b='B';
int c=a+b;
System.out.println(c);

输出为67  现将a=1和b='B'转换成int型 a=1、b=66 所以结果为67

2、在做除法运算时,如果两边除数和被除数都是整数,其结果也为整数(只保留整数部分)例如:

int a=10;
int b=3;
System.out.println(a/b);

结果为:3

3、在做除服运算时,两个操作数其中有一个是浮点数,计算结果也是浮点数。而且允许除数是0或者0.0,得到结果正无穷或负无穷

double a=5;
int b=5;
System.out.println(a/0); //结果为正无穷:Infinity
System.out.println(-a/0); //结果为负无穷:-Infinity
System.out.println(b/0); //抛出异常:java.lang.ArithmeticException: / by zero
System.out.println(0/0.0); //结果为:NaN
System.out.println(0.0/0); //结果为NaN

基本类型常见面试题

13、java中8中基本类型的更多相关文章

  1. java 实现往oracle存储过程中传递array数组类型的参数

    注:本文来源于 <  java 实现往oracle存储过程中传递array数组类型的参数  >最近项目中遇到通过往存储过程传递数组参数的问题, 浪费了N多个小时,终于有点头绪. 具体的代码 ...

  2. 在JAVA中怎么比较Double类型数据的大小

    在JAVA中怎么比较Double类型数据的大小  我来答  浏览 33044 次   3个回答 #活动# “双11”答题活动,奖励加码!最高得2000元购物礼金! pollutedair 2015- ...

  3. JAVA中的六种日期类型使用

    基本的6种日期类 /** * 六种时间类型的类 * 数据库格式的时间三种格式 */ java.util.Date date = new java.util.Date();//年与日时分秒 //数据库的 ...

  4. 【java】jackson 中JsonFormat date类型字段的使用

    为了便于date类型字段的序列化和反序列化,需要在数据结构的date类型的字段上用JsonFormat注解进行注解具体格式如下 @JsonFormat(pattern = "yyyy-MM- ...

  5. java程序转换excel中科学记数法的数据为date类型

    今天出于某些原因从mongodb数据库中导出了一些数据,为了更直观的发送给其他人查阅,便使用mongoVUE的导出为excel功能.   但是导出后出现了一个问题,里边有一列存储时间的,存储的是lon ...

  6. java中基本类型和包装类型实践经验

    至今,小菜用java快两年了,有些事,也该有个总结. 基本类型和包装类型的概念在本文不作赘述. 如果这两种类型直接使用,倒没什么值得讨论的,无非就是自动装箱拆箱,java可以让你感觉不到他们的存在,但 ...

  7. 理解Java中的协变返回类型

    在面向对象程序设计中,协变返回类型指的是子类中的成员函数的返回值类型不必严格等同于父类中被重写的成员函数的返回值类型,而可以是更 "狭窄" 的类型. Java 5.0添加了对协变返 ...

  8. Java中String转换Double类型 Java小数点后留两位

    Java中String转换Double类型 double num1 = 0.0; String qq = "19.987"; num1 = Double.valueOf(qq.to ...

  9. 1.java.io包中定义了多个流类型来实现输入和输出功能,

    1.java.io包中定义了多个流类型来实现输入和输出功能,可以从不同的角度对其进行分 类,按功能分为:(C),如果为读取的内容进行处理后再输出,需要使用下列哪种流?(G)   A.输入流和输出流 B ...

  10. 集合框架的类和接口均在java.util包中。 任何对象加入集合类后,自动转变为Object类型,所以在取出的时候,需要进行强制类型转换。

    集合框架的类和接口均在java.util包中. 任何对象加入集合类后,自动转变为Object类型,所以在取出的时候,需要进行强制类型转换.

随机推荐

  1. MapReduce实现排序功能

    期间遇到了无法转value的值为int型,我採用try catch解决 str2 2 str1 1 str3 3 str1 4 str4 7 str2 5 str3 9 用的\t隔开,得到结果 str ...

  2. C#程序集系列12,C#编译器和CLR如何找寻程序集

    本篇体验C#编译器和CLR运行时如何查找程序集,并自定义CLR运行时查找程序集的方式. □ C#编译器和CLR运行时如何查找程序集 C#编译器在哪里?--在C:\Windows\Microsoft.N ...

  3. datagrid在MVC中的运用02-结合搜索

    本文接着上一篇,来体验给datagrid加上搜索功能.主要涉及到: ※ 把一个div与datagrid相关起来 ※ datagrid接收查询参数 ※ 查询参数的封装 效果图: 查询参数封装 分页相关的 ...

  4. pytest文档23-使用多个fixture和fixture直接互相调用

    使用多个fixture 如果用例需要用到多个fixture的返回数据,fixture也可以return一个元组.list或字典,然后从里面取出对应数据. # test_fixture4.py impo ...

  5. DELIMITER关键词作用 替换结束符号

    注意:“DELIMITER //”语句的作用是将MYSQL的结束符设置为//,因为MYSQL默认的语句结束符为分号;,为了避免与存储过程 中SQL语句结束符相冲突,需要使用DELIMITER 改变存储 ...

  6. 《软件开发与创新:ThoughtWorks文集:续集》

    <软件开发与创新:ThoughtWorks文集:续集> 基本信息 原书名:The thoughtWorks anthology, volume 2:More essays on softw ...

  7. select点击option获取文本输入框的焦点事件

    HTML文件: <select id="secOrderNum" style="margin-bottom:10px;width:90px;" data- ...

  8. @JVM中对象的引用类型

    JVM中有四种引用类型:强引用.软引用.弱引用.虚引用   强引用(Stong Reference):是指在程序代码中普遍存在的,类似:Object obj = new Object()这类的引用,只 ...

  9. 单点登录(SSO)问题

    单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一.SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统.

  10. WIDGET和鼠标特效的DEMO

    原创WIDGET和鼠标特效的DEMO, 键盘1 平移Widget键盘2 旋转Widget键盘3 缩放Widget DEMO中,实现对BOX的旋转缩放位移 下载地址: http://pan.baidu. ...