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

java类型转换总结

类型转换总结:
1.原型数据byte,short,int,long,float,double,char,boolean,小类型数据可以直接赋给大类型数据例如
 int a=1;byte b=2;short c=3;float d=3;double e=4;char f='a';boolean g=true;long l=10;
c=b;
a=f;
d=a;
e=d;
byte型数据不能直接赋给char型数据,因为byte表示的是8位有符号数,而char表示的是16位无符号数。同理short型数据(16位有符号数)与char型数据也不能直接通过赋值转换。
boolean不能与其他任何原型数据转换。
2.大类型数据可以强制转换成小类型数据。
如b=(byte)a;c=(short)a;a=(int)l;b=(byte)f;
3.原型数据的数组没有大小之分,不可相互转换,例如
byte[] ba;
short[]sa;
ba=sa或sa=ba;都是错的,强制转换也不行。
4.对象类型数据的转换
Object类型变量可以直接引用任何类型的对象,具有继承关系的类之间,父类型(大类类型)变量可以直接引用子类型(小类类型)对象,在父类类型的引用变量引用的是子类类型对象或者子子类类型对象时,该引用变量才可以强制转换成对应的子类类型引用。一句话要看该引用变量所引用的具体对象的类型能不能强制转换成目的类型。举例说明如下
正确的转换:
Object oa=new Integer(5);
Integer ia=(Integer)oa;
oa引用的是Integer类型对象,Integer类型引用ia当然可以指向它。
错误的转换:
Object oa=new Object();
Integer ia=(Integer)oa;
oa引用的是Object类型对象,Integer类型引用ia不能指向它的父类类型的对象。
正确的转换:
class A{
}
class B extends A{
}
class C extends B{
}
Object oa=new C();
 B b=(B)oa;
oa引用的是C类类型对象,而类C继承了类B,所以B类型引用b可以指向它的子类类型的对象。
5.对象数组的转换关系和类的转换关系一样。
如果B类继承了A类,则
B[]b=new B[2];
A[]a;
 a=b;
正确。
  A[]a=new B[2];
       B[]b;
       b=(B[])a;
也是正确的。
6.接口向类(Object类除外)转换一定要用强制转换,不同类型的接口之间可以用强制转换。举例说明如下,
interface A{
}
interface B{
}
class C implements A{
}
class D extends C implements B{
}
A a=new D();
 C c=(C)a;//使用了强制转换
 A b=new C();
 Object o=b;//对于Object没有使用
 B c=new D();
     A d=(A)


相关文档:

Java编程那些事儿系列文章(全集)


Java编程那些事儿1——序言
Java编程那些事儿2——程序设计是什么?
Java编程那些事儿3——你适合学习程序设计吗?
Java编程那些事儿4——如何学好程序设计?
Java编程那些事儿5——程序设计介绍小结
Java编程那些事儿6——计算机软件基本概念
Java编 ......

AES算法java实现浅析

      java jce对aes算法有很好的支持,但是默认安装的JDK或者JRE是不能支持aes192bit密钥和aes256bit密钥两种算法的,需要到sun官方下载Java(TM) Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files,以下是jce unilimited strength jurisdiction policy files 6的官方 ......

Java设计模式之State(状态模式)

定义:
GOF《设计模式》中给状态模式下的定义为:允许一个对象在其内部状态改变时改变它的行为。
先看一个例子:
package com.state;
public class KissingPrincess {
// 标志位,标志是青蛙还是王子。
private boolean isFrog = true;
// 根据isFrog进行不同的操作。
public void greet() {
if (isFrog)
......

主题:实战java Concurrent

编写多线程的程序一直都是一件比较麻烦的事情,要考虑很多事情,处理不好还会出很多意想不到的麻烦。加上现在很多开发者接触到的项目都是打着企业级旗号的B/S项目,大多数人都很少涉及多线程,这又为本文的主角增加了一份神秘感。
讲到Java多线程,大多数人脑海中跳出来的是Thread、Runnable、synchronized…&hellip ......

Java调用存储过程(MySql数据库)

一、建表
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
  `ID` int(11) NOT NULL auto_increment,
  `NAME` varchar(16) NOT NULL default '',
  `REMARK` varchar(16) NOT NULL default '',
  PRIMARY KEY  (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=24 DEFAULT CHARSET=utf8;
&nb ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号