基本数据类型及其包装类
2018-04-07 14:32
337 查看
之前的文章,可能完全出于笔记,或者记录而言,并没有带着分享的心得去写,有一些内容笔记知识点写的不够全面,希望读者可以多给点建议,这次我也总结下基本数据类型及其包装类这一刻的内容,查阅了网上资料,大家可以了解下,翻翻看。
1 boolean 数值只有true和false,不能用0代替。其他数值类型不能转换成boolean。包装类–Boolean
2 byte -内存8位,无符号位时最大存储255,表数范围:-128~127。包装类–Byte
3 short -内存16位,无符号位时最大存储65536,表数范围:-32768~32767。包装类–Short
4 int -内存32位,无符号位时最大存储2的32次方减1,表数范围:负的2的31次方到正的2的31次方减1。包装类–Integer。
5 long -内存64位,无符号位时最大存储2的64次方减1,表数范围:负的2的63次方到正的2的63次方减1。包装类–Long。
6 float -内存32位,数据范围在3.4e-45~1.4e38,直接赋值时必须在数字后加上f或F。包装类–Float。
7 double -内存64位,数据范围在4.9e-324~1.8e308,赋值时可以加d或D也可以不加。包装类–Double。
8 char:-16位,存储Unicode字符集,用单引号赋值。可以参与加减乘除运算的,也可以比较大小的!!包装类–Character。
2.1 提供了一系列实用的方法
java提供相应的包装类的目的:为了方便操作基本数据类型值,将其封装成了对象,在对象中定义了属性和行为,丰富了该数据的操作,面向对象
a)基本类型 转换 String:
1)用String类中的静态方法valuOf(基本类型数值)
b.String 转换 基本类型:
1).使用包装类中的静态方法 xxx parseXxx(“xxx类型的字符串”):
只有Character没有parse方法,不需要
2)如果字符串被Integer进行了封装。
可以用另一个非静态的方法,intValue():
进制转换:
数字对象的运算
JDK1.5自动装箱拆箱:
l自动装箱
Integer a = 5
编译器编译为:
Integer a = Integer.valueOf(5);
自动拆箱
int i = a;
编译为:
int i = a.intValue();
a = a+1;
编译为:
a = Integer.valueOf(a.intValue()+1);
自动拆箱要当心 null 值
a+1 –> a.intValue()+1
如果a是null,程序出错
Integer的缓存机制
Integer 类中,存在[-128,127]范围的缓存对象,如果指定范围内的值,直接访问缓存对象,如果指定范围外的值,创建新对象
2.2集合不允许存放基本数据类型数据,存放数字时,要用包装类型
自动装包与拆包:自动装包/拆包大大方便了基本类型数据和它们包装类地使用。
自动装包:基本类型自动转为包装类.(int >> Integer)
自动拆包:包装类自动转为基本类型.(Integer >> int)
一 基本数据类型的系统描述:
总述:Java基本数据类型分为两大类:boolean类型和数值类型。数值类型可分为整数类型和浮点类型,而其中字符类型可单独对待。所以Java只包含8种基本数据类型。1 boolean 数值只有true和false,不能用0代替。其他数值类型不能转换成boolean。包装类–Boolean
2 byte -内存8位,无符号位时最大存储255,表数范围:-128~127。包装类–Byte
3 short -内存16位,无符号位时最大存储65536,表数范围:-32768~32767。包装类–Short
4 int -内存32位,无符号位时最大存储2的32次方减1,表数范围:负的2的31次方到正的2的31次方减1。包装类–Integer。
5 long -内存64位,无符号位时最大存储2的64次方减1,表数范围:负的2的63次方到正的2的63次方减1。包装类–Long。
6 float -内存32位,数据范围在3.4e-45~1.4e38,直接赋值时必须在数字后加上f或F。包装类–Float。
7 double -内存64位,数据范围在4.9e-324~1.8e308,赋值时可以加d或D也可以不加。包装类–Double。
8 char:-16位,存储Unicode字符集,用单引号赋值。可以参与加减乘除运算的,也可以比较大小的!!包装类–Character。
二 包装类
1. 包装类把基本类型数据转换为对象
每个基本类型在java.lang包中都有一个相应的包装类2. 包装类有何作用
2.1 提供了一系列实用的方法
java提供相应的包装类的目的:为了方便操作基本数据类型值,将其封装成了对象,在对象中定义了属性和行为,丰富了该数据的操作,面向对象
包装类共性:
和String类型相互转换a)基本类型 转换 String:
1)用String类中的静态方法valuOf(基本类型数值)
b.String 转换 基本类型:
1).使用包装类中的静态方法 xxx parseXxx(“xxx类型的字符串”):
Byte.parseByte() Short.parseShort() Integer.parseInt() 字符串转成int整数 Long.parseLong() Float.parseFloat() Double.parseDouble() Boolean.parseBoolean()
只有Character没有parse方法,不需要
2)如果字符串被Integer进行了封装。
可以用另一个非静态的方法,intValue():
Integer i = new Integer("123"); i.intValue();
进制转换:
1.十进制 转换 其他进制: String toBinaryString(int i); 转换成二进制 toOctalString(int i); 转换成八进制 toHexString(int i); 转换成十六进制 toString(int i, int radix); 转换成指定进制 2.其他进制 转换 十进制: int parseInt(String s, int radix); (Integer valueOf(String s, int radix); 返回的值不能运算,还是字符串。)
数字对象的运算
//数字对象的运算: Integer a = new Integer("3"); Integer b = new Integer(3); Integer c = new Integer(1); System.out.println(a==b); //false System.out.println(a.equals(b)); //true , 比较数值是否相同 System.out.println(c.compareTo(a)); //比较
JDK1.5自动装箱拆箱:
l自动装箱
Integer a = 5
编译器编译为:
Integer a = Integer.valueOf(5);
自动拆箱
int i = a;
编译为:
int i = a.intValue();
a = a+1;
编译为:
a = Integer.valueOf(a.intValue()+1);
自动拆箱要当心 null 值
a+1 –> a.intValue()+1
如果a是null,程序出错
Integer的缓存机制
Integer 类中,存在[-128,127]范围的缓存对象,如果指定范围内的值,直接访问缓存对象,如果指定范围外的值,创建新对象
2.2集合不允许存放基本数据类型数据,存放数字时,要用包装类型
自动装包与拆包:自动装包/拆包大大方便了基本类型数据和它们包装类地使用。
自动装包:基本类型自动转为包装类.(int >> Integer)
自动拆包:包装类自动转为基本类型.(Integer >> int)
3.String 基本数据类型 包装类 三者的转换
/** * 【面试题】——"34 9 -7 67 25"要求对这个字符串中的数值进行从小到大的排序, * 生成一个数值有序的字符串。 * 思路: * 1. 把其中的数拿出来,——对字符串进行切割。 * 2. 对数进行排序 * 3. 再追加成字符串。 *步骤:1.将字符串切割成字符串数组。split。 * 2.定义一个int数组,将字符串数组中的元素转成整数存储 到int数组中 * 3.对int数组排序 * 4.将int数组排序后转成字符串数组 * @author asus * */ public class Test3 { public static void main(String[] args) { String s ="34 9 -7 67 25"; //用空格对原字符串进行切割,转成字符串数组 String[] s1 =s.split(" "); int[] arr = new int[s1.length]; //将字符串数组转成int类型数组 for (int i = 0; i < s1.length; i++) { arr[i] = Integer.parseInt(s1[i]); } //对int类型的数组进行排序 for (int i = 0; i < s1.length-1; i++) { for(int j=0;j<s1.length-1-i;j++) { if(arr[j]>arr[j+1]) { int temp=arr[j]; arr[j]=arr[j+1]; arr[j+1] =temp; } } } //定义字符串缓冲区,并将int类型数组转换成字符串类型的数组 StringBuilder sb = new StringBuilder(); for (int i = 0; i < arr.length; i++) { if(i!=arr.length-1) sb.append(arr[i]+" "); else sb.append(arr[i]); } System.out.println(sb); } }
相关文章推荐
- 黑马程序员——java编程那些事儿____基本数据类型对象包装类及其jdk1.5新特性
- Java基础之011-Java基本数据类型及其包装类
- 深入Java基础(一)——基本数据类型及其包装类
- Java基本数据类型及其包装类
- Java基本数据类型及其包装类
- 深入Java基础(一)——基本数据类型及其包装类
- 【深入Java基础】java八种基本数据类型及其包装类
- Java——String类及其操作和基本数据类型包装类
- java包含哪些基本数据类型及其包装类
- HashSet中包装类及其对应的基本类型重复数据问题
- Java中的基本数据类型及其封装类
- 【黑马程序员】------java基础----String类、StringBuffer(StringBuilder)、基本数据类型包装类
- java 基本数据类型、包装类、字符串、数组之间的类型转换
- Integer与int的区别(包装类和基本数据类型的区别)
- 黑马程序员_String练习和基本数据类型包装类
- 基本数据类型对象包装类
- Java基本数据类型对应的包装类
- 基本数据类型及其包装类(二)
- String类与基本数据类型对象包装类
- java--基本数据类型与对应的包装类