这里介绍基本数据类型包装类,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. C++彩色数据流动界面

    一个数据流动界面 #include <windows.h> #include <time.h> #include <cstdio> #include <str ...

  2. keystone V3 与Microsoft Active Directory(AD)的集成

    一  环境准备 1. 安装或在现有的windows server2008,操作Microsoft Acitve Directory(下面简称AD).欲了解AD请看系列文章[深入浅出ActiveDire ...

  3. Power Designer如何批量改动数据类型

    最近做项目的时候须要将OOM转换为PDM.在OOM中转换为PDM时,全部string的类型的属性都默认变为varchar(254),这可不是我们须要的类型,那么.如此多的类.如此多的属性.难道一个一个 ...

  4. 抓包工具 fiddler

    1. 抓包软件 TCP 外挂: 1. 解包工具  2.抓包工具 HTTP 1.前后端交互过程 2.学习的作用 3.模拟网络情况 2 http client server 没有加密 https 证书 非 ...

  5. springboot 热部署的两种方式

    问题的提出: 在编写代码的时候,你会发现我们只是简单把打印信息改变了,就需要重新部署,如果是这样的编码方式,那么我们估计一天下来就真的是打几个Hello World就下班了.那么如何解决热部署的问题呢 ...

  6. 「mysql优化专题」优化之路高级进阶——表的设计及优化(6)

    正文:表的设计及优化(真技术文) 优化①:创建规范化表,消除数据冗余 数据库范式是确保数据库结构合理,满足各种查询需要.避免数据库操作异常的数据库设计方式.满足范式要求的表,称为规范化表,范式产生于2 ...

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

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

  8. 浅谈Android数据库DBFlow

    一.项目配置 1.根目录下的build.gradle 中添加 maven { url "https://www.jitpack.io" } 如下: classpath 'com.n ...

  9. Pycharm配置(二)

    1.主题 这部分教程主要介绍如何创建一个Python工程并使其具有Pycharm的代码风格.你将会看到Pycharm使你的源码变得非常简洁美观,带有合适的缩进.空格等等,因此Pycharm也是一款代码 ...

  10. MongoDB入门系列(二):Insert、Update、Delete、Drop

    概述 本章节介绍Insert.Update.Delete.Drop操作基本语法. 环境: Version:3.4 insert insert()基本语法如下: db.collection.insert ...