这里介绍基本数据类型包装类,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. 单源最短路径 dijkstra算法实现

    本文记录一下dijkstra算法的实现,图用邻接矩阵表示,假设图为无向图.而且连通,有向图,不连通图的做法相似. 算法简述: 首先确定"单源"的源.假设是第0个顶点. 维护三个数组 ...

  2. 《Qt on Android核心编程》介绍

    <Qt on Android核心编程>最终尘埃落定.付梓印刷了. 2014-11-02更新:china-pub的预售链接出来了.折扣非常低哦. 封面 看看封面的效果吧,历经几版,最终就成了 ...

  3. 多域名环境,页面获取url的一种方案

    因为系统是分布式部署的.而且有多个域名,所以常常涉及到获取url的问题. 这是系统框架层面须要提供的能力.否则每一个模块都须要自己去想办法获取ip,就会非常混乱.上线也easy发生bug 主要须要解决 ...

  4. Jenkins具体安装与构建部署使用教程

    Jenkins是一个开源软件项目.旨在提供一个开放易用的软件平台,使软件的持续集成变成可能. Jenkins是基于Java开发的一种持续集成工具,用于监控持续反复的工作,功能包含:1.持续的软件版本号 ...

  5. 如何处理使用js兼容所有浏览器的问题

    首先:如何处理兼容问题 1.如果两个都是属性,用逻辑||做兼容 2.如果有一个是方法,用三元做兼容 3.如果是多个属性或方法,封装函数做兼容 分享两个小知识点: 1.取消拖拽的默认行为: docume ...

  6. MQTT 设计原则

    MQTT 设计原则 简单. 没有杂七杂八的花俏功能,作为一个基础组件构建实用的系统,易于实现. "发布/订阅"消息传递方式. 随时接入随时发布.接收消息,无需太多其他"事 ...

  7. 使用Intellij IDEA的svn时提示出错:Can't use Subversion command line client: svn

    问题 原因是安装SVN的时候没有安装command-line功能,要单独安装VisualSVN 下载页面:http://subversion.apache.org/packages.html SVN1 ...

  8. 【java设计模式】【结构模式Structural Pattern】装饰模式Decorator Pattern

    public class Client { public static void main(String[] args) { Component component=new ConcreteCompo ...

  9. iOS pch文件创建使用,和info.plis文件路径改变,路径的设置

    一 路径报错: 二 pch创建设置: 一:如果要更改Info.plist与Prefix.pch文件实际路径,也就是实际文件的位置(不是在工程中的组织路径),需要到Build Settings中修改对应 ...

  10. 7.18 DP考试解题报告

    今天的考试真的是天崩地裂,写了的三个题全炸...然而谁叫我弱+不注意细节呢???真的要扇耳光... T1:题意:一段区间的高度为这个区间中高度的最小值,给定n个宽度,求每个宽度的期望高度 40% :算 ...