java数据类型转换那点事
public class kkk {
/**
* 先看看eclipse对于数值型转换会有哪些报错,但是有一点必须明确,eclipse不报错的,不一定就是说这种思维逻辑是对的
* 可以直接将代码复制过去在编译器里显示的明明白白
* 红色代码表示编译会报错
*/
public static void main(String[] args) {
// byte 2个
byte b1=(short)1; //不准确的书写方式,如果超出byte范围就会报错
byte b2=(int)3; //不准确的书写方式,如果超出byte范围就会报错
byte b3=(long)3;
byte b4=(float)3;
byte b5=(double)3;
// short 2个
short b6=(byte)300;
short b7=(int)3; //不准确的书写方式,如果超出byte范围就会报错
short b8=(long)3;
short b9=(float)3;
short b10=(double)3;
// int 2个
int b11=(short)1;
int b12=(byte)3;
int b13=(long)3;
int b14=(float)3;
int b15=(double)3;
// long 3个
long b16=(byte)3;
long b17=(int)3;
long b18=(short)3;
long b19=(float)3;
long b20=(double)3;
// float 4个
float b21=(short)1;
float b22=(byte)3;
float b23=(long)3;
float b24=(int)3;
float b25=(double)3;
// double 5个
double b26=(byte)3;
double b27=(int)3;
double b28=(short)3;
double b29=(float)3;
double b30=(long)3;
// 取值范围从小到大<精度由低到高>:byte->short->int->long->float->double
// 赋值时,始终遵循大范围可以传递给小范围<高精度可以传递给低精度>,
// 倘若大范围的将一个在小范围之内的数传递小范围的,直接赋值的方式不会出错,但是传递赋值就会出错
// 例如byte b2=(int)3;不会报错,但是这种思维逻辑是错的;验证:int a=3;byte b2=a;此时出错
//-------在进行数字运算时,运算完后会取精度最高的作为结果的数据类型,但是int以下的都会转换为int类型---------------
byte c1=1;
byte c2=c1+1; //byte+1之后的数据类型为int
short s=1;
byte cc=c1+s; //byte+short之后的数据类型为int
float s1=1;
byte cc1=c1+s1; //byte+float之后的数据类型为float
short c3=1;
short c4=c3+1; //short+1之后的数据类型为int
float c5=1;
float c6=c5+1; //float+1之后的数据类型为float
byte a1=1; //a1为byte型
byte a2=2; //a2为byte型
byte a3=a1+a2; //错误提示为不可以将int型赋值给byte
byte a21=(short)1; //a21为byte型
byte a22=(short)2; //a22为byte型
byte a23=a1+a2; //错误提示为不可以将int型赋值给byte
byte a11=1; //a11为byte型
byte a12=2; //a12为byte型
short a13=a11+a12; //错误提示为不可以将int型赋值给short
double a4=(byte)3;
double a5=(short)3;
double a6=a4+a5;
int a7=a4+a5; //错误提示为不可以将double型赋值给int
//-------<a+=1;与a=a+1;的数据类型转换方式是不一样的---------->
float a31=3;
float a32=3;
a31+=1; //a31+=1;等价于a31=(float)(a31+1)
a32=a32+1; //而a32+1会自动转换为float型
byte a41=3;
byte a42=3;
a41+=1; //a41+=1;等价于a41=(byte)(a41+1)
a42=a42+1; //而a42+1会自动转换为int型
byte a51=3;
byte a52=3;
a51+=1;
a52=a52%1; //同样的,对于+-*/%同样遵循以上数据类型转换规则
//----------数字和字符串之间转换------------------
//1.字符串转换为数字
String str="123";
String str2="123.11";
int w3;
float e3;
w3=Integer.parseInt(str);
e3=Float.parseFloat(str2);
System.out.println("字符串转换为int类型 的w3="+w3);
System.out.println("字符串转换为float类型 的e3="+e3);
//2.数字转换为字符串
int w4=100;
float e4=123.11f;
String str3,str4;
str3=String.valueOf(w4);
str4=String.valueOf(e4);
System.out.println("int类型转换为字符串 的str3="+str3);
System.out.println("float类型转换为字符串 的str4="+str4);
}
}
//以上内容仅供个人参考学习,如有错误请联系本人。thanks!
java数据类型转换那点事的更多相关文章
- Java数据类型转换浅析
Java数据类型转换分为两种:自动类型转换和强制类型转换. 数据类型转换的关键是数据类型相应的表数范围大小 1.自动类型转换: 概念:小范围数据类型会自动转化成大范围数据类型 实例: int a=10 ...
- Java数据类型转换1
1 如何将字串 String 转换成整数 int? A. 有两个方法: 1). int i = Integer.parseInt([String]); 或 i = Integer.parseInt([ ...
- Java数据类型转换(自动转换和强制转换)
数据类型的转换,分为自动转换和强制转换.自动转换是程序在执行过程中“悄然”进行的转换,不需要用户提前声明,一般是从位数低的类型向位数高的类型转换;强制类型转换则必须在代码中声明,转换顺序不受限制. 自 ...
- 2、java数据类型转换
当数据类型不一样时,将会发生数据类型转换. 1.自动类型转换(隐式) 1. 特点:代码不需要进行特殊处理,自动完成. 2. 规则:数据范围从小到大. System.out.println(1024); ...
- 第24章 Java 数据类型转换
每日一句 井底点灯深烛伊,共郎长行莫围棋. 每日一句 What we call "failure" is not falling down, but the staying dow ...
- Java数据类型转换问题
基本数据类型 整数型 byte --- 字节型 --- 1个字节 --- -27~27-1 -> -128~127 byte b1 = 25; byte b2 = 127; short --- ...
- Java 数据类型转换(转换成字节型)
package com.mystudypro.byteutil; import java.io.UnsupportedEncodingException; public class ConToByte ...
- java数据类型转换的常见方法
public class Testfun { public static void main(String[] args) { // (一)跨Number父类的类型转换 // 1.str转int =& ...
- Java 数据类型转换的骚操作和神奇现象
问:银行用什么数据类型来表示余额?float还是double? 都不是!!下面说明为什么都不可以呢? public static void main(String[] args) { //浮点数他都是 ...
随机推荐
- 大数据和BI商业智能有何区别?有何相关?
大数据 ≠BI商业智能,大数据也不是传统商业智能的简单升级. 1.大数据和BI两者的区别 BI(BusinessIntelligence)即商业智能,它是企业数据化管理的一整套的方案,用来将企业中现有 ...
- ANSJ中文分词使用方法
一.前言 之前做solr索引的时候就使用了ANSJ进行中文分词,用着挺好,然而当时没有写博客记录的习惯.最近又尝试了好几种JAVA下的中文分词库,个人感觉还是ANSJ好用,在这里简单总结之. 二.什么 ...
- React入门---组件嵌套-5
组件嵌套 我们现在需要组件嵌套,所以要创建其他组件,目前有一个头部组件,在./components/header.js; 接下来在components文件中创建:底部组件footer.js 和主体组件 ...
- 由typedef和函数指针引起的危机
由typedef和函数指针引起的危机 昨天阅读了大神强哥的代码,发现里面用到了函数指针,也用到的typedef.本来我自以为对这两个概念有一定的认识,但是突然发现这两个东西居然用到了一起!!!!(在一 ...
- 写给Android App开发人员看的Android底层知识(3)
(七)App启动流程第2篇 书接上文,App启动一共有七个阶段,上篇文章篇幅所限,我们只看了第一阶段,接下来讲剩余的六个阶段,仍然是拿斗鱼App举例子. 简单回顾一下第一阶段的流程,就是Launche ...
- Handler线程间通信
package com.hixin.appexplorer; import java.util.List; import android.app.Activity; import android.ap ...
- 利用HTTP-only Cookie缓解XSS之痛
在Web安全领域,跨站脚本攻击时最为常见的一种攻击形式,也是长久以来的一个老大难问题,而本文将向读者介绍的是一种用以缓解这种压力的技术,即HTTP-only cookie. 我们首先对HTTP-onl ...
- [原创]CentOS下Radius服务器搭建
一. 实现环境: 1.系统:CentOS release 6.6 (Final) 2.需要软件包: 1) freeradius-2.1.12-6.e16.x86_64 freeradius-m ...
- 为女票写的计算工作时间的SQL
排除非工作时间.非工作日后,计算工作时间,代码如下: -- 删除函数 DROP FUNCTION IF EXISTS calculateWorkingTime; set @workStartTime= ...
- AngularJs 第三节随笔
利用$scope暴露模型数据 利用向控制器传递$scope对象的机制,可以把模型数据暴露给试图.在你的应用中可能还有其他数据,但是只有通过$scope 触及这些数据,angular才会把它当成数据模型 ...