Java中关于int和Integer的区别详解
1、Java 中的数据类型分为基本数据类型和复杂数据类型
int是前者,integer 是后者(也就是一个类)。
int i = 1;
Integer i = new Integer(1); // (要把integer 当做一个类看)
int 是基本数据类型(面向过程留下的痕迹,不过是对Java的有益补充)
Integer 是一个类,是int的扩展,定义了很多的转换方法
类似的还有:float Float、double Double、string String等 。
举个例子:当需要往ArrayList,HashMap中放东西时,像int,double这种内建类型是放不进去的,因为容器都是装object的,这是就需要这些内建类型的外覆类了。
Java中每种内建类型都有相应的外覆类。
Java中int和Integer关系是比较微妙的。关系如下:
1、int是基本的数据类型;
2、Integer是int的封装类;
3、int和Integer都可以表示某一个数值;
4、int和Integer不能够互用,因为他们两种不同的数据类型;
ArrayList al=new ArrayList();
int n=40;
Integer nI=new Integer(n);
al.add(n);//不可以
al.add(nI);//可以
相关推荐
-
Java中对AtomicInteger和int值在多线程下递增操作的测试
Java针对多线程下的数值安全计数器设计了一些类,这些类叫做原子类,其中一部分如下: java.util.concurrent.atomic.AtomicBoolean; java.util.concurrent.atomic.AtomicInteger; java.util.concurrent.atomic.AtomicLong; java.util.concurrent.atomic.AtomicReference; 下面是一个对比 AtomicInteger 与 普通 int 值在多线
-
Java中Integer两种转int方法比较
方法一: Integer.parseInt(); 返回的是一个 int 的值. 方法二: new Integer.valueof(); 返回的是 Integer 的对象. new Integer.valueof().intValue(); 返回的也是一个 int 的值. 笔试应用例题: 设有下面两个赋值语句: a = Integer.parseInt("123"); b = Integer.valueOf("123").intValue(); 下述说法正确的是(
-
浅析java中Integer传参方式的问题
Java本身都是值传递式的调用,对于对象传递的是地址值.给地址值重新赋值等于重新指向,不会影响外层.而且这里Integer对象也有特殊性.其实现上可能类似 复制代码 代码如下: class Integer{final int value; //一旦赋值,就不能改变.} 这就出现:调用时传的地址值不能改变外层+对象本身又不能改变.导致这个值没法改变 解决方案很多1.java风格就是,单个值用返回值.return i; 外面再i=foo();赋值:多个值用数组或对象.2.传递自己的封装类.class
-
细数java中Long与Integer比较容易犯的错误总结
今天使用findbugs扫描项目后发现很多高危漏洞,其中非常常见的一个是比较两个Long或Integer时直接使用的==来比较. 其实这样是错误的. 因为Long与Ineger都是包装类型,是对象. 而不是普通类型long与int , 所以它们在比较时必须都应该用equals,或者先使用longValue()或intValue()方法来得到他们的基本类型的值然后使用==比较也是可以的. 但是有一种特殊情况, 其实Long与Integer都将 -128~127 这些对象缓存了. 可以看看Long类
-
JAVA中Integer值的范围实例代码
废话不多说了,直接给大家贴代码,具体代码如下所示: package com.test; public class Test { public static void main(String []args) { Integer a = 100;//此处若使用new,则==值必为false Integer b = 100; System.out.println(a==b);//true Integer c = 150; Integer d = 150; System.out.println(c==d
-
java中的Integer的toBinaryString()方法实例
在一次面试的过程中,遇到过这样的题目,题目的大概意思是:让写出Integer类中的toBinaryString()方法 也就是说,把Integer转换为Binary的过程写出来 但是我蒙的,在查了JDK的源码,发现了这个很好用的方法,在此给大伙看看 下面是我做的一个测试: 复制代码 代码如下: /** * */package com.b510.test; /** * @author Hongten * @date 2013-12-15 */public class TestF { public
-
Java中关于int和Integer的区别详解
1.Java 中的数据类型分为基本数据类型和复杂数据类型 int是前者,integer 是后者(也就是一个类). 2.初始化时 复制代码 代码如下: int i = 1; Integer i = new Integer(1); // (要把integer 当做一个类看) int 是基本数据类型(面向过程留下的痕迹,不过是对Java的有益补充) Integer 是一个类,是int的扩展,定义了很多的转换方法 类似的还有:float Float.double Double.string Stri
-
Java中Validated、Valid 、Validator区别详解
目录 1. 结论先出 JSR 380 Valid VS Validated 不同点? Validator 2. @Valid和@Validated 注解 3. 例子 4.使用@Valid嵌套校验 5. 组合使用@Valid和@Validated 进行集合校验 6. 自定义校验 自定义约束注解 工作原理 结论 参考链接: 1. 结论先出 Valid VS Validated 相同点 都可以对方法和参数进行校验 @Valid和@Validated 两种注释都会导致应用标准Bean验证.
-
java中的i++和++i的区别详解
java中的前加加++和后加加++,有很多人搞的很晕,不太明白!今天我举几个例子说明下前++和后++的区别! 其实大家只要记住一句话就可以了,前++是先自加再使用而后++是先使用再自加! 前++和后++总结:其实大家只要记住一句话就可以了,前++是先自加再使用而后++是先使用再自加! 请大家看下面的例子就明白了! public class Test { public static void main(String[] args) { //测试,前加加和后加加 //前++和后++总结:其实大家只要
-
java中String StringBuffer和StringBuilder的区别详解
目录 从声明定义上来谈 从结构上来谈 从线程安全来谈 总结 从声明定义上来谈 只有String 可以 直接声明创建 而 StringBuffer 与 StringBuilder 必须去new对象 这是因为只有String会在这种声明方式下去字符串常量池创建,其他则没有 StringBuffer stf = new StringBuffer("abc"); StringBuilder stb = new StringBuilder("abc"); StringBuff
-
Java中BufferedReader与Scanner读入的区别详解
java.util.Scanner类是一个简单的文本扫描类,它可以解析基本数据类型和字符串.它本质上是使用正则表达式去读取不同的数据类型. Java.io.BufferedReader类为了能够高效的读取字符序列,从字符输入流和字符缓冲区读取文本. 在Java中,我们都知道Java的标准输入串是System.in.但是我们却很少在Java中看到谁使用它,这是因为我们平时输入的都是一个字符串或者是一个数字等等.而System.in提供的read方法是通过字节来读取数据的,所以对我们来说不方便处理!
-
Java中JSONObject与JSONArray的使用区别详解
最近公司开发的几个项目中,后台Action向前端传递数据都是Json格式,于是对JSONObject.JSONArray简单的研究了一下,废话不多说,想使用JSONObject.JSONArray,策则在项目中必须要有commons-lang.jar commons-beanutils.jar commons-collections.jar commons-logging.jar ezmorph.jar json-lib-2.2.2-jdk15.jar 这些Jar包. 1.JSONObject
-
java中public class与class的区别详解
在编写类的时候可以使用两种方式定义类:public class定义类:class定义类:如果一个类声明的时候使用了public class进行了声明,则类名称必须与文件名称完全一致.范例:定义一个类(文件名称为:Hello.java) 复制代码 代码如下: public class HelloDemo{ //声明一个类,类名称的命名规范:所有单词的首字母大写 public static void main(String args[]){ //主方法 System.
-
Java中JDBC实现动态查询的实例详解
一 概述 1.什么是动态查询? 从多个查询条件中随机选择若干个组合成一个DQL语句进行查询,这一过程叫做动态查询. 2.动态查询的难点 可供选择的查询条件多,组合情况多,难以一一列举. 3.最终查询语句的构成 一旦用户向查询条件中输入数据,该查询条件就成为最终条件的一部分. 二 基本原理 1.SQL基本框架 无论查询条件如何,查询字段与数据库是固定不变的,这些固定不变的内容构成SQL语句的基本框架,如 select column... from table. 2.StringBuilder形成D
-
java 中 String format 和Math类实例详解
java 中 String format 和Math类实例详解 java字符串格式化输出 @Test public void test() { // TODO Auto-generated method stub //可用printf(); System.out.println(String.format("I am %s", "jj")); //%s字符串 System.out.println(String.format("首字母是 %c",
-
Java多线程通讯之wait,notify的区别详解
下面通过代码给大家介绍java多线程通讯之wait notify的区别,具体内容如下所示: class Res{ public String username; public String sex; } class Out extends Thread{ Res res; public Out(Res res){ this.res=res; } @Override public void run() { //写操作 int count=0; while (true){ // synchroniz
随机推荐
- redislive监控redis服务的图文教程_动力节点Java 学院整理
- angularjs定时任务的设置与清除示例
- asp.net中各种类型的JSON格式化
- javascript实现的仿51job地址多项选择方式效果
- VBS 添加右键计算文件MD5的实现代码
- Java中重载与重写的对比与区别
- List调用toString()方法后,去除两头的中括号实例
- Spring Boot高级教程之Spring Boot连接MySql数据库
- java 内部类的实例详解
- 用python结合jieba和wordcloud实现词云效果
- Javascript中replace()小结
- asp.net网页里面为什么找不到CS文件
- 当年学习ADO.NET的笔记
- 利用PHP和AJAX创建RSS聚合器的代码
- JSP页面跳转方法小结
- Android打造流畅九宫格抽奖活动效果
- JavaScript常用脚本汇总(一)
- jquery提交form表单时禁止重复提交的方法
- 浅谈Javascript鼠标和滚轮事件
- NodeJS学习笔记之Connect中间件模块(二)