菜鸟学Java(二十)——你知道long和Long有什么差别吗?
Java中数据类型分两种:
1.基本类型:long,int,byte,float,double
2.对象类型:Long,Integer,Byte,Float,Double其他一切java提供的,或者你自己创建的类。
当中Long叫 long的包装类。Integer、Byte和Float也相似,一般包装类的名字首写是数值名的大写开头。
什么是包装类?
在java中有时候的运算必须是两个类对象之间进行的。不充许对象与数字之间进行运算。所以须要有一个对象。这个对象把数字进行了一下包装,这样这个对象就能够和还有一个对象进行运算了。
比方我们能够定义一个类:
public class Long {
int i=0;
public Long (int i){
this.i=i;
}
}
这个Long 就是一个包装类,它包装了一个整数值。然后能够在里面写一些运算符重载的方法使它支持某些运算。这个时候能够赋值:
Long l = new Long(10);
如今变量 l 就是一个对象,不是一个数字。
long是原始数据类型,没有属性方法,仅仅能进行数学运算,Long是long相相应的引用数据类型,它有方法和属性。一个没方法属性,一个有方法属性,这就是它们的差别。
看以下的小程序:
long l = 1;
Long l1 = new Long(1);
Long l2 = new Long(1); if (l == l1){
System.out.println("=====l与l1相等=====");
} if(l == l2){
System.out.println("=====l与l2相等=====");
} if(l1 == l2){
System.out.println("=====l1与l2相等=====");
}
输出:
=====l与l1相等=====
=====l与l2相等=====
假设将第三个if语句的条件换成"l1.equals(l2)",那么输出结果就会变成:
=====l与l1相等=====
=====l与l2相等=====
=====l1与l2相等=====
由此也能看出。Long定义的变量为一个Long类型的对象;而long定义的变量为一个长整形数值的数值变量。
ID用long还是Long?
hibernate、el表达式等都是包装类型,用Long类型能够降低装箱/拆箱;
在hibernate中的自增的hid在实体中的类型要用Long 来定义而不是long。
否则在DWR的匹配过程中会出现Marshallingerror:null的错误提示。
究竟是选择Long 还是long这个还得看详细环境。假设你觉得这个属性不能为null,那么就用long,由于它默认初值为0,假设这个字段能够为null。那么就应该选择Long。
菜鸟学Java(二十)——你知道long和Long有什么差别吗?的更多相关文章
- 菜鸟学Java(十四)——Java反射机制(一)
说到反射,相信有过编程经验的人都不会陌生.反射机制让Java变得更加的灵活.反射机制在Java的众多特性中是非常重要的一个.下面就让我们一点一点了解它是怎么一回事. 什么是反射 在运行状态中,对于任意 ...
- 菜鸟学Java(十五)——Java反射机制(二)
上一篇博文<菜鸟学编程(九)——Java反射机制(一)>里面,向大家介绍了什么是Java的反射机制,以及Java的反射机制有什么用.上一篇比较偏重理论,理论的东西给人讲出来总感觉虚无缥缈, ...
- 菜鸟学Java(十二)——搭建一个完整的Java开发环境
作为一个Java程序员,配置一个java开发环境是必备的技能,今天给广大菜鸟初学者补上一课.环境的配置,大概就分三个1,JDK 2,Tomcat(或者其他的)3,eclipse(或者myeclipse ...
- 菜鸟学Java(十八)——异常
每个学编程的人在编程的过程中都会遇到各种异常.那么当我们遇到异常的时候该怎么处理呢?针对不同的异常我们又该采取什么具体的处理方式呢?这些问题在我开始学编程的很长一段时间里我都不太清楚,还好随着不断的学 ...
- 菜鸟学Java(十六)——Jboss简介
简介 JBoss是全世界开发者共同努力的成果,一个基于J2EE的开放源代码的应用服务器. 因为JBoss代码遵循LGPL许可,可以在任何商业应用中免费使用它,而不用支付费用.2006年,Jboss公司 ...
- 菜鸟学Java(十)——分页查询
今天继续跟大家说说一些非常基础的东西,这次我们说说分页查询.说到分页,可能很多人都听说过什么真分页.假分页的.简单解释一下,拿第二页,每页20条为例:真分:数据库里取 的就是21-40条:假分:数据库 ...
- 菜鸟学Java(十九)——WEB项目測试好帮手,Maven+Jetty
做WEB开发,測试是一件非常费时间的事情.所以我们就应该用更简单.更快捷的方式进行測试.今天就向大家介绍一个轻量级的容器--jetty.j今天说的etty是Maven的一个插件jetty-maven- ...
- 菜鸟学Java(十九)——WEB项目测试好帮手,Maven+Jetty
做WEB开发,测试是一件很费时间的事情.所以我们就应该用更简单.更快捷的方式进行测试.今天就向大家介绍一个轻量级的容器——jetty.今天说的etty是Maven的一个插件jetty-maven-pl ...
- 学JAVA第十天,一维数组及二维数组的使用。
今天老师讲了JAVA数组,之前学C#的时候就学过一维数组,至于二维数组当时只是粗略普及了一下. 现在想学JAVA又学到了数组,但是这次不同,注重讲二维数组,因为老师知道我们都了解一维数组了. 所以现在 ...
- 菜鸟学java开篇
从事it工作已有接近两年的时间了, 一直从事的是php的工作, 一直都想学java ,原因就不多说了, 毕竟优秀的php程序员,都会是一个其他方面的高手, 例如java ,并不是说java有多好,ph ...
随机推荐
- google浏览器中,使用clockwork 来调试
参考:https://laravel-china.org/courses/laravel-package/1976/debugging-tool-under-chrome-itsgoingdclock ...
- MVC公开课 – 2.查询,删除 (2013-3-15广州传智MVC公开课)
查询 /Controller/HomeController.cs /// <summary> /// 查询 文章 列表 /// </summary> /// <retur ...
- TPC-H数据导入MySQL教程
0. TPC-H是啥 TPC-H是TPC提供的一个benchmark,用来模拟一个现实中的商业应用,可以生成一堆虚构的数据,且自带一些查询,可以导入到各种数据库中来模拟现实需求,检查性能. 具体是怎样 ...
- 使用亚马逊云服务器EC2做深度学习(四)配置好的系统镜像
这是<使用亚马逊云服务器EC2做深度学习>系列的第四篇文章. (一)申请竞价实例 (二)配置Jupyter Notebook服务器 (三)配置TensorFlow (四)配置好的系统 ...
- 【WPF】奇怪的INotifyPropertyChanged的实现
MSDN是这样解释的: INotifyPropertyChanged 接口用于向客户端(通常是执行绑定的客户端)发出某一属性值已更改的通知. 例如,考虑一个带有名为 FirstName 属性的 Per ...
- Java Stream简介, 流的基本概念
在Javaor .net编程中, 我们经常见到"stream" 这个字眼. 我们大概知道这是个流的意思, 如果看完本文的话, 应该会有1个大概的概念. 一, Java中什么是St ...
- Python并发编程-SocketServer多线程版
#server.py import socket from threading import Thread def chat(conn): conn.send(b'hello') msg = conn ...
- FastReport.Net使用:[24]其他控件(邮政编码(Zip Code),网格文本(Cellular Text)以及线性刻度尺(Linear Gauge))
邮政编码(Zip Code) Zip Code仅支持数字(0~9) Zip Code支持数据列绑定,表达式,文本等模式 可通过修改SegmentCount属性的值来确定Zip Code的位数. 数字右 ...
- codevs 5294 挖地雷
5294 挖地雷 时间限制: 1 s 空间限制: 1000 KB 题目等级 : 黄金 Gold 题目描述 Description 在一个地图上有N个地窖(N<=20),每个地窖中埋有一 ...
- 「学习笔记」wqs二分/dp凸优化
[学习笔记]wqs二分/DP凸优化 从一个经典问题谈起: 有一个长度为 \(n\) 的序列 \(a\),要求找出恰好 \(k\) 个不相交的连续子序列,使得这 \(k\) 个序列的和最大 \(1 \l ...