发表时间:2022-03-25来源:网络
Java是一种强类型语言,每一个变量都必须声明数据类型才能使用。Java中有两种数据类型:基本数据类型和引用数据类型。
Java中基本数据类型共有四大类:整型、浮点型、字符型、布尔型,其值都存放在栈里。其中:
整型用来表示整数,一共有四种类型:byte、short、int、long。 浮点型用来表示小数,有两种类型:float和double。 字符型是单引号括起来的字符或转义序列,用16位的Unicode编码作为编码方式,占两个字节。 布尔型用于判断逻辑条件,只有“true”和“false”两种取值。整型和浮点型所占字节和表示范围如下:
整型 byte 占一字节 -27 ~ 27 -1 (即-128 ~127) short 占两字节 -215 ~ 215 - 1(即-32768 ~ 32767) int 占四字节 -231 ~ 231 - 1 long 占八字节 -263 ~ 263 -1 浮点型 float 占四字节 2-149 ~ 2128 - 1 double 占八字节2-1074 ~ 21024 -1
Java中的基本数据类型转换一共有三种:
扩展转换 强制转换 包装类过渡类型转换 1.扩展转换当低精度类型转换成高精度类型时,不会发生信息的丢失。如下图所示:

其中:
实线部分表示转换过程中不会发生信息丢失,整型转为浮点型(除int转double外)都会发生信息丢失。 当char转为int型时,是将字符的ASII码值转为int。 高精度转低精度会发生信息丢失,需要用强制转换进行转换。 1 byte a = 127; 2 int b = a; 3 System.out.println("the value of b is " + b); 4 5 //输出结果 6 the value of b is 127 7 8 9 char c = 'c'; 10 int d = c; 11 System.out.println("the value of d is "+ d); 12 13 //输出结果 14 the value of d is 992.强制转换
强制转换常用高精度转低精度,语法格式为圆括号中给出想要转化的目标类型,后面紧跟需要转换的变量名,强制转化会发生溢出或精度下降。
double x = 9.997; int y = (int)x; System.out.println("the value of y is " + y); //运行结果 the value of y is 9 3.包装类过渡类型转换 Java中的包装类是将简单数据类型当成对象包装成一个类,并封装一些转换功能,共有Boolean、Character、Integer、Long、Float 和Double,分别对应boolean,char,int,long,float,和double类型。其转换方法为:对于要转换的变量,首先生成变量当前的包装类,然后调用该包装类的转换方法进行转换。如:
引用数据类型指向一个对象,不是原始值,指向对象的变量为引用变量,存放在堆中。
在Java中,除去基本数据类型其余都为引用数据类型,共有类、接口和数组。常见有String,ArrayList,HashSet,HashMap以及自定义的类等。
引用数据类型与基本数据类型比较相等的方式有所不同,基本数据类型是通过“==”,引用数据类型是通过调用equals()方法来进行比较。
引用分类可分为强引用、软引用,弱引用和虚引用四种 。
强引用(空间不回收)一般使用的引用都为强引用,通过new来创建。当内存空间不足时,虚拟机宁愿抛出OutOfMemoryError也不会回收该对象来解决程序的异常。
Object strongReference = new Object();在强引用对象不使用时,需要弱化该对象能够回收(strongReference=null)或使其超出对象的生命周期范围;强引用保存在栈中,引用内容保存在堆中,当强引用的方法运行完成时,就会退出方法栈,引用对象个数为0。此时便已超出生命周期,该对象便会被回收。
软引用(空间不足就回收)软引用可以用来实现内存敏感的高速内存,当内存空间不足时,就会回收这些对象的内存。
// 强引用 String strongReference = new String("abc"); // 软引用 String str = new String("abc"); SoftReference softReference = new SoftReference(str);软引用可以和一个引用队列(ReferenceQueue)联合使用。如果软引用所引用对象被垃圾回收,JAVA虚拟机就会把这个软引用加入到与之关联的引用队列中。当内存不足时,JVM首先将软引用中的对象引用置为null,然后通知垃圾回收器进行回收。
弱引用(发现便回收)
弱引用与软引用的区别在于:只具有弱引用的对象拥有更短暂的生命周期。在垃圾回收器线程扫描它所管辖的内存区域的过程中,一旦发现了只具有弱引用的对象,不管当前内存空间足够与否,都会回收它的内存。不过,由于垃圾回收器是一个优先级很低的线程,因此不一定会很快发现那些只具有弱引用的对象。
String str = new String("abc"); WeakReference weakReference = new WeakReference(str); str = null; 虚引用(任何时候都有可能回收)虚引用并不会决定对象的生命周期。如果一个对象仅持有虚引用,那么它就和没有任何引用一样,在任何时候都可能被垃圾回收器回收。主要用来跟踪对象被垃圾回收器回收的活动。虚引用与软引用和弱引用的一个区别在于:
虚引用必须和引用队列(ReferenceQueue)联合使用。当垃圾回收器准备回收一个对象时,如果发现它还有虚引用,就会在回收对象的内存之前,把这个虚引用加入到与之关联的引用队列中。 String str = new String("abc"); ReferenceQueue queue = new ReferenceQueue(); // 创建虚引用,要求必须与一个引用队列关联 PhantomReference pr = new PhantomReference(str, queue);
Integer.valueOf(str).intValue();
通过Integer.parse*进行转换,parseInt”中的"Int"也转换成其基本类型但是此时该基本类型的首字母要大写。Integer.parseInt(str);
皓盘云建最新版下载v9.0 安卓版
53.38MB |商务办公
ris云客移动销售系统最新版下载v1.1.25 安卓手机版
42.71M |商务办公
粤语翻译帮app下载v1.1.1 安卓版
60.01MB |生活服务
人生笔记app官方版下载v1.19.4 安卓版
125.88MB |系统工具
萝卜笔记app下载v1.1.6 安卓版
46.29MB |生活服务
贯联商户端app下载v6.1.8 安卓版
12.54MB |商务办公
jotmo笔记app下载v2.30.0 安卓版
50.06MB |系统工具
鑫钜出行共享汽车app下载v1.5.2
44.7M |生活服务
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-02-15
2022-02-14