至今,小菜用java快两年了,有些事,也该有个总结。

基本类型和包装类型的概念在本文不作赘述。

如果这两种类型直接使用,倒没什么值得讨论的,无非就是自动装箱拆箱,java可以让你感觉不到他们的存在,但如果我们在数据库映射实体(下文简称bo,即business object)中使用,就得注意了!

比如有一个评定表,里边有个评分字段,在写bo时,定义评分属性,是用int还是Integer呢?

假如用Integer,在做数据插入时,先实例化一个bo,此时bo中的Integer类型字段,默认是null值,如果我们一不留神忘了给它一个初始值0,那么插入到数据库中的值也是null,再查询出来,当然也是null。

试想,作为评分而言,下限也就是0分,怎么可能是null?于情说不通;读者平时可能不太注意,以下代码会抛出空指针异常:

Integer i = null;

if(i == 0){

}

为啥?因为java会对i进行自动拆箱,null怎么拆,当然会空指针了,于理说不通。

既然于情于理都不通,看来我们只能用基本类型int,而int恰好解决了上述问题,因为int是基本类型,天生就有初始值0。

有些时候,我们会直接把bo放在controller层,用来封装参数,客户端提交的参数,直接用一个bo来接受,就不用反复定义一堆变量,而且方便插入到数据库。

那么问题来了,如果我们的bo中是用基本类型int定义的属性,那么天生就会有默认值0,就算客户端不提交这个参数,也会有值,这样就无法区分值0是客户端提交的,还是默认的。

小菜以为,解决这个问题也不难,最简单的方法就是把0看作非法值,或者空值。如果检查到某个值为0,就认为没有提交该参数,或者提交的参数非法。

当然,不能一概而论,一棒子打死所有的0。在经典的设计中,有个概念叫软删除,就是加个字段(比如:status)标记一下,0表示该条记录正常,1表示已删除。这里依然可以用0,因为这是对内的参数,作为系统内部运作使用,不涉及与客户的交互。

Java的基本类型和包装类型

测试的JDK版本:java version "1.7.0_79".Java的9中基本类型:void.char.boolean.byte.short.int.long.float.d ...

Java中的基本类型和包装类型区别

首先看一下几个测试题,验证一下java中对基本类型和包装类型的理解,看看最后输出的答案对不对,答案在这篇博客中哦: // 第一题: 基本类型和包装类型 int a = 100; Integer b = ...

【Java心得总结一】Java基本类型和包装类型解析

说到数据类型这个问题是一个基本的不能再基本的问题,我们当初编程入门第一课一般就是讲数据类型,而今天我想记录的是一个在Java中容易忽略的问题,即基本类型和包装类型. 一.基本类型出现的原因 我们都知道 ...

Java 基本类型和包装类型

讲基本类型和包装类型之前,首先要介绍,装箱和拆箱 装箱:基本类型转化为包装类型 拆箱:包装类型转化为拆箱类型 为什么要有包装类型?Java是面向对象的语言,Java中一切都是对象除了基本数据类型,所以 ...

Java 中基本类型和字符串之间的转换

Java 中基本类型和字符串之间的转换 在程序开发中,我们经常需要在基本数据类型和字符串之间进行转换. 其中,基本类型转换为字符串有三种方法: 1. 使用包装类的 toString() 方法 2. 使 ...

Java学习--Java 中基本类型和字符串之间的转换

Java 中基本类型和字符串之间的转换 在程序开发中,我们经常需要在基本数据类型和字符串之间进行转换. 其中,基本类型转换为字符串有三种方法: 1. 使用包装类的 toString() 方法 2. 使 ...

Java开发学习--Java 中基本类型和包装类之间的转换

Java 中基本类型和包装类之间的转换 基本类型和包装类之间经常需要互相转换,以 Integer 为例(其他几个包装类的操作雷同哦): 在 JDK1.5 引入自动装箱和拆箱的机制后,包装类和基本类型之 ...

java基本类型和包装类型

int 是基本类型,直接存数值 Integer是类,产生对象时用一个引用指向这个对象 Java把内存划分成两种:一种是栈内存,另一种是堆内存 在函数中定义的一些基本类型的变量和对象的引用变 ...

Java中包装类型和基本类型的使用场景(什么时候使用包装类型)(转)

说明:最简单的理解,基本类型有默认值,而包装类型初始为null.然后再根据这两个特性进行分业务使用,在阿里巴巴的规范里所有的POJO类必须使用包装类型,而在本地变量推荐使用基本类型. Java语言提供 ...

随机推荐

JQuery easyui Datagrid 分页事件

easyui是Jquery中的一个轻量级UI插件,提供了一些诸如window.datagrid.button等控件.现在主要说说Datagrid中分页控件的使用. easyui中可以单独添加分页pag ...

C#开发和调用Web Service

http://blog.csdn.net/h0322/article/details/4776819 1.1.Web Service基本概念 Web Service也叫XML Web Service ...

MDI-多文档窗体

1.IsMdicontainer属性设置是否为多文档窗体 this.IsMdiContainer = true; 2.MdiParent属性设置为父窗体 Frm_Child frm = new Frm ...

【OSGi】OSGi生命周期

1 生命周期管理 对于非模块化应用,生命周期将应用作为一个整体来操作: 而对于模块化应用,则可以以细粒度的方式来管理应用的某一个独立部分. OSGi生命周期管理 OSGi生命周期层有两种不同的作用: ...

如何用dumpbin.exe检查编译器生成的托管模块所嵌入的信息

开启CMD 运行到dumpbin目录下:D:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin 运行命令VCVARS32.BAT,配置环境 ...

WebApp开发总结

WebApp开发总结 框架的使用网络上都有教程,就不写了,主要记录下个人的开发总结以方便以后开发注意. css公用样式统一定义 css样式抽出复用 appearance: none; 取消系统默认样式 ...

C#编程(七十二)----------DynamicObject和ExpandoObject

DynamicObject和ExpandoObject 1.ExpandoObject表示一个对象,该对象包含可在运行时动态添加和移除的成员.这个类和动态类型有关,这个类能做些什么? 案例: //Ex ...

as3 运算与检查String 是否能够正确转换成数 值

如果忘了对一个Number 型变量初始化,那么这个变量参与的任何数学运算的结果都是NaN:如果最终结果赋值给有声明类型的变量,那么为该变量的默认值(仅限uint ,int). var a:Number ...

13、Math类简介

Math类概述 在java.lang包下,有个Math类,这个类包含用于执行基本数学运算的方法,如四舍五入,开方等等. package com.sutaoyu.usually_class; publi ...

javascript跟随滚动效果插件代码(javascript Follow Plugin)

这篇文章介绍了javascript跟随滚动效果插件代码(javascript Follow Plugin),有需要的朋友可以参考一下Js 跟随滚动效果插件支持定义多个跟随ID,采用css fixed属 ...

java中的包装类和基本类型_java中基本类型和包装类型实践经验相关推荐

  1. java的包装类型是什么用_Java基本类型和包装类型的区别

    包装类型可以为 null,而基本类型不可以 别小看这一点区别,它使得包装类型可以应用于 POJO 中,而基本类型则不行. POJO 是什么呢?这里稍微说明一下. POJO 的英文全称是 Plain O ...

  2. Java基本类型和包装类型总结

    1.Java的基本类型及其对应的包装器类 Java有8种基本类型:大致分为3类:字符,布尔,数值类型(在java中数值是不存在无符号的,这一点不像C/C++,他们的取值范围是固定的,不会随着机器硬件的 ...

  3. java基本类型和包装类型

    java是面向对象的语言为什么还要有基本类型,只有包装类型完全面向对象不行吗? java语言可以只有基本类型吗,为什么还有要包装类型? java中的基本类型和包装类型:   基本类型     包装器类 ...

  4. 包装类型是什么?基本类型和包装类型有什么区别?

    Java 为每一个基本数据类型都引入了对应的包装类型(wrapper class),int 的包装类就是 Integer,从 Java 5 开始引入了自动装箱/拆箱机制,把基本类型转换成包装类型的过程 ...

  5. 基本类型和包装类型的区别详解

    六年前,我从苏州回到洛阳,抱着一幅"海归"的心态,投了不少简历,也"约谈"了不少面试官,但仅有两三个令我感到满意.其中有一位叫老马,至今还活在我的手机通讯录里. ...

  6. CSDN日报190929:面试官:兄弟,说说基本类型和包装类型的区别吧

    CSDN日报来啦!给大家奉上当日最新鲜的技术干货! 深度学习|[深度学习] 自然语言处理-Attention 作者:小墨鱼~~ 要了解深度学习中的注意力模型,就不得不先谈Encoder-Decoder ...

  7. 基本类型和包装类型的区别

    1.基本类型有初始值,而包装类型的默认值是null 数据类型 默认值 byte 0 short 0 int 0 long 0L float 0.0f double 0.0d char '/u0000' ...

  8. java基本类型和包装类型的区别

    1.为什么存在基本类型: 在Java中正常应该设置对象,然后通过new一个对象存储在堆中,再通过栈的引用来使用对象,但对于简单的小的变量,用new 显的繁琐麻烦,所以产生了基本类型 2.有了基本类型, ...

  9. 【Java】浅析八种基本类型和包装类型

    Java八种基本类型 <Java八种基本类型分析> Java基本类型对应的包装类 Everything is object Java编程语言不把基本数据类型看作对象.Java 编程语言提供 ...

  10. java 基本类型 包装类型_Java中基本类型和包装类

    基本类型运算 boolean类型数据可以进行逻辑运算(&&,||,!),其他的基本类型都可以进行数值计算(+,-,*,/).逻辑运算比较简单易懂,完全与逻辑数学的规则一致,而数值运算涉 ...

最新文章

  1. 第39-43课 thinkphp5完成商品会员价格功能(后置勾子afterInsert)
  2. win7怎么修改oracle登陆密码,win7账户密码如何修改|win7修改账户密码的详细步骤...
  3. python界面设计-手把手教你用Python设计一个简单的命令行界面
  4. Apache中抑制IP段,在httpd.conf中的写法
  5. 《算法竞赛入门经典》计算组合数问题
  6. java 匿名函数_国外程序员用的火热的Vavr是什么鬼?让函数式编程更简单!
  7. NYOJ--289--苹果
  8. APP软件半成品测试技巧
  9. java图表分析_怎样用图表分析数据(一)
  10. 微型计算机控制技术应用,微型计算机控制技术的发展及应用123.doc
  11. U2Net——U-Net套U-Net——套娃式图像分割算法
  12. EXCEL姓名转换为拼音缩写
  13. 工业触屏没有反应的原因?
  14. python指南针_用形状文件或地质指南针绘制遮住的南极洲
  15. 《Speech and Language Processing》读书笔记——语法规则及其解析
  16. 知物由学 | “群控软件”助长黑灰产套利的零和游戏,硬核技术打击隐秘的不公
  17. 把ubuntu安装在U盘的教程之一:制作U盘启动盘
  18. Hive 统计连续天数
  19. 英文caement水泥caement单词
  20. 手把手教你在Github上建立自己的个人博客网站

热门文章

  1. hadoop安装和基本知识
  2. iOS NSURLSession
  3. EMOS批量创建用户邮箱
  4. 微信小程序页面 scroll-view滚动条隐藏
  5. 前端加密使用AES与后端配合(ECB)
  6. webbrowser只对浏览器外应用程序以及在_常用浏览器大盘点!
  7. C#获取实体的属性和值(通用于BS、cs架构)
  8. XML内容要有根标签:Extra content at the end of the document
  9. [R语言统计]频数表
  10. 计算机科学与技术专接本的历年真题,10年计算机专业专接本真题