12_wrapper_class_day06.txt

来自「达内科技上课的 java学习笔记 分为18天学完」· 文本 代码 · 共 91 行

TXT
91
字号
包装类
	面向对象的基础就是把所有事物当成对象来看。
	一部分是8种基本类型,一种就是对象类型。
	
	8种基本类型它不是对象。java为什么要把基本类型的值保存下来,是基于性能的考虑。

	基本数据类型不是面向对象的。

	所以java为了弥补,给8种基本类型提供了包装类,这些类都从Object继承下来。

	PrimitiveType			WrapperClass
	boolean					Boolean
	byte						Byte
	short					Short
	char						Character
	int						Integer
	long					Long
	float					Float
	double					Double
	
	这些包装类都定义在java.lang包下面。
java.lang.Integer
	构造方法
		Integer(int value) //一个整形值
		  构造一个新分配的 Integer 对象,它表示指定的 int 值。 
		Integer(String s) //包含整形数组的字符串
		  构造一个新分配的 Integer 对象,它表示 String 参数所指示的 int 值。 
	常用方法
		int intValue() 以 int 类型返回该 Integer 的值。 

		static int parseInt(String s) 将字符串参数作为有符号的十进制整数。
			Integer.parseInt(args[0]);//这样就可以把一个参数转换成一个整形数。
		static int parseInt(String s, int radix) 
			使用第二个参数指定的基数,将字符串参数解析为有符号的整数。 
			Integer.parseInt("12",8);//以8进制的方式把"12"解析成整形值。结果:10
		 
		 String toString() 
			  返回一个表示该 Integer 值的 String 对象。 
		static String toString(int i) 
			  返回一个表示指定整数的 String 对象。 
		static String toString(int i, int radix) 
			  用第二个参数指定的基数返回第一个参数的字符串表示形式。 
			  Integer.toString(10,8);答案:"12"

		static Integer valueOf(int i) 
			返回一个表示指定的 int 值的 Integer 实例。 
		static Integer valueOf(String s) 
			返回保持指定的 String 的值的 Integer 对象。 
		static Integer valueOf(String s, int radix) 
			返回一个 Integer 对象,该对象中保持了用第二个参数提供的基数进行分析时从指定的 String 中提取的值。
			
		int->Integer
			valueOf();new Integer(int i);
		int -> String
			Integer.toString();
		Integer ->int
			intValue();
		Integer -> String
			toString();//非静态的。
		String->int
			Integer.paresInt(int i)
		String -> Integer
			new Integer(String s);valueOf();

		Integer i1=5;<=>Integer i1=Integer.valueOf(5);
		在jdk5.0里面这叫做“自动封箱”。
		int i=5;Integer a=i;int b=i+a;
		这里实际上是编译器作了默默的处理。把Integer对象赋值给一个int值。
	
	数值类型的不变模式
		包装类对象的值也是不可以被改变的也是使用了不变模式。
			for(Integer i=0;i<10000;i++);
		那么这个对象就产生了10000个垃圾。
		那么Integer为什么不像String那样定义两个没有缓冲区的对象StringBuffer  StringBuilder。
		也就是如果一个值需要频繁的更改那么最好使用int。
	
	对象池
		对于这些数值类型,他们的对象池有个特点。
		Integer i1=250;
		Integer i2=250;
		Integer i3=5;
		Integer i4=5;
		System.out.println(i1==i2);//false
		System.out.println(i3==i4);//true
		-128~127这段范围内是true,超出这个范围是false;
		这个对象池只在一个byte的范围内可以从对象池里面取,超出的都不会去取。

	包装类:
		我们不得不使用一个对象的时候就需要用到包装类。
		1、集合
		2、使用包装类的意义。

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?