数据类型,二元运算符,自动类型提升规则,关系运算,取余模运算
package com.kun.operator;
public class Demo1 {
public static void main(String[] args) {
//八大基本数据类型
//整数
int unm1 =10;//最常用
byte unm2 =20;
short unm3 =30;
long unm4 =40L;//Long类型要在数字后面加个L
//小数:浮点数
float unm5 =50.1F;//float类型要在数字后面加个F
double unm6 =3.1415926;
//字符
char name = '请';
//字符串,String不是关键字,类
String namea = "中国";
//布尔值:是非
boolean flag = true;
//boolean flag = false
//二元运算符
int a = 1;
int b = 2;
System.out.println(a+b);
System.out.println(a-b);
System.out.println(a*b);
System.out.println(a/b);//0 (向下取整)
//如果 a 和 b 都是整数类型(如 int 或 long),则结果为整数除法,即会舍弃小数部分,只保留商的整数部分。
//如果 a 或 b 中至少有一个是浮点数类型(如 float 或 double),则结果为浮点数除法,会保留小数部分。
System.out.println(a/(double)b);//0.5
//为了得到浮点数的结果,需要将其中一个操作数强制类型转换为double类型。
// (double)b,将变量b转换为double类型。
float c = 2.0F;
System.out.println(a/c);//0.5 c为浮点类型
System.out.println("=================================");
//自动类型提升规则
Long a1 = 123456789L;
int b1 = 123;
short c1 = 12;
byte d1 = 3;
System.out.println(a1+b1+c1+d1);
//a1+b1+c1+d1:由于a是long类型,根据类型提升规则,b1、c1、d1都会自动提升为long类型,因此最终结果是Long类型。
System.out.println(b1+c1+d1);
//b1+c1+d1:由于b是int类型,根据类型提升规则,c1、d1都会自动提升为int类型,因此最终结果是Int类型。
System.out.println(c1+d1);
//c1+d1:由于c1是short类型,根据类型提升规则,d1会自动提升为int类型,因此最终结果是Int类型。
/**
* 如果操作数中有一个是long类型,则结果类型为long。
* 如果操作数中没有long类型,但有一个是int类型,则结果类型为int。
* 如果操作数中没有long和int类型,但有一个是short类型,则结果类型为short。
* 如果操作数中没有long和int类型,但有一个是short类型,且另一个操作数是byte或char类型,那么两个操作数都会被提升为int类型
* 如果操作数中有float,整个表达式提升为float。
* 如果操作数中有double,整个表达式提升为double。
* Java中的类型提升规则保证了在混合类型运算时,结果类型会是参与运算的操作数中的最高等级类型
*/
System.out.println("=================================");
//关系运算返回结果 :正确,错误 布尔值
// if
int a2 = 10;
int b2 = 20;
int c2 = 31;
System.out.println(c2%a2);//1
//取余模运算 31/10 = 3...1
System.out.println(a2>b2);
System.out.println(a2<b2);
System.out.println(a2==b2);
System.out.println(a2!=b2);
/**
* >(大于):检查左操作数是否大于右操作数。如果是,返回true;否则,返回false。
* <(小于):检查左操作数是否小于右操作数。如果是,返回true;否则,返回false。
* ==(等于):检查两个操作数是否相等。如果是,返回true;否则,返回false。
* !=(不等于):检查两个操作数是否不相等。如果是,返回true;否则,返回false。
*/
}
}