网站首页 > java教程 正文
- 数据类型分类
- 基本数据类型的取值范围
- 数据转换
1、整数类型默认的int类型;小数类型默认的double。
2、String的字符串进行类型转换时,如果字符串中包含long整形的字符大写L或者小写l时,在转换成字符串时,会出现错误。
示例:
String str="123L";
long str1=Long.parseLong(str);
System.out.println(str1); //错误
3、String的字符串是float、double浮点型时,字符串可以加f、F、D、d等,在进行基本类型转换时不会出错。
示例:
String f1="12.34f";
float f2=Float.parseFloat(f1);
System.out.println(f2);//结果:12.34,;d、D也一样
4、自动类型转换(也叫隐式类型转换) ,其实就是小范围的数据类型向大范围的数据类型转换,例如int类型转long。
5、强制类型转换(也叫显式类型转换) int b = (int)(i + j)。
6、强制类型转换在某种情况下会丢失精度。
7、表达式的数据类型自动提升。
- 进行四则运算时
1、所有的byte型、short型和char的值将被提升到int型。
2、如果一个操作数是long型,计算结果就是long型。
3、如果一个操作数是float型,计算结果就是float型。
4、如果一个操作数是double型,计算结果就是double型。
5、如果一个操作数是String型,计算结果就是String型。
案例(根据上面的规则):
byte b1 = 10;
byte b2 = 20;
byte b3 = b1 + b2 //错误,b1+b2是int类型,java的整数默认类型为int,b3是byte类型,二者类型不同,所以出错
byte b3 = (byte)(b1 + b2); //正确
short s1 = 10;
s1 = s1 + 12; //错误: 不兼容的类型: 从int转换到short可能会有损失
short s2 = 10;
s2 += 12; // 等同于short s2 = (short)(s2 + (short)1); //正确
- 其它
switch语句能否作用在byte上,能否作用在long上,能否作用在string上?
byte的存储范围小于int,可以向int类型进行隐式转换,所以switch可以作用在byte上
long的存储范围大于int,不能向int进行隐式转换,只能强制转换,所以switch不可以作用在long上string在1.7版本之前不可以,1.7版本之后switch就可以作用在string上了。
switch:
源码:
public static void main(String[] args) {
String s = "a" ;
switch (s) {
case "1":
break;
case "2":
break;
default:
break;
}
}
反编译后:
public static void main(String[] args) {
String s = "a";
String str1;
switch ((str1 = s).hashCode()) { case 49:
case 50:
if ((str1.equals("1")) || (goto 57) || (str1.equals("2")))
break;
}
}
完毕!!!!
给个关注,转发,谢谢
- 上一篇: 【Java】基础08:数据类型的转换
- 下一篇: 大数据必学Java基础(十三):基本数据类型的转换
猜你喜欢
- 2024-11-21 Java整数和浮点数类型转换
- 2024-11-21 JavaSE基础之多态的应用场景
- 2024-11-21 第二章:Java数据类型和运算符
- 2024-11-21 int强转为byte类型么?会产生什么问题?
- 2024-11-21 Java接口&异常处理&类型转换
- 2024-11-21 详解 Java 17 中的模式匹配(Pattern Matching)
- 2024-11-21 Java基本数据类型之间的转换规则
- 2024-11-21 关于Java String 类型转换时null的问题
- 2024-11-21 [JAVA冷知识]什么是逆变与协变?数组是否支持协变&逆变?泛型呢?
- 2024-11-21 看完后让你成为武松,手把手教你打死Java中的纸老虎
你 发表评论:
欢迎- 最近发表
-
- 搞趣网:我的世界全新皮肤包原始居民下载地址
- 我的世界拔刀剑MOD下载(我的世界拔刀剑mod下载国际版)
- 我的世界无正版账号的简单联机方法(非网易版,仅适用于局域网)
- 一些可以显著提高大型 Java 项目启动速度的尝试
- 常见的java敏感异常介绍(java 常见的异常)
- Java 开发者必看!三招实现外部 Jar 包动态加载(含热更新方案)
- Java JAR 启动内存参数配置指南:从基础设置到性能优化
- 对Spring MVC接口进行Mock测试(springmvc对外接口)
- 还在用策略模式解决 if-else?Map+函数式接口方法才是YYDS
- 干掉OpenFeign,SpringBoot 3.0 自带的 HTTP 客户端真香!
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)