Java数据类型
来源:互联网 发布:js strict 编辑:程序博客网 时间:2024/06/04 18:11
数据类型
基本数据类型
基本数据类型
- 整型
- byte:1字节8位;取值范围:-128~127
- short:1字符2字节16位;取值范围:-32768~32767
- int:2字符4字节32位;取值范围:-2e31~2e31-1
- long:4字符8字节64位;取值范围:-2e63~2e63-1 - 浮点型
- float:2字符4字节32位;
- double:4字符8字节64位; - 布尔:boolean:1位;取值范围:true/false
- 字符:char:1字符2字节16位;取值范围:0-65535 ‘\u0000’~‘\uFFFF’
注: 内置数据类型的包装类:
Byte,Short,Integer,Long,Float,Double,Character,Boolean
查看个数据类型取值范围:System.out.println(包装类名.MAX_VALUE);System.out.println(包装类名.MIN_VALUE);//boolean例外System.out.println(Boolean.FALSE);System.out.println(Boolean.TRUE);
- 整型
引用数据类型:非基本数据类型(String、对象、数组)
- 用class关键字创建类,用new生成实例对象//创建Brid.java文件public class Brid{ public static void main(String[] args) { //生成实例对象 Brid brid = new Brid();} }//创建Crow.java文件public class Crow { private Brid brid; public static void main(String[] args) { //生成实例对象 Crow crow = new Crow();} }
类型转换
隐式类型转换
规则
类型兼容
public class ExplicitConversions {public static void main(String[] args) { byte b = 12; short s= 12; float f= 12.0f; byte bb=(byte)s; //byte bb=(byte)f;存在兼容问题}}
- 目标类型大于源类型:
byte < short < int < long <float < double [ char < int < long < float <double]
- 目标类型大于源类型:
数值型表达式的转换
- 有double时double
- 有float时float
- 有long时long
- 其余为int
public class ExplicitConversions { public static void main(String[] args) { byte b = 12; short s= 12; int i= 12; long l= 12l; float f= 12.0f; double d= 12; char ch= 'b'; //char cc=b+s; int ii=b+s+c; long ll=b+s+ch+i+l; float fl=b+s+i+l+ch+f; double dl=b+s+ch+i+l+f+d; } }
- 强制转换数值型
- 大类型的数据转换成小的类型,需要使用(类型名)进行强制转换
- 强制转换可能导致精度丢失
- char可以与整数型进行互转
public class ExplicitConversions { public static void main(String[] args) { byte b = 12; short s= 12; int i= 12; long l= 12l; float f= 12.0f; double d= 1200; char ch= 'b'; byte bb=(byte)s; int ii=ch; char c=(char)ii; float fl=(float)d; short sh=(short)d; byte by=(byte)d; //输出1200 System.out.println(sh); //造成精度损失,输出-80 System.out.println(by); } }
a=a+b与a+=b区别
+=操作符会进行隐式自动类型转换,此处a+=b隐式的将加操作的结果类型强制转换为持有结果的类型,而a=a+b则不会自动进行类型转换.如:
byte a = 127; byte b = 127; b = a + b; // error : cannot convert from int to byte b += a; // ok /*(译者注:这个地方应该表述的有误,其实无论 a+b 的值为多少,编译器都会报错,因为 a+b 操作会将 a、b 提升为 int 类型,所以将 int 类型赋值给 byte 就会编译出错)*/
引用数据类型
- 非基本数据类型
- 使用方式和基本数据类型完全一样
- 属性
- 参数
- 返回值
赋值
使用new关键字来赋值,例外(String和包装器名)
- class类的引用
- 可以是我们自己创建的类,也可以引用java库中的类
java库中的类
- Object:Object是类层次结构的根类,每个类都是用Object作为超类,所有对象(包括数 组)都实现这个类的方法。用Object可以定义所有的类。如://来定义一个Interger类Object object= new Integer(1); // 在来把这个Object强制转换成Interger类 Integer i=(Integer) object;
String :String类代表字符串,Java 程序中的所有字符串字面值(如”abc”)都作为此类的实例来实现。
- Date :Date表示特定的瞬间,精确到毫秒。Date类现在都被Calendar 和GregorianCalendar所有代替
- Void :Void 类是一个不可实例化的占位符类,它保持一个对代表 Java 关键字 void 的 Class 对象的引用。
同时也有对应的数字包装类如:Integer 、Long、 Boolean 、Byte 、Character 、Double 、Float 、Short
基本数据类型和引用类型的区别
基本数据类型引用数据类概念变量(单纯的值)对象(引用) 存储位置在栈中存值在栈中存引用,在堆中存具体对象的属性值赋值方式直接赋值new,String类和包装器类可以直接赋值
阅读全文
0 0
- JAVA数据类型
- Java数据类型
- java数据类型
- Java数据类型
- Java 数据类型
- java数据类型
- Java数据类型
- java数据类型
- java数据类型
- Java 数据类型
- Java 数据类型
- JAVA数据类型
- java数据类型
- java数据类型
- Java数据类型
- Java数据类型
- Java数据类型
- java 数据类型
- vue全家桶系列3webpack遇见vue-loader
- 简单错误记录
- 机器学习读物
- 为啥四年一闰,百年不闰,四百年又一闰
- MFC函数执行顺序
- Java数据类型
- 《程序设计基础(C语言)》拾遗
- 未能加载文件或程序集“DAL”或它的某一个依赖项。系统找不到指定的文件
- java调用redis的八种方式
- 三极管的工作原理
- 《JavaScript高级程序设计》总结 第五章 引用类型
- linux下qt5.5 连接mysql数据库详细步骤
- 中兴面试题解一
- hadoop关于org.apache.hadoop.security.AccessControlException: Permission denied: user=Administrator, ac