类型转换:
从小到大的排序 自动类型转化(隐式转换)
小的数据类型与大的数据类型进行运算的时候,结果会自动转化大的类型
byte char short -->int -->long -->float -->double
注意事项:byte char short 相互之间不转换 他们参与运算首先转换为int类型
格式:范围大的数据类型 变量 = 范围小的数据类型值
强制类型转换(显示转换)
可以忍受精度缺失的情况下 可以把大类型的数据强制转化成小类型的数据
格式:范围小的数据类型 变量 = (范围小的数据类型) 范围大的数据类型
运算符的概念:
对常量和变量进行操作的符号称为运算符
表达式的概念:
用运算符把常量连接起来符合java语法的式子就可以称为表达式
常用的运算符:算术运算符 赋值运算符 关系运算符 逻辑运算符 三元运算符
算数运算符: + - * / % ++ --
在java中两个int型数据进行除法运算得到的结果也是int 直接砍掉小数点
代码演示:
public static void main(String[] args) {
int a = 10;
int b = 20;
System.out.println(a + b); // 30
System.out.println(a - b); // -10
System.out.println(a * b);// 200
System.out.println(a / b);// 0
System.out.println(1/2.0);//0.5
System.out.println(1/3);//0
System.out.println(2/3);//0
System.out.println("===========================");
// 当字符串与数字中间使用+的时候 表示链接 最终得到一个新的字符串
int d = 10;
System.out.println("嘿嘿"+10);//嘿嘿10
System.out.println("嘿嘿"+10+10);//嘿嘿1010
System.out.println("嘿嘿"+(10+10));//嘿嘿20
System.out.println(10+10+"嘿嘿");//20嘿嘿
System.out.println("===========================");
System.out.println(10%3);// 求余 取余数 (取模)
System.out.println(7%2);// 1
System.out.println("======================");
// 'a' ---> 97 'b'---> 98
// 'A' ---> 65
// '0'---> 48
System.out.println('a' + 10);// 107
System.out.println('A' + 10);// 75
System.out.println('0' + 10);// 58
System.out.println((char)('a' + 1));//b
}
++运算符:
当++ 运算符单独使用的时候 无论++符号在变量的左边还是右边 都表示对这个变量自增1
当++运算符配合使用的时候, 如果++符号在变量的左边, 强调的是先改变(自增1)再配合,
如果在变量的右边,强调先配合再改变(自增1)
-- 运算符:
当-- 单独使用的时候 无论--在变量的左边还是右边, 都表示对这个变量进行自减1
当-- 配合的使用的时候, 如果-- 在变量的左边, 强调的是先改变(自减1) 再配合,
如果在变量的右边,强调先配合再改变(自减1)
代码演示:
public static void main(String[] args) {
int b = 10;
System.out.println(b++);//10
System.out.println(b);// 11
System.out.println("==================");
int c = 20;
System.out.println(--c);// 19
System.out.println(c);// 19
int d = 30;
System.out.println(d--);//30
System.out.println(d);// 29
}
赋值运算符:
基本的赋值运算符:=
扩展的赋值运算符:+= -= *= /= %=
把左边和右边的结果赋值给左边
注意:左边不能是常量
隐含了一个强制类型转换
好处:更高效
代码演示:
public static void main(String[] args) {
int a = 10;
a+=2; // a = a + (2) --- > a = 10 + (2) ---> a = 12
System.out.println(a);// 12
int b = 20;
b-=2; // b = b - (2) ---> b = 18
System.out.println(b);//18
short c = 10;
//c = (short)(c + 10); // short = short + int ---> short = int
c+=10;
System.out.println(c);//20
}
关系运算符:
==(等于) !=(不等于) >(大于) <(小于) >=(大于等于) <=(小于等于)
关系运算符的都是boolean型 要么就是true 要么就是false
代码演示:
public static void main(String[] args) {
// TODO Auto-generated method stub
int a = 10;
int b = 20;
int c = 10;
System.out.println( a == b);// false
System.out.println( a == c);// true
System.out.println("======================");
System.out.println( a != b);// true
System.out.println( a != c);// false
System.out.println("======================");
System.out.println( a >= b);// false
System.out.println( a >= c);// true
System.out.println("======================");
System.out.println( a <= b);// true
System.out.println( a <= c);// true
System.out.println("======================");
System.out.println( a > b); // false
System.out.println( a > c);// false
System.out.println("======================");
System.out.println( a < b);// true
System.out.println( a < c);// false
System.out.println("======================");
}
逻辑运算符:
逻辑运算符用于连接布尔表达式 最终的结果值为布尔型
在java中不可以写成3
与: & 运算规则: 如果两边有一边为false那整个表达式的结果就为false , 只有两边同时为true 结果才为true
或: | 运算规则: 如果两边有一个为true那整个表达式的结果就为true , 只有两边同时为false ,结果才为false
非: ! 运算规则: 真变假 假变真
异或: ^ 运算规则: 两边相同为false,不同为true
代码演示:
public static void main(String[] args) {
System.out.println(true & true ); // T
System.out.println(false & true );// F
System.out.println(true & false );// F
System.out.println(false & false );// F
System.out.println("=========================");
System.out.println(true | true ); // T
System.out.println(false | true );// T
System.out.println(true | false );// T
System.out.println(false | false );// F
System.out.println("=========================");
System.out.println(!true);// F
System.out.println(!false);// T
System.out.println("=========================");
System.out.println(true ^ true ); // F
System.out.println(false ^ true );// T
System.out.println(true ^ false );// T
System.out.println(false ^ false );// F
}
短路与: &&
短路或: ||
好处:效率更高
短路与: &&
基本的运算规则跟 & 相似 , 区别在于 , 如果左边为false,右边不执行,直接把结果false
短路或: ||
基本运算规则 跟 | 相似, 区别在于, 如果左边为true ,右边不执行, 直接把结果true返回
三元表达式:
表达式1 ? 结果1 : 结果2
执行流程:
先去计算表达式1的结果
如果结果为真 则返回结果1 , 否则 返回结果2
代码演示:(获取两个数中大数。)
(int x=3,y=4,z;z = (x>y)?x:y;//z变量存储的就是两个数的大数。)
public class Demo09Operator {
public static void main(String[] args) {
int a = 10;
int b = 20;
int c = (a > b) ? a : b;
System.out.println("c:" + c);
}
}
(比较两个数据是否相同)
public class Demo10Operator {
public static void main(String[] args) {
// 定义两个int类型的变量
int a = 10;
int b = 20;
boolean flag = (a == b) ? true : false;
// boolean flag = (a == b);
System.out.println(flag);
}
}
(获取三个整数中的最大值)
public class Demo11Operator {
public static void main(String[] args) {
// 定义三个int类型的变量
int a = 10;
int b = 30;
int c = 20;
// 先比较两个整数的大值
int temp = ((a > b) ? a : b);
int max = ((temp > c) ? temp : c);
System.out.println("max:" + max);
}
}
以上是java中的运算符与类型转换的实例教程的详细内容。更多信息请关注PHP中文网其他相关文章!

javaispopularforcross-platformdesktopapplicationsduetoits“ writeonce,runanywhere”哲学。1)itusesbytbytybytecebytecodethatrunsonanyjvm-platform.2)librarieslikeslikeslikeswingingandjavafxhelpcreatenative-lookingenative-lookinguisis.3)

在Java中编写平台特定代码的原因包括访问特定操作系统功能、与特定硬件交互和优化性能。1)使用JNA或JNI访问Windows注册表;2)通过JNI与Linux特定硬件驱动程序交互;3)通过JNI使用Metal优化macOS上的游戏性能。尽管如此,编写平台特定代码会影响代码的可移植性、增加复杂性、可能带来性能开销和安全风险。

Java将通过云原生应用、多平台部署和跨语言互操作进一步提升平台独立性。1)云原生应用将使用GraalVM和Quarkus提升启动速度。2)Java将扩展到嵌入式设备、移动设备和量子计算机。3)通过GraalVM,Java将与Python、JavaScript等语言无缝集成,增强跨语言互操作性。

Java的强类型系统通过类型安全、统一的类型转换和多态性确保了平台独立性。1)类型安全在编译时进行类型检查,避免运行时错误;2)统一的类型转换规则在所有平台上一致;3)多态性和接口机制使代码在不同平台上行为一致。

JNI会破坏Java的平台独立性。1)JNI需要特定平台的本地库,2)本地代码需在目标平台编译和链接,3)不同版本的操作系统或JVM可能需要不同的本地库版本,4)本地代码可能引入安全漏洞或导致程序崩溃。

新兴技术对Java的平台独立性既有威胁也有增强。1)云计算和容器化技术如Docker增强了Java的平台独立性,但需要优化以适应不同云环境。2)WebAssembly通过GraalVM编译Java代码,扩展了其平台独立性,但需与其他语言竞争性能。

不同JVM实现都能提供平台独立性,但表现略有不同。1.OracleHotSpot和OpenJDKJVM在平台独立性上表现相似,但OpenJDK可能需额外配置。2.IBMJ9JVM在特定操作系统上表现优化。3.GraalVM支持多语言,需额外配置。4.AzulZingJVM需特定平台调整。

平台独立性通过在多种操作系统上运行同一套代码,降低开发成本和缩短开发时间。具体表现为:1.减少开发时间,只需维护一套代码;2.降低维护成本,统一测试流程;3.快速迭代和团队协作,简化部署过程。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

Dreamweaver CS6
视觉化网页开发工具

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

SublimeText3 Linux新版
SublimeText3 Linux最新版

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)