Java中的8种基本数据类型
JAVA中的8种基本数据类型:byte short int long float double char boolean
特别说明:
1)char类型占2个字节,可以表示汉字。汉字和英文字符都占2个字节。
2)boolean类型理论上占1个bit,但实际中按1个byte(字节)处理。
3)基本数据类型之间的转换:低级向高级自动转换,高级向低级需要显示(强制)转换。
public class ByteAndBit { public static void main(String[] args) { System.out.println("type\t"+"bit\t"+"byte");
System.out.println("Byte\t"+Byte.SIZE+"\t"+Byte.BYTES);
System.out.println("Short\t"+Short.SIZE+"\t"+Short.BYTES);
System.out.println("Integer\t"+Integer.SIZE+"\t"+Integer.BYTES);
System.out.println("Long\t"+Long.SIZE+"\t"+Long.BYTES);
System.out.println("Float\t"+Float.SIZE+"\t"+Float.BYTES);
System.out.println("Double\t"+Double.SIZE+"\t"+Double.BYTES);
System.out.println("Character"+Character.SIZE+"\t"+Character.BYTES); }
}
输出:
包装类:
为满足Java语言面相对对象的特性,上述8种基本数据类型在java.lang包中都有对应的包装类。
包装类可以分为3大类,Character,Boolean和Number(Short,Integer,Long,Float,Double)
包装类的一些特性:
1)所有包装类都可以将与之对应的基本数据类型作为参数来创建它们的实例对象
2)除了Character类之外,其他包装类都可以将一个字符串作为参数来构造它们的实例
3)Boolean类的构造方法参数为String类型时,若该字符串为true(不论大小写),则该对象表示true,否则表示false
4)当包装类Number构造方法的参数为String类型时,字符串不能为null,并且该字符串必须能够解析为基本类型的数据
public static void main(String[] args) {
// 1)所有包装类都可以将与之对应的基本数据类型作为参数来创建它们的实例对象
Byte b=new Byte((byte) 2);
Short s=new Short((short) 3);
Integer a=new Integer(4);
Double d = new Double(5.0d);
Character c=new Character('A');
Boolean bb=new Boolean(false);
Long l=new Long(4L);
Float f=new Float(4.7f);
System.out.println(b+" "+s+" "+a+" "+d+" "+c+" " +bb);
// output: 2 3 4 5.0 A false // 2)除了Character类之外,其他包装类都可以将一个字符串作为参数来构造它们的实例
Byte b1=new Byte("2");
Short s1=new Short("3");
Integer a1=new Integer("4");
Double d1 = new Double("5.0d");
Character c1=new Character('A');
Boolean bb1=new Boolean("false");
System.out.println(b1+" "+s1+" "+a1+" "+d1+" "+c1+" " +bb1);
// output: 2 3 4 5.0 A false // 3)Boolean类的构造方法参数为String类型时,若该字符串为true(不论大小写),则该对象表示true,否则表示false
Boolean n1 = new Boolean("True");
Boolean n2 = new Boolean("TrUE");
Boolean n3 = new Boolean("hello");
System.out.println(n1+" "+n2+" "+n3);
// output: true true false // 4)当包装类Number构造方法的参数为String类型时,字符串不能为null,并且该字符串必须能够解析为基本类型的数据
Integer a2 = new Integer(" "); //Exception in thread "main" java.lang.NumberFormatException: For input string: " "
Integer a3 = new Integer(""); // Exception in thread "main" java.lang.NumberFormatException: For input string: ""
Integer a4 = new Integer(null); //Exception in thread "main" java.lang.NumberFormatException: null
Integer a5 = new Integer("abs"); //Exception in thread "main" java.lang.NumberFormatException: For input string: "abs"
System.out.println(a2+" "+a3+" "+a4+" "+a5); //
byte bbb=2;
short ss=3;
int ii=4;
long ll=5;
float ff=6.67f; // 必须加f
double dd=7.7d; //可以不加d
dd=bbb;
dd=ss;
dd=ii;
dd=ll; ff=bbb;
ff=ss;
ff=ii;
ff=ll;
ff=(float)dd; ll=bbb;
ll=ss;
ll=ii;
ll=(long)ff;
ll=(long)dd; ii=bbb;
ii=ss;
ii=(int)ll;
ii=(int)ff;
ii=(int)dd; ss=bbb;
ss=(short)ii;
ss=(short)ll;
ss=(short)ff;
ss=(short)dd; bbb=(byte)ss;
bbb=(byte)ii;
bbb=(byte)ll;
bbb=(byte)ff;
bbb=(byte)dd; }
包装类的作用:
1)集合中不允许存放基本数据类型,故常用包装类
2)包含了每种基本数据类型的相关属性,如最大值、最小值、所占位数等
3)作为基本数据类型对应的类类型,提供了一系列实用的对象操作,如类型转换、进制转换等等
public static void main(String[] args) {
//Byte
System.out.println(Byte.MAX_VALUE); //
System.out.println(Byte.MIN_VALUE); //-128
System.out.println(Byte.hashCode((byte)2)); System.out.println(Byte.valueOf((byte)2));//返回Byte类型
System.out.println(Byte.valueOf("2")); //返回Byte类型 System.out.println(Byte.toString((byte) 4)); System.out.println(Byte.parseByte("2")); //返回byte类型
System.out.println(); //Integer
System.out.println(Integer.MAX_VALUE); //(2^31)-1 2147483647
System.out.println(Integer.MIN_VALUE); //-(2^31) -2147483648
System.out.println(Integer.hashCode(2)); System.out.println(Integer.valueOf(2)); //返回Integer类型
System.out.println(Integer.valueOf("2")); //返回Integer类型 System.out.println(Integer.max(1, 2));
System.out.println(Integer.min(1, 2)); System.out.println(Integer.parseInt("2")); //
System.out.println(Integer.parseInt("3",8)); // System.out.println(Integer.toBinaryString(2));//
System.out.println(Integer.toHexString(2));//
System.out.println(Integer.toString(3)); // Integer i=new Integer(10);
int ii=i.intValue(); //Character
System.out.println(Character.isDigit('s'));
System.out.println(Character.isLetter('e'));
System.out.println(Character.isLetterOrDigit('E')); }
从JDK1.5就开始引入了自动拆装箱的语法功能,也就是系统将自动进行基本数据类型和与之相对应的包装类型之间的转换,这使得程序员书写代码更加方便。
public static void main(String[] args) {
//自动装箱
int m = 10;
Integer in = m;
System.out.println(in);//10 //自动拆箱
Integer out = new Integer(10);
int n = out;
System.out.println(n);//
}
包装类中==和equals的用法比较:
值得注意的是,包装类中的equals方法和String类一样,都是重写了Object类中的equals方法,因此比较的是内容而不是地址,
而“==”比较的依然是引用变量的地址,只是当包装类型和与之相对应的基本类型进行“==”比较时会先做自动拆箱处理。
public static void main(String[] args) {
Integer a=new Integer(-100);
Integer b=new Integer(-100);
int c=-100;
System.out.println(a==b); //false;
System.out.println(a==c); //true; System.out.println(a.equals(b));//true;
System.out.println(a.equals(c));//true; }
- 基本类型,在Java中所有数字都是带符号的。
类型 长度 范围
一、基本数据类型的特点,位数,最大值和最小值。
1、
基本类型:short 二进制位数:16
包装类:java.lang.Short
最小值:Short.MIN_VALUE=-32768 (-2的15此方)
最大值:Short.MAX_VALUE=32767 (2的15次方-1)
2、
基本类型:int 二进制位数:32
包装类:java.lang.Integer
最小值:Integer.MIN_VALUE= -2147483648 (-2的31次方)
最大值:Integer.MAX_VALUE= 2147483647 (2的31次方-1)
3、
基本类型:long 二进制位数:64
包装类:java.lang.Long
最小值:Long.MIN_VALUE=-9223372036854775808 (-2的63次方)
最大值:Long.MAX_VALUE=9223372036854775807 (2的63次方-1)
4、
基本类型:float 二进制位数:32
包装类:java.lang.Float
最小值:Float.MIN_VALUE=1.4E-45 (2的-149次方)
最大值:Float.MAX_VALUE=3.4028235E38 (2的128次方-1)
5、
基本类型:double 二进制位数:64
包装类:java.lang.Double
最小值:Double.MIN_VALUE=4.9E-324 (2的-1074次方)
最大值:Double.MAX_VALUE=1.7976931348623157E308 (2的1024次方-1) - char 16bit/2byte \u0000~\uFFFF,unicode编码
- 在计算机中,正数以原码形式存在,负数以补码形式存在。以byte为例:
0000 0001代表数字1,1000 0000 代表数字-1,因此byte的最大值为
0111 1111即数字127,最小值为1111 1111也就是数字-128
借鉴:https://www.cnblogs.com/Wilange/p/7732236.html
Java中的8种基本数据类型的更多相关文章
- JAVA中的四种JSON解析方式详解
JAVA中的四种JSON解析方式详解 我们在日常开发中少不了和JSON数据打交道,那么我们来看看JAVA中常用的JSON解析方式. 1.JSON官方 脱离框架使用 2.GSON 3.FastJSON ...
- main方法中声明8种基本数据类型的变量并赋值
main方法中声明8种基本数据类型的变量并赋值 char→ int→ long→ float→ double byte→ short→
- JAVA基础学习之throws和throw的区别、Java中的四种权限、多线程的使用等(2)
1.throws和throw的区别 throws使用在函数外,是编译时的异常,throw使用在函数内,是运行时的异常 使用方法 public int method(int[] arr) throws ...
- Java中的五种单例模式实现方法
[代码] Java中的五种单例模式实现方法 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 2 ...
- JAVA中的四种引用以及ReferenceQueue和WeakHashMap的使用示例
简介: 本文主要介绍JAVA中的四种引用: StrongReference(强引用).SoftReferenc(软引用).WeakReferenc(弱引用).PhantomReference(虚引用) ...
- java中有哪4种整形数据类型?它们有什么不同之处?
java中有哪4种整形数据类型?它们有什么不同之处? (byte.short.int和long型)最大值和最小值都不一样.
- Java中的四种引用
引用定义 实际上,Java中存在四种引用,它们由强到弱依次是:强引用.软引用.弱引用.虚引用.下面我们简单介绍下这四种引用: 强引用(Strong Reference):通常我们通过new来创建一个新 ...
- java中的几种架构对象(PO,VO,DAO,BO,POJO)
java中的几种对象(PO,VO,DAO,BO,POJO) 一.PO :(persistant object ),持久对象 可以看成是与数据库中的表相映射的java对象.使用Hibernate来生 ...
- java中的几种内部类
Java中的几种内部类 内部类,听名字就可以知道是什么意思,就是类里面的类.有成员内部类,静态内部类,局部内部类和匿名内部类. 下面说一个每种内部类的的使用. 一. 成员内部类
随机推荐
- java中一些常考知识
一.static的作用 static是修饰符,用于修饰成员变量(静态变量/类变量). static修饰的成员被所有对象共享. static优先于对象存在. static修饰的成员可以用类名.静态成员来 ...
- deepin idea2019注册码
找了好久终于找到能用的注册码了https://blog.csdn.net/zixiao217/article/details/82942476第一个好像是已经过期了,然后试了下第二个发现可以直接官网下 ...
- ArcGIS Server for JavaScript 3.3 的安装部署
一.安装包下载 首先从官网下载ArcGIS API for JavaScript 3.3 的API和SDK,地址:http://support.esrichina.com.cn/2011/0223/9 ...
- 竹马竹马chikuma
[问题描述] 众所周知,zzh 和 heyi 是一对竹马竹马,他们从小一起学 C++,最后都成了著名的神犇.而时间回溯到他们童年,这天 zzh 邀请 heyi 来参加 zzh 举行的男性家庭聚会. 而 ...
- Docker——WIN7 安装 Docker实战与入门
1.Docker简介 Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目.它基于 Google 公司推出的 Go 语言实现. 项目后来加入了 Lin ...
- L1-006 连续因子 (20分)
题意分析 题目中已经将意思说的很清楚了,就是输出一个数的最长连续因子的个数,并且输出是哪几个因子相乘.可以将题目从这两个角度进行分析: N为素数时,最长连续因子的个数为1,即它自己. N不为素数时,即 ...
- 字符串分类 - hash
链接:https://www.nowcoder.com/acm/contest/141/E来源:牛客网 题目描述 Eddy likes to play with string which is a s ...
- python3搭建Django项目
1.本次安装的python3.7版本,可前往官网下载,这里的安装不作多余介绍 2.安装虚拟环境 第一种:virtualenv:用于创建虚拟环境,实现项目之间的环境隔离,解决项目中存在的版本冲突问题 w ...
- transient简介
当一个对象实现了Serilizable接口,这个对象就可以被序列化,java的这种序列化模式为开发者提供了很多便利,我们可以不必关系具体序列化的过程,只要这个类实现了Serilizable接口,这个的 ...
- Trailhead Lightning 学习 一
计划学习一下莱特宁,从最基本的开始学习,脚踏实地.不忘初心,牢记使命,以下是查阅的资料. 简介 在此Salesforce教程中,将阐述Salesforce Lightning的基础知识,并了解Sale ...