The basic data type wrapper class is introduced here. Integer is the wrapper class of int,
The methods of wrapper classes of other basic data types are almost the same as those of Integer, and one of them can be used for plenary session
Characteristics of basic data type wrapper class: used for conversion between basic data type and string
These classes belong to the core classes of java and do not need import
Method of Integer class:
parseInt method
Example:
Change string to basic type
package demo; public class IntegerDemo { public static void main(String[] args) { function1(); function2(); } public static void function1() { int i = Integer.parseInt("-12"); // You can change a string into int type System.out.println(i / 2);// -6 } public static void function2() { int i = Integer.parseInt("1010", 2); // Convert a binary string to decimal int type System.out.println(i);// 10 } }
You can also change a basic type to a string:
package demo; public class IntegerDemo { public static void main(String[] args) { function1(); function2(); function3(); } public static void function1() { int i = 3; String string = i + ""; System.out.println(string + 1); // Output string 31 here } public static void function2() { int i = 3; // there toString Method is not a method that overrides the parent class String string = Integer.toString(i); System.out.println(string + 1); // Output string 31 } public static void function3() { int i = 5; String string = Integer.toString(i, 2); System.out.println(string); // Convert to binary number, output string 101 } }
The construction method of Integerl class:
Example:
package demo; public class IntegerDemo { public static void main(String[] args) { function1(); } public static void function1() { Integer integer = new Integer("100"); int i = integer.intValue(); // Review here by the way i++and++i The difference between // System.out.println(i++);//100 System.out.println(++i);// 101 } }
Other methods:
package demo; public class IntegerDemo { public static void main(String[] args) { function1(); function2(); } public static void function1() { // Integer Static member variable of class System.out.println(Integer.MAX_VALUE); System.out.println(Integer.MIN_VALUE); System.out.println(Integer.SIZE); // Output 2147483647 -2147483648 32 } public static void function2() { int i = 666; System.out.println(Integer.toBinaryString(i));// 1010011010 of binary string System.out.println(Integer.toOctalString(i));// 1232 of octal string System.out.println(Integer.toHexString(i));// Hexadecimal 29 a } }
Features after JDK 1.5: automatic packing and unpacking
Auto packing: basic data type, directly changed to object
Auto unbox: data in object changes back to basic data type
Example:
package demo; public class IntegerDemo { public static void main(String[] args) { function1(); } public static void function1() { Integer integer = 1; //It's appropriate to write like this. Automatic packing //Essentially: Integer in = new Integer(1) integer = integer + 1; //Unpack automatically, split reference type into basic type and do operation again //Essentially: integer+1 <==> integer.intValue()+1 = 2 //Reassign to integer Automatic packing System.out.println(integer); //Print the object, but not the object address, but 1 } }
Benefits of automatic boxing and unpacking:
It is easy to operate and simplify the code, so that the basic type and reference type can be calculated directly
Disadvantages: for example, Integer in = null; in = in + 1; exceptions will appear here, and corresponding processing methods must be added
Precautions for automatic packing and unpacking:
There's a place where there's a lot of holes in Java interviews,
package demo; public class IntegerDemo { public static void main(String[] args) { function1(); function2(); function3(); } public static void function1() { Integer i = new Integer(1); Integer j = new Integer(1); System.out.println(i==j);//false //Here we compare the addresses of two objects. Of course, they are different System.out.println(i.equals(j));//true //Here is the data of the comparison object, not the address } public static void function2(){ Integer a = 500; Integer b = 500; System.out.println(a==b);//false System.out.println(a.equals(b));//true } public static void function3(){ Integer a = 127; Integer b = 127; System.out.println(a==b);//true //Note here that greater than 128 is false //When the data is in bytes In scope, JVM No new objects will be created to save memory //Here Integer b = 127 <==> Integer b = a System.out.println(a.equals(b));//true } }