Java学习笔记24(Integer类)

时间:2021-07-27 07:49:35

这里介绍基本数据类型包装类,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&period;9(java学习笔记)object类及toString&lpar;&rpar;与equals&lpar;&rpar;方法

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

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

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

  5. Java学习笔记day06&lowbar;自定义类&lowbar;ArrayList

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

  6. Java学习笔记&lpar;2&rpar;——有关类

    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. linux Centos 6&period;5 安装桌面环境GNOME

    在某种场合之下,我们使用的Linux还是要选择安装桌面环境的,所以在这里介绍一下如何给没有安装桌面环境的系统安装桌面环境.以Centos 6.5 为例演示一下如何安装桌面环境. 工具/原料 Linux ...

  2. MySQL 5&period;7版本安装教程-踩坑总结

    下载 MySQL下载地址 选择下载64位(看自己电脑是32位还是64位) 点击下载之后,它会让你登录,没有Oracle账户,跟着它的步骤注册一个就好了. 安装 打开下载好的压缩包解压到你的某一目录下, ...

  3. Linux基本配置和管理 2 ---- Linux多命令协作----管道及重定向

    1 管道和重定向 1 在Linux中大多数命令都很简单,很少出现复杂的命令,每个命令只是实现一个简单的功能,我们可以通过组合不同的命令来实现复杂的功能 2 在Linux中几乎所有的命令返回的数据都是纯 ...

  4. Oracle查看表空间使用情况

     查看表空间使用情况 select upper(f.tablespace_name) "表空间名",        d.tot_grootte_mb "表空间大小(m ...

  5. Centos7(Linux)网络配置,自动获取ip地址

    Centos7.0 Vmware 网络桥接配置,利用DHCP自动获取ip地址 首先要将Vmware10.0.3设置为桥接模式. CentOS 7.0默认安装好之后是没有自动开启网络连接的! cd  / ...

  6. &lbrack;Android&rsqb; Android 支持下拉刷新、上拉加载更多 的 XRecyclerview

    XRecyclerView一个实现了下拉刷新,滚动到底部加载更多以及添加header功能的的RecyclerView.使用方式和RecyclerView完全一致,不需要额外的layout,不需要写特殊 ...

  7. js高级4

    1.Date  类 getDate()返回一个月中的某一天 1-31 getDay() 返回一周中的某一天0-6 getFullyear()返回四位数的年份 getMonth()返回月份 比实际情况小 ...

  8. Java架构师最关键三个思维转变方式,框架的合理运用

    很久没有写思维的文章,特别是在写完思维的逻辑和思维的框架后,对于理论层面的自己也不太想写,但是对于实际案例层面的写起来又比较花时间,而且案例基本在IT专业领域不是所有人都能看明白. 我们前面写过思维的 ...

  9. dreamwave基础

    WEBcs架构需要在客户段安装程序, 需要安装程序, 工作量会比较大, 需要安装和维护, 比如以后系统升级, 会很麻烦. 优点是一些业务逻辑可以在客户端, 可以减少服务器的一些压力, 客户端的界面操作 ...

  10. 戴尔PowerEdge R430 机架式服务器 安装ubuntu server 14&period;04&period;1 LTS 64 位

    硬件配置: 服务编号:5Z04X72 软件配置 1.Ubuntu 系统下载地址: https://certification.ubuntu.com/certification/hardware/201 ...