漫谈Java的基本数据类型和包装类

一 8种基本数据类型和8种包装类的对应关系

基本数据类型 包装类
byte Byte
short Short
int Interger
long Long
char Character
float Float
double Double
boolean Boolean

 

二 自动装箱和自动拆箱
1 概念介绍
 自动装箱:把一个基本数据变量直接赋给对应的包装类变量或者赋值给Object变量。
 自动拆箱:允许直接把包装类对象直接赋给对应的基本类型变量。
2 代码示例

public class AutoBoxingUnboxing
{
	public static void main(String[] args)
	{
		// 直接把一个基本类型变量赋给Integer对象
		Integer inObj = 5;
		// 直接把一个boolean类型变量赋给一个Object类型的变量
		Object boolObj = true;
		// 直接把一个Integer对象赋给int类型的变量
		int it = inObj;
		if (boolObj instanceof Boolean)
		{
			// 先把Object对象强制类型转换为Boolean类型,再赋给boolean变量
			boolean b = (Boolean)boolObj;
			System.out.println(b);
		}
	}
}

 3 运行结果

true

 

三 基本类型和字符串之间的桥梁——包装类
1 基本类型变量和字符串转换图


2 代码示例

public class Primitive2String
{
	public static void main(String[] args)
	{
		String intStr = "123";
		// 把一个特定字符串转换成int变量
		int it1 = Integer.parseInt(intStr);
		int it2 = new Integer(intStr);
		System.out.println(it1);
		System.out.println(it2);
		String floatStr = "4.56";
		// 把一个特定字符串转换成float变量
		float ft1 = Float.parseFloat(floatStr);
		float ft2 = new Float(floatStr);
		System.out.println(ft1);
		System.out.println(ft2);
		// 把一个float变量转换成String变量
		String ftStr = String.valueOf(2.345f);
		System.out.println(ftStr);
		// 把一个double变量转换成String变量
		String dbStr = String.valueOf(3.344);
		System.out.println(dbStr);
		// 把一个boolean变量转换成String变量
		String boolStr = String.valueOf(true);
		System.out.println(boolStr.toUpperCase());
	}
}

 
3 运行结果

123
123
4.56
4.56
2.345
3.344
TRUE
4 补充说明
如果希望把基本变量转化为字符串,更简单的方法,将基本类型和“”进行连接运算,系统会把基本变量转化为字符串,如
String instr = 5+“”;

 

四 Java 8给包装类新增方法举例
1 代码示例

public class UnsignedTest
{
	public static void main(String[] args)
	{
		byte b = -3;
		// 将byte类型的-3转换为无符号整数。
		System.out.println("byte类型的-3对应的无符号整数:"
			+ Byte.toUnsignedInt(b)); // 输出253
		// 指定使用16进制解析无符号整数
		int val = Integer.parseUnsignedInt("ab", 16);
		System.out.println(val); // 输出171
		// 将-12转换为无符号int型,然后转换为16进制的字符串
		System.out.println(Integer.toUnsignedString(-12 , 16)); // 输出fffffff4
		// 将两个数转换为无符号整数后相除
		System.out.println(Integer.divideUnsigned(-2, 3));
		// 将两个数转换为无符号整数相除后求余
		System.out.println(Integer.remainderUnsigned(-2, 7));
	}
}

 
2 运行结果

byte类型的-3对应的无符号整数:253
171
fffffff4
1431655764
2

本页内容版权归属为原作者,如有侵犯您的权益,请通知我们删除。

通用查询,保存方法 - 2016-09-24 14:09:04

基于jqgrid页面通用查询、保存方法

mysql的事务处理与锁表 - 2016-09-24 14:09:04

数据库的事务处理可以保证一组处理结果的正确性。mysql中只有INNODB和BDB引擎的数据表才支持事务处理,对于不支持事务的MyISAM引擎数据库可以使用表锁定的方法来实现相同的功能。 mysql的事务处理主要有两种方法来实现。 1、用begin,rollback,commit来实现。 begin 开始一个事务 rollback 事务回滚 commit 事务确认 Php代码 $conn = mysql_connect('localhost','root','root') or die ("数据连接错误!

Rsa签名算法详解 - 2016-09-23 22:09:05

Rsa签名算法详解 签名生成规则与验证签名规则如下: ① 每次生成签名时该算法都会生成一对对应的公钥和私钥对, ② 所以在应用中一般都会采取使用同一对密钥对进行签名与验签(建议使用静态变量)保证对方验证签名时用的公钥是与你生成签名用的是同一对,否则就不能通过验证 ③ 将自己生成的秘钥对中的公钥交给对方用来验证你的签名,私钥用来生成签名 ④ 同样的对方也会选定一组密钥对将公钥给你用来验证签名,用他的私钥来生成签名 ⑤ 备注:一般对安全性要求比较高的企业,不仅仅限与用rsa签名来保证安全,还会对rsa签名再次

随机产生和为S的N个正整数 - 2016-09-23 14:09:17

如果给你一个问题:“ 随机产生和为S的N个正整数 ”, 你会如何做呢?   针对该问题,解决的方法有很多种。在这篇文章中,我将为大家给出两种比较好理解的解决方法:一个是 “尺子法” ;另外一个是 “锯木头法” 。 ( 名字随便取的,主要是方便理解用 )。   方法一:尺子法   思想: 将给定值S看成一个尺子的长度,那么,生成N个和为S的正整数的问题就变成在尺子中 寻找出N-1个不同的刻度 , 加上最小刻度0和最大刻度S , 一共有N+1个刻度 。 然后,从小到大,计算出相邻刻度的长度,这些长度就可以认为
JVMjava 一、常见配置 1、堆设置 -Xms:初始堆大小 -Xmx:最大堆大小 -XX:NewSize=n:设置年轻代大小 -XX:NewRatio=n:设置年轻代和年老代的比值。如:为5,表示年轻代与年老代比值为1:5,年轻代占整个年轻代年老代和的1/6 -XX:SurvivorRatio=n:年轻代中Eden区与两个Survivor区的比值。注意Survivor区有两个。如:8,表示Eden:Survivor=8:2,一个Survivor区占整个年轻代的1/10 -XX:MaxPermSize=n

Java为什么能够跨平台? - 2016-09-23 14:09:05

  这也许是个萌新的问题,但我也想把它记录下来,作为Java学习的开始。   在这个大型企业软件横行的时代,Java的使用率越来越高,当然依旧不少的人不喜欢Java,因为它的设计过于笨重,但其开发效率高也是不可否认的一个优点。   言归正传,今天我们讨论下为什么Java是跨平台的语言,我们知道汇编语言的优点及其显著,就是运行速度极快,因为其就是机器指令的助记符。但缺点也是很突出的,除了读不懂以外(本人弱渣),就是汇编是体系结构依赖的语言。如有8086指令集,也有MIPS指令集等等,而像C,C++就会先翻译成
方法一:     import  java.awt.*;   import  java.awt.image.*;   import  java.io.*;   import  javax.swing.*;   import  com.sun.image.codec.jpeg.*;   public   class  WaterSet {       /** */ /**        * 给图片添加水印        *         * @param filePath        *        
    最近项目上要调用其他系统的WebService(Axis搭建),由于接收数据较大耗时4分钟左右,所以要设置超时时间,而且系统中已有jar包的原因,导致许多方法都不能用,最终用HttpClient。 方法一:使用JaxWsDynamicClientFactory调用WebService public static Object call(String wsdl,String method,String requestStr){JaxWsDynamicClientFactory factory = J

深刻理解IdentityHashMap - 2016-09-23 14:09:05

新建POJO package test;public class Cat {private String name;private Integer age;public Cat(String name, Integer age) {super();this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public In

成为java高手的八大条件 - 2016-09-23 14:09:05

成为java高手的八大条件 世界上并没有成为高手的捷径,但一些基本原则是可以遵循的。兄弟连JavaEE培训导师,告诉你学习java有这样的素质才能成为高手! 1、扎实的基础 数据结构、离散数学、编译原理,这些是所有计算机科学的基础,如果不掌握它们,很难写出高水平的程序。程序人人都会写,但当你发现写到一定程度很难再提高的时候,就应该想想是不是要回过头来学学这些最基本的理论。不要一开始就去学OOP,即使你再精通OOP,遇到一些基本算法的时候可能也会束手无策。因此多读一些计算机基础理论方面的书籍是非常有必要的。