Java 八种基本类型和基本类型封装类
1.首先,八种基本数据类型分别是:int、short、float、double、long、boolean、byte、char;
它们的封装类分别是:Integer、Short、Float、Double、Long、Boolean、Byte、Character。
| 数据类型 | 包 装 类 | 字节长度 | 默 认 值 |
| int | Integer | 4 | 0 |
| short | Short | 2 | 0 |
| long | Long | 8 | 0l或0L |
| byte | Byte | 1 | 0 |
| float | Float | 4 | 0.0F或0.0f |
| double | Double | 8 | 0.0 |
| char | Character | 2 | u0000 |
| boolean | Boolean | 1 | false |
2.Java中的数值都是有符号的,不存在无符号的数,它们的取值范围也是固定的,不会随着硬件环境或者操作系统的改变而改变。
3.原始数据类型在传递参数时都是按值传递,封装类都是按引用传递。
4.Java语言中,默认声明的小数是double类型的,因此对float类型的变量进行初始化时需要进行类型转换。
float类型变量有两种初始化方法:float f = 1.0f 或者 float f =(float) 1.0 。
5."=="和"equals()"方法:
1)基本型和基本型封装型进行“==”运算符的比较,基本型封装型将会自动拆箱变为基本型后再进行比较,因此Integer(0)会自动拆箱为int类型再进行比较,显然返回true。
2)两个Integer类型进行“==”比较,如果其值在-128至127,那么返回true,否则返回false, 这跟Integer.valueOf()的缓冲对象有关,这里不进行赘述。
3)两个基本型的封装型进行equals()比较,首先equals()会比较类型,如果类型相同,则继续比较值,如果值也相同,返回true。
4)基本型封装类型调用equals(),但是参数是基本类型,这时候,先会进行自动装箱,基本型转换为其封装类型,再进行3)中的比较。
int i=;
Integer j=new Integer();
System.out.println(i==j);
System.out.println(j.equals(j));
double d=0.5;
Double b=new Double(0.5);
System.out.println(d==b);
System.out.println(b.equals(d));
Integer aa=-;
Integer bb=-;
System.out.println(aa==bb);
Integer aaa=;
Integer bbb=;
System.out.println(aaa==bbb);
程序运行结果:
true
true
true
true
true
false
6.不同数据类型之间的转换规则:
在Java中当参与运算的两个变量的数据类型不同时,就需要进行隐式的数据类型转换,转换规则为:从低精度向高精度转换,即优先级满足byte<short<char<int<long<float
<double.反之,则需要通过强制类型转换来完成。
| 操作数1的类型 | 操作数2的类型 | 转换后的类型 |
| int |
byte,short,char |
int |
| long |
byte,short,char,int |
long |
| float |
byte,short,char,int,long |
float |
|
double |
byte,short,char,int,long,float | double |
l类型自动转换时,需要注意的几点:
1)char数据类型转换为高级类型时,会自动转换为其对应的ASCII码。
2)byte, char, short 类型的数据在参与运算时会自动转换为int类型,但当使用''+=" 运算符时就不会产生类型转换,例如 short s1= 1; s1=(shot) (s1+1) 。short s2 = 1;s1+=1。
3)基本数据类型不能与boolean类型相互转换。
| 原操作数的类型 | 转换后操作数的类型 |
| byte | char |
| char | byte char |
| short | byte char |
| int | byte short char |
| long | byte short char int |
| float | byte short char int long |
| double | byte short char int long double |
需要注意的是,在进行强制类型转换时可能会损失精度。
Java 八种基本类型和基本类型封装类的更多相关文章
- Java中的基本类型和包装类型区别
首先看一下几个测试题,验证一下java中对基本类型和包装类型的理解,看看最后输出的答案对不对,答案在这篇博客中哦: // 第一题: 基本类型和包装类型 int a = 100; Integer b = ...
- java的基本类型和对应的封装类
封装,是java这门语言的重要核心思想之一,封装也是对面向对象这一思想很好的体现. 在很多情况下,我们需要对数据进行一些转换,如:将一字符串"123"转换成int类型的123,或者 ...
- java中基本类型和包装类型实践经验
至今,小菜用java快两年了,有些事,也该有个总结. 基本类型和包装类型的概念在本文不作赘述. 如果这两种类型直接使用,倒没什么值得讨论的,无非就是自动装箱拆箱,java可以让你感觉不到他们的存在,但 ...
- java 八种基本数据类型之初始值、取值范围、对应的封装类
CreateTime--2017年12月6日10:03:53 Author:Marydon 一.java数据类型之基本数据类型 (二)八种基本数据类型的特征 import java.math.Bi ...
- java 八种基本数据类型之与对应的封装类之间的相互转化
迁移时间--2017年5月26日17:47:37 Author:Marydon 一.java数据类型之基本数据类型 UpdateTime--2017年1月9日17:31:14 (三)格式转换 1. ...
- Java八种基本数据类型的大小,以及封装类,自动装箱/拆箱的用法?
参考:http://blog.csdn.net/mazhimazh/article/details/16799925 1. Java八种基本数据类型的大小,以及封装类,自动装箱/拆箱的用法? 原始类型 ...
- 【Java心得总结一】Java基本类型和包装类型解析
说到数据类型这个问题是一个基本的不能再基本的问题,我们当初编程入门第一课一般就是讲数据类型,而今天我想记录的是一个在Java中容易忽略的问题,即基本类型和包装类型. 一.基本类型出现的原因 我们都知道 ...
- Java 基本类型和包装类型
讲基本类型和包装类型之前,首先要介绍,装箱和拆箱 装箱:基本类型转化为包装类型 拆箱:包装类型转化为拆箱类型 为什么要有包装类型?Java是面向对象的语言,Java中一切都是对象除了基本数据类型,所以 ...
- Java 基本类型和对象类型的区别
Java 基本类型和对象类型的区别 基本类型: int long byte float double char boolean short 对象类型: Integer Long Byte Float ...
随机推荐
- django-crontab使用
用 django-crontab 为 Django 添加定时任务 需求 做后台开发的时候,有时候会遇到这样的需求,在某个固定时间或者一定时间间隔自动触发某一事件.比如说我有一个需求要求是,周一到周五早 ...
- linux查看并发连接数
1.查看TCP的并发请求数及其TCP连接状态: netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' netstat ...
- Linux_更改主机名
老师上linux课截图必须改主机名字,每个人一个代号,所以就写篇这个咯 查看主机名 [root@localhost.localdomain Desktop]# hostname localhost.l ...
- 4)date中的Ymd格式问题
以下是详细的参数: format 字符 说明 返回值例子日 --- ---d 月份中的第几天,有前导零的 2 位数字 01 到 31D 星期中的第几天,文本表示,3 个字母 Mon 到 Sunj 月份 ...
- @EnableGlobalMethodSecurity(prePostEnabled = true)
http://www.bubuko.com/infodetail-2243816.html
- go proxy转发工作中碰到的问题
A-B 需求是一个中转 A-Proxy-B 读取来源请求A,在proxy读取body作些处理,再转给B,再把返回内容转给A 问题出在proxy这里 如果先把请求给B,再读body res, err : ...
- Linux BASH简单总结
BASH: 变量的设置规则: 1.变量与变量内容以一个符号"="来链接 2.等号两边不能直接接空白字符 3.变量名称只能是英文字母与数字,但是不能以数字开头 4.变量内容若有空白字 ...
- FPGA底层的时钟布线以及内部layout
https://wenku.baidu.com/view/441549fef111f18582d05a70.html 全局时钟是最简单的最可预测的时钟,时钟方案:有专用的时钟输入(提供最短的始终输出延 ...
- VS自身的单元测试方法DEMO
///用来修饰测试类 [TestClass()] public class Program { private TestContext testContextInstance; /// <sum ...
- Nginx笔记总结十一:Nginx重写规则指南
依赖PCRE库,需要安装pcre,最多循环10次,超过后返回500错误, 1. rewrite模块指令 break:完成当前设置的重写规则,停止执行其他的重写规则 if: if () { ...