数据类型转换&运算符
基本数据类型注意事项
- 整型类型:long>int>short>byte
- java默认类型为int型
- long a = 123
表示将int类型的数值赋给更大范围的long类型,当数据超过long类型时,必须声明long变量,且必须加l,声明为改数据为long型 - long a = 2147483648L
- long a = 123
- java默认类型为int型
- 浮点类型:double>float
- java默认类型为double型
- 在java中声明float类型
- 将整数赋值给float型不加F
float b = 1; - 将小数赋给float需要加F
float b = 1.0;
- 将整数赋值给float型不加F
- boolean: true 、false
一、类型自动提升, int 类型与 byte 、short、char类型的运算
- int = byte+byte
- int = short+short
- int = char - int
char 跟int对象运算时先转为字节码,如:a---->97
public class Test1 {
public static void main(String[] args) { // 定义两个 byte类型变量
byte b1 = 10;
byte b2 = 20;
// 定义int 类型变量 b3
int b3 = b1 + b2;
System.out.println("byte类型b1和b2的和为:");
System.out.println(b3); // 定义两个 short类型变量
short s1 = 1000;
short s2 = 2000;
// 定义int 类型变量 b3
int s3 = s1 + s2;
System.out.println("short类型s1和s2的和为:");
System.out.println(s3); // 定义char类型变量
char ch1 = 'a';
// 定义int类型变量
int i1 = 30;
// 定义int 类型变量 ch3
int ch3 = ch1 - i1;
System.out.println("char类型ch1和int类型i1的差为:");
System.out.println(ch3);
}
}
二、类型自动提升, 浮点型float、double的运算
float = long + int
long = long +int
double = double + int
double = float +double
public class Test2 {
public static void main(String[] args) {
// 定义 int类型变量i1 和 long类型变量l1
int i1 = 100;
long l1 = 200;
// 定义变量add,保存i1和l1的和,并输出.
long add = i1 + l1;
System.out.println("add 的值:"+add);
// 定义 long类型变量l2 和 float类型变量f2
long l2 = 1000000;
float f2 = 0.45F;// 定义变量add2,保存l1和f1的和,并输出.
float add2 = l2 + f2;
System.out.println("add2的值:"+add2);
// 定义 int类型变量i3 和 double类型变量d3
int i3 = 1000000;
double d3 = 0.45;
// 定义变量add3,保存i2和d1的和,并输出.
double add3 = i3 + d3;
System.out.println("add3的值:"+add3);
//定义 float类型变量f2 和 double类型变量d2
float f4 = 1000000.789F;
double d4 = 0.45;
//定义变量add4,保存f2和d2的和,并输出.
double add4 = f4 + d4;
System.out.println("add4的值:"+add4);
}
}
三、 类型强制转换,由小 ----->大
将int 类型转为char类型
char = (char)int将double类型转为int类型
int = (int)doublepublic class Test3 {
public static void main(String[] args) {
// 定义char类型变量ch,赋值为'J'
char ch = 'J';
// 将变量ch转换为小写'j',并输出
ch = (char) (ch + 32);
System.out.println(ch);// 定义char类型变量ch2,赋值为'a'
char ch2 = 'a';
// 将变量ch2转换为大写'A',并输出
ch2 -= 32;
System.out.println(ch2); // 定义double类型变量d3,int类型变量i3
double d3 = 3.5;
int i3 = 100; // 定义变量sum3,保存d3和i3的和,将sum3去除小数部分并输出.
double sum3 = d3 + i3;
System.out.println("sum3的的值:" + sum3);
System.out.println("sum3的整数部分的值:" + (int) sum3); // 定义double类型变量d4,int类型变量i4
double d4 = 5.8;
int i4 = 300;
// 定义int变量mul4,保存d4和i4乘积的整数部分,并输出
int mul4 = (int) (d4 * i4);
System.out.println("mul4的整数部分值:"+mul4); }
}
四、 % : 取余符号
public static void main(String[] args) {
// 定义两个int类型变量a1和a2,分别赋值10,11,判断变量是否为偶数,拼接输出结果
int a1 = 10;
int a2 = 11;
boolean b1 = a1 % 2 == 0;
boolean b2 = a2 % 2 == 0;
System.out.println("10是偶数?" + b1);
System.out.println("11是偶数?" + b2);
// 定义两个int类型变量a3和a4,分别赋值12,13,判断变量是否为奇数,拼接输出结果
int a3 = 12;
int a4 = 13;
boolean b3 = a3 % 2 == 1;
boolean b4 = a4 % 2 == 1;
System.out.println("12是奇数?" + b3);
System.out.println("13是奇数?" + b4);
}
五、++a 和 a++的区别
++a, 先加再做运算
a = 20
++a % 3
两步运算:- a = a+1 = 21
- a % 3 = 21 % 3 =0
a++,先运算后加加
a = 20
a++ % 7- a % 7 = 20 % 7 ≠ 0
- a = a + 1 =21
public static void main(String[] args) {
//定义一个int类型变量a,赋值为20.
int a = 20;
//定义boolean类型变量bo , 判断++a 是否被3整除,并且a++ 是否被7整除,将结果赋值给bo
boolean bo = ++a % 3 == 0 && a++ % 7 == 0;
//输出a的值,bo的值.
System.out.println("bo的值:" + bo);
System.out.println("a的值:" + a);
System.out.println("-------------");
//定义一个int类型变量b,赋值为20.
int b = 20;
//定义boolean类型变量bo2 , 判断b++ 是否被3整除,并且++b 是否被7整除,将结果赋值给bo2
boolean bo2 = b++ % 3 == 0 && ++b % 7 == 0;
//输出b的值,bo2的值.
System.out.println("bo2的值:" + bo2);
System.out.println("b的值:" + b);
}
六、 三元运算符 a>b ? true:false
三元运算符的使用
表达式 ?表达式成立返回值:表达式不成立返回值 例: a > b ? true : false 如果a > b成立,则返回true, 否则,返回false
public class Test6 {
public static void main(String[] args) {
// 在main方法中调用printNum方法
printNum();
}private static void printNum() { // printNum方法中,定义int变量a赋值为9,b也赋值为9
int a = 9;
int b = 9; // printNum方法中,定义int变量num赋值为++a.
int num = ++a;
// printNum方法中,定义boolean变量bo,使用三元运算符赋值,当num>=10,赋值为true,否则为false,打印bo的值
boolean bo = (num >= 10) ? true : false;
System.out.println("bo的值"+bo); // printNum方法中,定义int变量num2赋值为b++.
int num2 = b++;
// printNum方法中,定义boolean变量bo2,使用三元运算符赋值,当num2>=10,赋值为true,否则为false,打印bo2的值
boolean bo2 = (num2 >= 10) ? true : false;
System.out.println("bo2的值"+bo2);
}
}
数据类型转换&运算符的更多相关文章
- JavaScript---js语法,数据类型及方法, 数组及方法,JSON对象及方法,日期Date及方法,正则及方法,数据类型转换,运算符, 控制流程(三元运算),函数(匿名函数,自调用函数)
day46 一丶javascript介绍 JavaScript的基础分为三个 1.ECMAScript:JavaScript的语法标准.包括变量,表达式,运算符,函数,if语句,for语句 ...
- 简谈-Python的输入、输出、运算符、数据类型转换
输出: 格式化输出: 看到了 % 这样的操作符,这就是Python中格式化输出. 换行输出: 在输出的时候,如果有 \n 那么,此时 \n 后的内容会在另外一行显示 输入: 在python2.7当中, ...
- python 全栈开发,Day50(Javascript简介,第一个JavaScript代码,数据类型,运算符,数据类型转换,流程控制,百度换肤,显示隐藏)
一.Javascript简介 Web前端有三层: HTML:从语义的角度,描述页面结构 CSS:从审美的角度,描述样式(美化页面) JavaScript:从交互的角度,描述行为(提升用户体验) Jav ...
- [Day2]变量、数据类型转换以及运算符
1.变量 变量是内存中装载数据的小盒子,你只能用它来存取数据 2.计算机存储单元 (1)计算机存储设备的最小信息单元叫“位(bit)”,“比特位” (2)8个比特位表示一个数据,是计算机的最小存储单元 ...
- JavaScript(四):运算符&数据类型转换
+:算符的加法:连接字符串 加法会将其它类型的值,自动转为字符串,然后再进行连接运算! var a=1+2; console.log('first: '+a); var a=1+2+'3';//先计算 ...
- java===java基础学习(3)---数据类型转换,运算符级别,枚举类型
数据类型转换: 有的时候,程序需要将数据类型,比如 int + float ,结果是float, 这里的int就被转换为float类型,属于合法转换. Java中的合法转换如下图: 红色表示无信息丢失 ...
- 前端JavaScript(1) --Javascript简介,第一个JavaScript代码,数据类型,运算符,数据类型转换,流程控制,百度换肤,显示隐藏
一.Javascript简介 Web前端有三层: HTML:从语义的角度,描述页面结构 CSS:从审美的角度,描述样式(美化页面) JavaScript:从交互的角度,描述行为(提升用户体验) Jav ...
- JAVA学习(三):Java基础语法(变量、常量、数据类型、运算符与数据类型转换)
Java基础语法(变量.常量.数据类型.运算符与数据类型转换) 1.变量 Java中.用户能够通过指定数据类型和标识符来声明变量.其基本的语法为: DataType identifier; 或 Dat ...
- javascript学习3、数据类型、数据类型转换、运算符
数据类型包括:基本数据类型和引用数据类型 基本数据类型指的是简单的数据段,引用数据类型指的是有多个值构成的对象. 当我们把变量赋值给一个变量时,解析器首先要确认的就是这个值是基本类型值还是引用类型值 ...
随机推荐
- Uipath创建文件夹
东京IT青年前线 http://www.rpatokyo.com/ Uipath创建文件夹 使用Create Folder进行文件夹的创建 这里可以指定相对路径和绝对路径 如果没有指定文件夹的绝对路径 ...
- vue 代码迁移的坑
由于开发需要,开发过程中总会遇到由于代码调试.svn/git上传等过程中,总会出现代码迁移文件的需求,很多时候,迁移过后总会出现一些大大小小的问题, 首先,需要迁移文件内有没有系统自动隐藏的文件(例如 ...
- 关于C#界面开发winform与SharpGL结合鼠标只在OpenGLControl绘图区域显示坐标移动消息响应(鼠标单独在某个控件上的消息响应)
原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/11773260.html 因为很多时候我们开发画图之类的工具时,鼠标移动之类的,都只想在绘图区域 ...
- Kafka Manager安装部署及使用
为了简化开发者和服务工程师维护Kafka集群的工作,yahoo构建了一个叫做Kafka管理器的基于Web工具,叫做 Kafka Manager.本文对其进行部署配置,并安装配置kafkatool对k ...
- 数据类型(二)---day04
目录 上节课回顾 五 变量 (一)什么是变量 (二)变量的组成 (三)变量名的命名规范 (四)常量 (五)python变量内存管理 (六)变量的三种打印方式 六 数据类型 (一)数字类型 (二)字符串 ...
- MyBatis(1)-- MyBatis介绍
一.MyBatis优点 不屏蔽SQL,意味着可以更为精确地定位SQL语句,可以对其进行优化和改造,这有利于互联网系统性能的提高,符合互联网需要性能优化的特点. 提供强大.灵活的映射机制,方便Java开 ...
- unity message
再用unity进行开发过程中,不可避免的用到消息的传递问题,以下介绍几种消息传递的方法: (一)拖动赋值 此方法即为最普通的方法,即把需要引用的游戏物体或者需要引用的组件拖动到相关公有变量的槽上,然后 ...
- class样式的添加和设置.html
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 第三篇 Flask中的request
每个框架中都有处理请求的机制(request),但是每个框架的处理方式和机制是不同的,下面我们来了解一下Flask的request中都有什么东西 from flask import request 1 ...
- [2018-01-12] laravel中的MVC
路由里面可以做所有事情,但是真正的项目当中,路由只用来接收请求,并转发给控制器的方法进行处理 首先我们先了解一下 一.app/Http/routes路由的用法: 方法一. 这种方法写完后在控制器创建方 ...