这里介绍基本数据类型包装类,Integer是int的包装类,

其他的基本数据类型的包装类的方法和Integer的方法几乎一致,会一种即可全会

基本数据类型包装类的特点:用于在基本数据类型和字符串之间进行转换

这些类属于java的核心类,不需要import

Integer类的方法:

parseInt方法

示例:

将字符串变成基本类型

package demo;

public class IntegerDemo {
public static void main(String[] args) {
function1();
function2();
} public static void function1() {
int i = Integer.parseInt("-12");
// 可以把一个字符串变成int型
System.out.println(i / 2);// -6
} public static void function2() {
int i = Integer.parseInt("1010", 2);
// 将一个二进制数的字符串转成十进制int型
System.out.println(i);//
}
}

同样可以将基本类型变成字符串:

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);
// 这里输出字符串31
} public static void function2() {
int i = 3;
// 这里的toString方法不是重写父类的方法
String string = Integer.toString(i);
System.out.println(string + 1);
// 输出字符串31
} public static void function3() {
int i = 5;
String string = Integer.toString(i, 2);
System.out.println(string);
// 转成二进制数,输出字符串101
}
}

Integerl类的构造方法:

示例:

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();
// 这里顺便复习下i++和++i的区别
// System.out.println(i++);//
System.out.println(++i);//
}
}

其他方法:

package demo;

public class IntegerDemo {
public static void main(String[] args) {
function1();
function2();
} public static void function1() {
// Integer类的静态成员变量
System.out.println(Integer.MAX_VALUE);
System.out.println(Integer.MIN_VALUE);
System.out.println(Integer.SIZE);
// 输出 2147483647 -2147483648 32
} public static void function2() {
int i = 666;
System.out.println(Integer.toBinaryString(i));// 二进制字符串的1010011010
System.out.println(Integer.toOctalString(i));// 八进制字符串的1232
System.out.println(Integer.toHexString(i));// 十六进制的29a }
}

JDK1.5以后出现的特性:自动装箱,自动拆箱

自动装箱:基本数据类型,直接变成对象

自动拆箱:对象中的数据变回基本数据类型

示例:

package demo;

public class IntegerDemo {
public static void main(String[] args) {
function1();
} public static void function1() {
Integer integer = 1;
//这样写是合适的,自动装箱
//本质上:Integer in = new Integer(1)
integer = integer + 1;
//自动拆箱,把引用类型拆成基本类型再做运算
//本质上:integer+1 <==> integer.intValue()+1 = 2
//再赋值给integer时候,自动装箱
System.out.println(integer);
//打印对象,但不是对象地址,而是1
}
}

自动装箱和拆箱的好处:

方便操作,简化代码,使基本类型和引用类型之间可以直接计算

弊端:例如Integer in = null;  in = in + 1;这里就会出现异常,必须加入相应的处理方法

关于自动装箱和拆箱的注意事项:

这里有一个在Java面试中坑了很多人的地方,

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
//这里比较的是两个对象的地址,当然不同
System.out.println(i.equals(j));//true
//这里是比较对象的数据,不比较地址
} 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
//这里注意,大于128就是false
//当数据在bytes范围内,JVM为了节约内存不会创建新对象
//这里Integer b = 127 <==> Integer b = a
System.out.println(a.equals(b));//true
}
}

Java学习笔记24(Integer类)的更多相关文章

  1. java学习笔记7--抽象类与抽象方法

    接着前面的学习: java学习笔记6--类的继承.Object类 java学习笔记5--类的方法 java学习笔记4--类与对象的基本概念(2) java学习笔记3--类与对象的基本概念(1) jav ...

  2. 【原】Java学习笔记031 - 常用类

    package cn.temptation; public class Sample01 { public static void main(String[] args) { /* * 类 Math: ...

  3. 1.9(java学习笔记)object类及toString()与equals()方法

    object类 java中objec是所有类公共的父类,一个类只要没有明显的继承某一类,那么它就是继承object类. 例如 class Person {......};和class Person e ...

  4. Java学习笔记16---抽象类与接口的浅显理解

    抽象类是由abstract修饰的类,定义方式如public abstract class A{...}. 接口由interface修饰,定义方式如public interface B{...}. 抽象 ...

  5. Java学习笔记day06_自定义类_ArrayList

    1.自定义类class 使用类的形式, 对现实中的事物进行描述. 类是引用数据类型. 事物: 方法,变量. 方法:事物具备的功能. 变量:事物的属性. 格式: public class 类名{ //属 ...

  6. Java学习笔记(2)——有关类

    Java类的高级特性: {Java管理文件机制:类包. 同一个包中的类互相访问时,可以不指定包名. 同一个包中的类不必存放在同一位置,如com.lang.class1和com.lang.class2可 ...

  7. Java学习笔记24(Map集合)

    Map接口: Map接口与Collection接口无继承关系. 区别:Collection中的元素是孤立的,一个一个存进去的. Map作为一个映射集合,每一个元素包含Key-value对(键-值对). ...

  8. Java学习笔记5(类的入门以及ArrayList)

    1.类的概念:将现实生活中的事物抽象成了代码(类),我们可以使用自定义的数组类型(类)来描述现实生活中的事物. 2.分析:用一部手机来分析,手机可以打电话,上网,听音乐,这些就是方法,手机有型号,颜色 ...

  9. 0029 Java学习笔记-面向对象-枚举类

    可以创建几个对象? n多个:大部分的类,都可以随意创建对象,只要内存不爆掉 1个:比如单例类 有限的几个:采用单例类的设计思路,可以只允许创建少数的几个特定的对象:还有就是枚举类. 创建少数几个对象, ...

随机推荐

  1. 黑马day16 jquery&amp;属性过滤选择器

    属性过滤选择器的过滤规则是通过元素的属性来获取对应的元素 .[attribute] 使用方法: $("div[id]") ;  返回值  集合元素 说明:匹配包括给定属性的元素.样 ...

  2. hdu4893 Wow! Such Sequence!

    线段树结点上保存一个一般的sum值,再同一时候保存一个fbsum,表示这个结点表示的一段数字若为斐波那契数时的和 当进行3操作时,仅仅用将sum = fbsum就可以 其它操作照常进行,仅仅是单点更新 ...

  3. linux0.11学习笔记(1)

    公布软件包包括内容: bootimage.Z - 具有美国键盘代码的压缩启动映像文件: rootimage.Z - 以1200kB 压缩的根文件系统映像文件: linux-0.11.tar.Z- 内核 ...

  4. orale 查询每年、每月、每日统计量的sql语句

    每年 select to_char(createtime, 'YYYY') 年, count(*) from table  group by to_char(createtime, 'YYYY'); ...

  5. C3P0 APPARENT DEADLOCK

    一,c3p0执行一段时间后报错例如以下 W 07-26_00:58:27 ThreadPoolAsynchronousRunner.java 608 com.mchange.v2.async.Thre ...

  6. webpack+babel项目在IE下报Promise未定义错误引出的思考

    低版本浏览器引起的问题 最近开发一个基于webpack+babel+react的项目,一般本地是在chrome浏览上面开发,chrome浏览器开发因为支持大部分新的js特性,所以一般不怎么需要poly ...

  7. 史上最强学生管理系统之IO版

    既上一博发布的ArrayList版本之后,新一版的IO版又来了,其实只是在上一个版本里面添加了IO流的内容,将存入更改的信息更新到了文件中而已,这个版本网上仍然很多,本人只是在某些方面稍加修改,因为自 ...

  8. AOP入门(转)

    本文转自http://www.cnblogs.com/yanbincn/archive/2012/06/01/2530377.html Aspect Oriented Programming  面向切 ...

  9. sqlser 2005 使用执行计划来优化你的sql

    一:sqlserver 执行计划介绍    sqlserver 执行计是在sqlser manager studio 工具中打开,是检查一条sql执行效率的工具.建议配合SET STATISTICS ...

  10. ios应用版本号设置规则

    版本号的格式:v<主版本号>.<副版本号>.<发布号> 版本号的初始值:v1.0.0 管理规则: 主版本号(Major version) 1.  产品的主体构件进行 ...