心有所念,必有所灵
—— 24.5.10
一、基本数据类型对应的引用数据类型(包装类)
1概述
就是基本类型所对应的类(包装类),我们需要将基本类型转为包装类,从而让基本类型拥有类的特性(是基本类型可以使用包装类中的方法操作数据)
2.为什么学包装类
a.将来有一些特定场景,特定操作,比如调用方法传递包装类
比如:ArrayList集合,里面有一个方法add(Integer i),此时我们不能调用add方法之后直接传递基本类型,因为引用类型不能直接接收基本类型的值,就需要先将基本类型转成包装类,传递到add方法中
b.将来我们还可以将包装类转成基本类型
包装类不能直接使用 + - * /,所以需要将包装类转成基本类型,才能使用+ - * /
二、Integer的介绍以及使用
1.integer基本使用
概述
Integer是int的包装类
构造
Integer(int value)
Integer(string s) s必须是数字形式
public class Demo188Integer { public static void main(String[] args) { Integer i1 = new Integer(10); System.out.println("i1 = "+i1); Integer i2 = new Integer("10"); System.out.println("i2 = "+i2); System.out.println("————————————————————————"); Boolean b1 = new Boolean("true"); System.out.println("b1 = "+b1); Boolean b2 = new Boolean("false"); System.out.println("b2 = "+b2); Boolean b3 = new Boolean("True"); System.out.println("b3 = "+b3); } }
2.valueOf装箱
将基本类型转成对应的包装类
方法:
static Integer valueof(int i)
static Integer valueof(String s)
3.数据类型+Value拆箱
将包装类转成基本类型
方法:
int intvalue()
package S63Integer; public class Demo190IntValue { public static void main(String[] args) { Integer i1 = Integer.valueOf(10); System.out.println("i1 = "+ i1); int i2 = i1.intValue(); System.out.println("(i2+10) = "+(i2+10) ); } }
4.自动拆箱装箱
//1、包装类中的自动装箱拆箱机制 Integer num1 = 1; //自动装箱 int num2 = num1; //自动拆箱 System.out.println(num1 +" "+ num2);
拆箱和装箱都是自动完成的
public class Demo191IntegerOpsite { public static void main(String[] args) { Integer i = 1; // 发生了自动装箱 Integer sum = i+6;// 发生了自动拆箱装箱 System.out.println("sum = "+ sum); } }
数组里装的是-128~127间的Integer对象,如果在-128 ~ 127之间 直接从数组里取元素返回,转化为基本数据类型,不用new对象
public class Demo192Integer { public static void main(String[] args) { // 自动装箱 Integer i1 = 100; Integer i2 = 100; System.out.println(i1 == i2); // 如果在-128 ~ 127之间 直接从数组里取元素返回,不用new对象 // 自动装箱 Integer i3 = 128; Integer i4 = 128; System.out.println(i3 == i4); } }
对上述代码进行反编译
Integer integer = Integer.valueOf(1); int i = integer.intValue(); System.out.println((new StringBuilder()).append(integer).append("\t").append(i).toString());
三、基本类型和String之间的转换
1 基本类型往String转
①方式1:
+拼接
②方式2:
String中的静态方法static String valueof(int i)
③示例
public class Demo193StringParse { public static void main(String[] args) { int i = 10; String s1 = i+""; System.out.println(s1+1); System.out.println(s1.getClass().toString()); System.out.println("——————————————————————————"); String s = String.valueOf(10); System.out.println(s+1); System.out.println(s.getClass().toString()); } }
2.String转成基本数据类型
每个包装类中都有一个类似的方法:parsexxx
public class Demo194Parse { public static void main(String[] args) { method01(); method02(); } private static void method02() { int num = Integer.parseInt("1111"); System.out.println("(num+1) = " + num+1); } private static void method01() { } }
1.在实际开发过程中如何定义一个标准javabean?
定义javabean的时候一般会将基本类型的属性定义成包装类型的属性
public class User { private int uid;// 用户id private String username;// 用户名 private String password;// 密码 public User() { } public User(int uid, String username, String password) { this.uid = uid; this.username = username; this.password = password; } public int getUid() { return uid; } public void setUid(int uid) { this.uid = uid; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
1.举例:如果uid为Integer型,默认值是null
2.将来javabean中的数据都是和数据库表联系起来的,我们可以将javabean中的数据添加到表中如果表中的uid为主键自增的,此时添加语句时,uid中的数据不用我们单独维护赋值了,添加语句的sql语句就可以这样写:
insert into user(uid,username,password)values (NULL,'金莲','36666');
3.到时候,我们需要将javabean中封装的数据获取出来放到sq]语句中,如果uid为主键自增,而且javabean中的uid为包装类型,默认值为NULL,这样就不用单独维护uid的值了,也不用先给javabean中的uid赋值,然后在保存到数据库中了,咱们就可以直接使用uid的默认值,将默认值放到sql语句的uid列中
4.而且将javabean中的属性变成包装类,还可以使用包装类中的方法去操作此属性值