Java学习(4)—— 布尔类型、基本数据类型转换、基本数据类型和String类型的转换
布尔类型
- 也叫Boolean类型,boolean只允许取true和false。
- boolean占一个字节。
- 适用于逻辑运算,流程控制语句。
有默认类型,是false。但是应该声明为成员变量或是静态变量,如果在方法体中(如main)不会自动赋值。
不能使用0或非0的整数代替false和true。这点和C不同。
public class Javaday6 {//默认值为falsestatic boolean b;public static void main(String args[]){//没有默认值boolean a;System.out.println(b);}
}
基本数据类型转换
自动类型转换:在Java程序在进行赋值和运算时,精度小的类型自动转换为精度大的类型。
自动类型转换
- 有多种类型的数据混合运算时,系统会将所有数据的数据类型 转换为容量最大的那个数据类型再进行运算。
- 当容量大的数据类型赋值给容量小的数据类型时,会产生异常。反之则自动转换。
- (byte、short)和char之间不会相互自动转换。所以char的自动转换开辟了一条新路...
- byte、short、char 三者进行计算时,系统首先转换成int类型。
- boolean不参与自动转换。
- 自动提升原则:表达式结果的类型自动提升为操作数中最大的类型。
//byte,short,char三者运算时,首先转换为int类型
public class javaday7 {public static void main(String args[]){byte a = 1;short b = 2;byte c = 3;short finl = a+b;//报错,结果为intbyte res = a+c;//依旧报错,结果仍为intint res2 = a+b;//正确}
}
强制类型转换
介绍:自动类型转换的逆过程,将容量大的数据类型转换为容量小的数据类型。使用时要加上强制转换符(),但可能造成数据的精度丢失和溢出。
注意:
- 强转符号只对最近的操作数有效,可以使用小括号提升优先级。
- char类型可以保存int的常量值,但不能保存int的变量值,需要强转。(char a = 100; 是正确的,但 int a = 100; char b = a; 错误,需要强制转换)
- byte、short、char在进行运算时,当做int类型处理。且byte与byte、short与short、char与char相加结果也为int类型。
//强制类型转换 () 符号
class forceconvert{public static void main(String args[]){double a = 4.99;int c = 1999;//强制转换为int类型 精度丢失 小数点后直接舍去int b = (int)a;// b = 4//造成数据溢出byte d = (byte)c;
—--------------------------double a = 4.99;//出现异常,10.0依旧为double 只强转了3.5int c = (int)3.5*10.0;//正确做法int c = (int)(3.5*10.0);}
}
基本数据类型转换小练习:
//判断是否能通过编译
public class javaday8 {public static void main(String args[]){short a = 12;a = a - 7;//错误,7默认为int类型 运算时自动转换为int 结果为int不能赋给shortbyte b = 10;b = b + 3;//错误,同上一题一样 结果为intb = (byte)(b + 3);//正确 进行了强制装换char c = 'a';int d = 16;float e = .314f;double result = c + d + e;//正确,结果化作float类型 double>floatbyte f = 16;short g = 11;short h = f + g;//错误,h的结果为int类型}
}
————————————
基本数据类型和String类型的转换
介绍:在程序开发中,我们经常需要将基本数据类型转成String类型。或者将String类型转为基本数据类型,这类转换比较特殊。
基本数据类型转String型
语法:将基本数据类型的值加上 "" 即可。
//基本数据类型转String
public class javaday9 {public static void main(String args[]){int a = 22;short b = 18;String c = a + "";System.out.println(b+"xmj");}
}
String类型转换成基本数据类型
语法:通过调用基本数据类型对应的包装类的parseXX方法来转换。char比较特殊,只能转换一个字符。 包装类细则查询jdk1.8文档。
//String类型转换为基本数据类型
class toString{public static void main(String args[]){String str = "18";String str2 = "asdadasd";int num = 123;int num1 = Integer.parseInt(str);double num2 = Double.parseDouble(str);byte num3 = Byte.parseByte(str);Boolean num4 = Boolean.parseBoolean(str2);//在转为Boolean时 不同于T和F的字符串统一判断为falsechar res = str2.charAt(1);/*1.转换为char时只能转换一个字符2.charAt后的数字代表要转换的下标(这里转换 "s")*/int F = Integer.parseInt(str2);//在运行时会报错}
}
注意事项:在将String类型转换为基本数据类型时,要确保String类型能转换为有效的数据,否则程序会报错。例:"hello" 不能转换为 int 类型
小作业
class test1{public static void main(String args[]){int num1;num1 = 13;int num2;num2 = 17;int num3;num3 = num1 + num2;System.out.println("num3 =" + num3);int num4 = 38;int num5 = num4 - num3;System.out.println("num5 =" + num5);}//..两个输出语句不会改变num3和num5的类型!
}
//结果
num3 =30
num5 =8
Java学习(4)—— 布尔类型、基本数据类型转换、基本数据类型和String类型的转换相关推荐
- JAVA基本数据类型和String类型的转换
1.基本类型转String类型 语法:将基本类型的值+"" 即可,如下图 编译运行结果: 2.String类型转基本数据类型 语法:通过基本类型的包装类调用parseXX方法即可, ...
- Java基本数据类型和String类型的转化
基本数据类型转String类型只需要 + ""即可,如下 public static void main(String[] args) {int n1 = 100;float n2 ...
- MongoDB查询时排序字段为int类型和string类型的区别
最近在开发中遇到一个mongo查询排序的问题,项目中一些高频访问的热数据是放在mongoDB里的,mongo支持很多像SQL一样的操作比如sort就对应于SQL的order by. 比方我们有一个集合 ...
- [转载] Python中int类型和string类型的相互转换
参考链接: Python类型转换和类型转换 1.字符串转换成int a = '10' int(a) //十进制string转化为int, 10int(a, 16) //十六进制string转化为int ...
- java学习笔记(13) 第13章 - 常用类
第13 章常用类-目录 13.1 包装类 13.1.1 包装类的分类.包装类和基本数据的转换.案例演示.课堂测试 13.1.2 包装类型和String 类型的相互转换 13.1.3 Integer 类 ...
- 基本数据类型和String相加结果一定是字符串型
今天见到一道选择题有一选项为基本数据类型和String相加结果一定是字符串型,例如: 输出结果为: 确实是这样,那么原理是什么呢? 在我们把一个基本数据类型和一个String类型相加的时候,编译器会将 ...
- (Redis_学习一)Redis关于string类型和hash类型数据操作
Redis关于string类型和hash类型数据操作 set name xiaohongyang // get name setnx name xiaohy get name setex name 1 ...
- Python中float类型、float32类型和float64类型的表示精度,所需内存及其之间的转换
1. 表示精度和所需内存 float类型和float64类型是一样的,都需要64个bits,而float32需要32个bits. 精度方面,float类型和float64类型在十进制中可以有16位,而 ...
- float类型和long类型那个取值范围更大
float类型和long类型那个取值范围更大 首先我们先来看看一段代码 float(单精度):它属于数字型中的浮点型,在Java中占4个字节.32个bit,取值范围为3.4E-038~3.4E+038 ...
最新文章
- 【分块】#6283. 数列分块入门 7(区间乘法、区间加法、单点查询)
- qq应用之超级店长数据分析
- 来自开发者的点赞!网易云信揽获3大技术奖项
- python 中 feedparser的简单用法
- java中int转成String位数不足前面补零 java格式化2位数不足补零
- can't select mysql database_ERROR 1006 (HY000) Can't create database (errno: 13) MySQL 5.6.12
- openfiledialog选择文件会占用文件_铁皮文件柜的尺寸规格如何选择?选购花都文件柜要注意的问题...
- Docker 架构原理剖析,万字详解!
- Grasshopper and Rhino: Python Scripting Grasshopper和Rhino:Python脚本 Lynda课程中文字幕
- 论文查重 降重复度?如何进行毕业论文查重--总结贴
- 完全删除conime.exe
- 如何生成一个APP_ID
- STM32F103硬件SPI驱动ADS1256
- 欧姆龙服务器数码管不显示问题,数显仪表常见故障的原理分析以及解决方案
- 投资是一个非常专业的领域,亏钱容易赚钱难
- 【webrtc0419 点对点视频聊天功能】
- 洞见科技解决方案总监薛婧:联邦学习助力数据要素安全流通
- 数据结构——王卓老师
- 人工势场算法 Matlab版源码
- 很励志的故事(尸山代码)