Java Integer、Boolean等陷阱
来源:互联网 发布:淘宝评论怎么挣钱 编辑:程序博客网 时间:2024/06/07 03:39
Java是面向对象的编程语言,所以除了基本类型外,其他的都是Object。
如果我们想通过 调用函数 来改变基本类型(int、float、double...)的值 是行不通的,而通过传递对象却是可以的。
如下代码,在triple函数执行完成后并不能改变x的值
public void triple(int x){ x = 3 * x;}
而对于以下代码,却可以改变,因为传入的是一个对象的引用
public void changName(Employee e){ e.setName("Java Integer");}
然而,这里有一个陷阱,我们都知道Integer是将int进行了封装,如果使用如下代码,则会出现问题
public static void changeInteger(Integer i){i = new Integer(1);}
changInteger()函数并不能改变i的值,这是由于:Integer objects are immutable(Integer对象是不可变的)
同样Boolean等也是如此
如果我们想改变通过调用函数来改变int的值则需要使用到IntHolder、BooleanHolder 等,如下:
public static void changeInteger(IntHolder i){i.value = 1;}
1 0
- Java Integer、Boolean等陷阱
- java基础 复习boolean和Boolean,类似int和Integer
- java.lang.Integer的面试陷阱
- java 字符串,表达式,等陷阱
- Java Integer 判等误区
- Integer判等的陷阱:你知道Integer内部高速缓冲区IntegerCache吗?
- 关于自动装箱 与自动 和自动拆箱。Integer,Boolean等
- Java中判等陷阱的理解
- Integer to Boolean strange syntax
- java boolean
- Integer, int使用陷阱
- Integer==陷阱
- Cannot convert 0 of type class java.lang.Integer to class java.lang.Boolean
- php 基础笔记 - boolean integer float
- Byte、 Boolean 、Integer、Long、Short、Character缓存
- 在hibernate和spring项目用junit测试总是出现java.lang.Boolean cannot be cast to java.lang.Integer
- 【Java】 Integer 包装器的比较小陷阱(一种优化策略惹得祸)
- java中Boolean和boolean的区别
- 树莓派第一次开机
- ios 字符串转UTF8
- DOM(三)-10-(示例-表单校验-涉及的正则校验)
- 在 C# 中,(int) ,Int32.Parse() 和 Convert.toInt32() 三种方法的区别
- Debug---Eclipse断点调试基础
- Java Integer、Boolean等陷阱
- 橱柜消费四大陷阱
- 判断两个单链表是否相交--java实现
- eclipse设置打开jsp的默认方式
- C 语言生成工程
- 网络营销着陆页:怎么让游客成顾客?
- 每天进步一点点——优化order by 语句
- HDOJ 确定比赛名次 (拓扑排序)
- PLSQL Developer连接Oracle11g 64位数据库配置详解