Java中类型转换相关

float a = 1.5;    //错误:1.5被默认为double型,double不能自动转换成float型,需要强制转换
float b = 1.5f;   //编译通过

byte = 1;     //编译通过
/*
因为java中对于默认值为int型的数值,当赋值给当赋给一个比int型数值范围小的数值类型变量(在此统一称为数值类型k,k可以是byte/char/short类型),会进行判断,如果此int型数值超过数值类型k,那么会直接编译出错。因为你将一个超过了范围的数值赋给类型为k的变量,k装不下嘛,你有没有进行强制类型转换,当然报错了。但是如果此int型数值尚在数值类型k范围内,jvm会自定进行一次隐式类型转换,将此int型数值转换成类型k。
*/

 

byte m = 1, n = 2, c;

c = 1+2;  //编译通过
c = m+n; //错误。 因为m+n的值可能超过了byte的范围c = m+2; //错误c = (byte)(m+n);  //编译通过。

  

参考资料:http://www.cnblogs.com/lwbqqyumidi/p/3700164.html

时间: 2024-10-11 18:13:39

Java中类型转换相关的相关文章

Java中Map相关的快速查找算法与唯一性(转载)

原文地址:http://blog.csdn.net/chuyuqing/article/details/19629229 在对<Set和hashCode()>的一篇原创文章写完后,由于对自己的一些论断产生了模糊和怀疑,因此又对Set进行了一些研究,形成本篇. 在Set的使用场景中,我们不外乎看中了她存储数据的唯一性,即不能存储重复值,这在某些应用场合下是很必要的一个特性.那么从更深一层来考虑,Set究竟如何使数据不重复的呢?从另一个层面来考虑,她又如何确保在验证数据是否重复过程中的快速性呢?假

【Socket编程】Java中网络相关API的应用

Java中网络相关API的应用 一.InetAddress类 InetAddress类用于标识网络上的硬件资源,表示互联网协议(IP)地址. InetAddress类没有构造方法,所以不能直接new出一个对象: InetAddress类可以通过InetAddress类的静态方法获得InetAddress的对象: 1 InetAddress.getLocalHost();//获取本地对象 2 InetAddress.getByName("");//获取指定名称对象 主要方法使用: 1 /

java 中 集合类相关问题

1,Java中Collection和Collections的区别 java.util.Collection 是一个集合接口.它提供了对集合对象进行基本操作的通用接口方法.Collection接口在Java 类库中有很多具体的实现.Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式. java.util.Collections 是一个包装类.它包含有各种有关集合操作的静态多态方法.此类不能实例化,就像一个工具类,服务于Java的Collection框架. 2,List, S

Java中网络相关API

InetAddress:用于标识网络上的硬件资源,即表示IP地址. /* * InetAddress类 */ public class Test01 { public static void main(String[] args) throws UnknownHostException { // 获取本机的InetAddress实例 InetAddress address = InetAddress.getLocalHost(); System.out.println("计算名:" +

java中数组相关的问题

1) 空数组中没有获得内存空间,所以无法使用,必须使用new关键字为数据分配内存空间. 2) 在初始化数组时不能静态初始化和动态初始化同时定义,eg:int [3] [3] array2={{1,2,3},{2,3,4},{3,4,5}};这种方法是错误的! 3) Arrays类的使用: A:数组的复制--是通过类Arrays的静态方法copyOf(type[] original,int length)实现的,其中type类型可以是 boolean,int ,short,char,byte! B

Java 中类型转换

int -> String int i=12345; String s=""; 第一种方法:s=i+""; 第二种方法:s=String.valueOf(i); 这两种方法有什么区别呢?作用是不是一样的呢?是不是在任何下都能互换呢? String -> int s="12345"; int i; 第一种方法:i=Integer.parseInt(s); 第二种方法:i=Integer.valueOf(s).intValue(); St

关于JAVA中继承相关面试extends

如题,面试题如下: 请输入下面代码的运行结果--------extends----------- class HelloA { public HelloA(){ System.out.println("HelloA"); } {System.out.println("I'm A class");} static{System.out.println("static A");} } public class HelloB extends Hello

JAVA中的类型转换

JAVA中类型转换的基本原则在于,(布尔型除外,无法转换)低精确度或者说小范围的类型可以自动地转为高精度或者大范围的类型,反之则需要强制转换.如图所示,左边的类型可以自动转换为右边的类型(一般发生在与大范围的类型的运算中),反之则需要强制转换. 图片来源(http://www.cnblogs.com/lwbqqyumidi/p/3700164.html) 如下题LeetCode 400. Nth Digit中,第七行会报错,可以看到count是long,len是int,两数相乘时len会自动变为

JAVA中int、String的类型转换

int -> String int i=12345;String s="";第一种方法:s=i+"";第二种方法:s=String.valueOf(i);这两种方法有什么区别呢?作用是不是一样的呢?是不是在任何下都能互换呢? String -> int s="12345";int i;第一种方法:i=Integer.parseInt(s);第二种方法:i=Integer.valueOf(s).intValue();这两种方法有什么区别