Java学习笔记24(Integer类)
这里介绍基本数据类型包装类,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类)的更多相关文章
- java学习笔记7--抽象类与抽象方法
接着前面的学习: java学习笔记6--类的继承.Object类 java学习笔记5--类的方法 java学习笔记4--类与对象的基本概念(2) java学习笔记3--类与对象的基本概念(1) jav ...
- 【原】Java学习笔记031 - 常用类
package cn.temptation; public class Sample01 { public static void main(String[] args) { /* * 类 Math: ...
- 1.9(java学习笔记)object类及toString()与equals()方法
object类 java中objec是所有类公共的父类,一个类只要没有明显的继承某一类,那么它就是继承object类. 例如 class Person {......};和class Person e ...
- Java学习笔记16---抽象类与接口的浅显理解
抽象类是由abstract修饰的类,定义方式如public abstract class A{...}. 接口由interface修饰,定义方式如public interface B{...}. 抽象 ...
- Java学习笔记day06_自定义类_ArrayList
1.自定义类class 使用类的形式, 对现实中的事物进行描述. 类是引用数据类型. 事物: 方法,变量. 方法:事物具备的功能. 变量:事物的属性. 格式: public class 类名{ //属 ...
- Java学习笔记(2)——有关类
Java类的高级特性: {Java管理文件机制:类包. 同一个包中的类互相访问时,可以不指定包名. 同一个包中的类不必存放在同一位置,如com.lang.class1和com.lang.class2可 ...
- Java学习笔记24(Map集合)
Map接口: Map接口与Collection接口无继承关系. 区别:Collection中的元素是孤立的,一个一个存进去的. Map作为一个映射集合,每一个元素包含Key-value对(键-值对). ...
- Java学习笔记5(类的入门以及ArrayList)
1.类的概念:将现实生活中的事物抽象成了代码(类),我们可以使用自定义的数组类型(类)来描述现实生活中的事物. 2.分析:用一部手机来分析,手机可以打电话,上网,听音乐,这些就是方法,手机有型号,颜色 ...
- 0029 Java学习笔记-面向对象-枚举类
可以创建几个对象? n多个:大部分的类,都可以随意创建对象,只要内存不爆掉 1个:比如单例类 有限的几个:采用单例类的设计思路,可以只允许创建少数的几个特定的对象:还有就是枚举类. 创建少数几个对象, ...
随机推荐
- C++彩色数据流动界面
一个数据流动界面 #include <windows.h> #include <time.h> #include <cstdio> #include <str ...
- keystone V3 与Microsoft Active Directory(AD)的集成
一 环境准备 1. 安装或在现有的windows server2008,操作Microsoft Acitve Directory(下面简称AD).欲了解AD请看系列文章[深入浅出ActiveDire ...
- Power Designer如何批量改动数据类型
最近做项目的时候须要将OOM转换为PDM.在OOM中转换为PDM时,全部string的类型的属性都默认变为varchar(254),这可不是我们须要的类型,那么.如此多的类.如此多的属性.难道一个一个 ...
- 抓包工具 fiddler
1. 抓包软件 TCP 外挂: 1. 解包工具 2.抓包工具 HTTP 1.前后端交互过程 2.学习的作用 3.模拟网络情况 2 http client server 没有加密 https 证书 非 ...
- springboot 热部署的两种方式
问题的提出: 在编写代码的时候,你会发现我们只是简单把打印信息改变了,就需要重新部署,如果是这样的编码方式,那么我们估计一天下来就真的是打几个Hello World就下班了.那么如何解决热部署的问题呢 ...
- 「mysql优化专题」优化之路高级进阶——表的设计及优化(6)
正文:表的设计及优化(真技术文) 优化①:创建规范化表,消除数据冗余 数据库范式是确保数据库结构合理,满足各种查询需要.避免数据库操作异常的数据库设计方式.满足范式要求的表,称为规范化表,范式产生于2 ...
- ios应用版本号设置规则
版本号的格式:v<主版本号>.<副版本号>.<发布号> 版本号的初始值:v1.0.0 管理规则: 主版本号(Major version) 1. 产品的主体构件进行 ...
- 浅谈Android数据库DBFlow
一.项目配置 1.根目录下的build.gradle 中添加 maven { url "https://www.jitpack.io" } 如下: classpath 'com.n ...
- Pycharm配置(二)
1.主题 这部分教程主要介绍如何创建一个Python工程并使其具有Pycharm的代码风格.你将会看到Pycharm使你的源码变得非常简洁美观,带有合适的缩进.空格等等,因此Pycharm也是一款代码 ...
- MongoDB入门系列(二):Insert、Update、Delete、Drop
概述 本章节介绍Insert.Update.Delete.Drop操作基本语法. 环境: Version:3.4 insert insert()基本语法如下: db.collection.insert ...