易截截图软件、单文件、免安装、纯绿色、仅160KB

Java中的类型转换


本作品采用知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议进行许可。
无论在C/C++还是在Java,强制类型转换已经不是陌生的概念了。但是要想全面掌握Java中类型转换的要点可不那么简单,本文将带领大家一同了解有关Java类型转换的所有要点。
数值类型的类型转换
众所周知,Java有两种数据类型:基本数据类型与引用数据类型;Java又有两种基本的类型转换原则:拓宽转换原则(widening conversion)与缩小转换原则(narrowing conversion)。
拓宽转换与缩小转换只适用于基本数据类型中的数值类型。数据值类型按照范围从小到大排列为:
byte   short   int   long   float   double
当目标类型的范围比源类型的范围大时遵循拓宽转换原则,不必强制转换。如:
byte b = 10;
short s = b;
反之则遵循缩小转换原则,即
当目标类型的范围比源类型的范围小时遵循缩小转换原则,必须强制转换。如:
short s = 10;
byte b = (byte)s;
需要注意的是拓宽转换原则不丢失数据。如:
long l1 = Long.MAX_VALUE;
float f = l1;
long l2 = (long)f;
System.out.println("转换前:" + l1);
System.out.println("转换后:" + l2);
上例输出结果为:
转换前:9223372036854775807
转换后:9223372036854775807
缩小转换原则在超出目标类型的取值范围时会导致数据丢失。如:
int i1 = 257;
byte b = (byte)i1;
int i2 = b;
System.out.println("转换前:" + i1);
System.out.println("转换后:" + i2);
上例输出结果为:
转换前:257
转换后:1
字符类型与数值类型之间的转换
基本数据类型char等同于一个无符号短整型,范围从0x0000到0xFFFF。
从其它数值类型转换到char类型时,必须进行强制转换。如:
byte b = 10;
short s = 10;
int i = 10;
long l = 10L;
float f = 10.0F;
double d = 10.0;
char c = (char)b;
c = (char)s;
c = (char)i;
c = (char)l;
c = (char)f;
c = (char)d;
将char类型转换成其它数值类型时,除byte、short必须强制转换外,int long float double均不必强制转换。如:
char c = 'a';
byte b = (byte)c;
short s = (byte)c;
int i = c;
long l = c;
float f = c;
double d = c;
引用类型的类型转换
引用类型的赋值常见于具有继承关系的两种类型的转换。如下面的例子:
public class Person {
p


相关文档:

《Java面向对象编程》—数组的相关事项


1.声明数组引用变量时不能指定数组的长度。如:int x[1];这句话非法。
2.数组对象的创建,例如:
int [] scores = new int[100];
首先在堆中分配内存空间,上述的就是400个字节,然后就给其赋默认值,各个数据类型的默认值不同,int为0.
3.返回数组对象的引用:
int [] x =new int [10]; <=> int size = 10; i ......

JAVA transient 关键字

transient是Java语言的关键字,用来表示一个域不是该对象串行化的一部分。当一个对象被串行化的时候,transient型变量的值不包括在串行化的表示中,然而非transient型的变量是被包括进去的!
public class User implements Serializable{
private static final long serialVersionUID = 1L;


private Integer id; ......

java读取xml

package test;
import java.io.*;
import javax.xml.parsers.*;
import org.w3c.dom.*;
import org.xml.sax.SAXException;
public class XmlTest {
 public static void main(String[] args) {
  File xmlFile=new File("test/xml.xml");
  DocumentBuilderFactory documentBuilderFactor ......

java抽象类和抽象方法

抽象类就是不能使用new方法进行实例化的类,即没有具体实例对象的类。抽象类有点类似“模板”的作用,目的是根据其格式来创建和修改新的类。对象不能由抽象类直接创建,只可以通过抽象类派生出新的子类,再由其子类来创建对象。当一个类被声明为抽象类时,要在这个类前面加上修饰符abstract。
  &nbs ......

学习C与Java的类比

大学的时候选修过一个学期日语,当时日语老师对我们说:“对于中国人来讲,学习英语一般是哭着进去,笑着出来;学习日语则是笑着进去,哭着出来”。意思就是说学习英语的时候,入门的时候比较困难,但是只要坚持学下去,转变了汉语的思维习惯时,最近可以把英语学得很好。而日语不同,一方面因为其与汉语的紧密关 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号