LUA 和 JAVA 的区别
一、变量类型
LUA无需设置变量类型,比如
local a, b, c = 1, "你好"
print(a, b, c)
------
1 "你好" nil
JAVA需要设置变量类型,且不能打印空值
public class ValueType {public static void main(String[] args) {
// 八种基本数据类型byte a = 127; // 1个字节 2^8short b = 32767; // 2个字节 2^8^2int c = 2147483647; // 4个字节 2^8^4long d = 9223372036854775807L; // 8个字节, 后面必须加lfloat e = 0.00000001F; // 4个字节, 后面必须加f 1位符号, 8位指数, 23位尾数double f = 0.00000000000000001; // 8个字节, 1位符号, 11位指数, 52位尾数boolean g = false; // 1位char h = '韩'; // 单引号, 16位 Unicode字符System.out.println(a);System.out.println(b);System.out.println(c);System.out.println(d);System.out.println(e);System.out.println(f);System.out.println(g);System.out.println(h);// 精度丢失问题System.out.println(2 - 1.1);// 无需记忆取值范围// byteSystem.out.println("基本类型:byte 二进制位数:" + Byte.SIZE);System.out.println("包装类:java.lang.Byte");System.out.println("最小值:Byte.MIN_VALUE=" + Byte.MIN_VALUE);System.out.println("最大值:Byte.MAX_VALUE=" + Byte.MAX_VALUE);System.out.println();// shortSystem.out.println("基本类型:short 二进制位数:" + Short.SIZE);System.out.println("包装类:java.lang.Short");System.out.println("最小值:Short.MIN_VALUE=" + Short.MIN_VALUE);System.out.println("最大值:Short.MAX_VALUE=" + Short.MAX_VALUE);System.out.println();// intSystem.out.println("基本类型:int 二进制位数:" + Integer.SIZE);System.out.println("包装类:java.lang.Integer");System.out.println("最小值:Integer.MIN_VALUE=" + Integer.MIN_VALUE);System.out.println("最大值:Integer.MAX_VALUE=" + Integer.MAX_VALUE);System.out.println();// longSystem.out.println("基本类型:long 二进制位数:" + Long.SIZE);System.out.println("包装类:java.lang.Long");System.out.println("最小值:Long.MIN_VALUE=" + Long.MIN_VALUE);System.out.println("最大值:Long.MAX_VALUE=" + Long.MAX_VALUE);System.out.println();// floatSystem.out.println("基本类型:float 二进制位数:" + Float.SIZE);System.out.println("包装类:java.lang.Float");System.out.println("最小值:Float.MIN_VALUE=" + Float.MIN_VALUE);System.out.println("最大值:Float.MAX_VALUE=" + Float.MAX_VALUE);System.out.println();// doubleSystem.out.println("基本类型:double 二进制位数:" + Double.SIZE);System.out.println("包装类:java.lang.Double");System.out.println("最小值:Double.MIN_VALUE=" + Double.MIN_VALUE);System.out.println("最大值:Double.MAX_VALUE=" + Double.MAX_VALUE);System.out.println();// charSystem.out.println("基本类型:char 二进制位数:" + Character.SIZE);System.out.println("包装类:java.lang.Character");// 以数值形式而不是字符形式将Character.MIN_VALUE输出到控制台System.out.println("最小值:Character.MIN_VALUE="+ (int) Character.MIN_VALUE);// 以数值形式而不是字符形式将Character.MAX_VALUE输出到控制台System.out.println("最大值:Character.MAX_VALUE="+ (int) Character.MAX_VALUE);}
}
-------
127
32767
2147483647
9223372036854775807
1.0E-8
1.0E-17
false
韩
0.8999999999999999
基本类型:byte 二进制位数:8
包装类:java.lang.Byte
最小值:Byte.MIN_VALUE=-128
最大值:Byte.MAX_VALUE=127基本类型:short 二进制位数:16
包装类:java.lang.Short
最小值:Short.MIN_VALUE=-32768
最大值:Short.MAX_VALUE=32767基本类型:int 二进制位数:32
包装类:java.lang.Integer
最小值:Integer.MIN_VALUE=-2147483648
最大值:Integer.MAX_VALUE=2147483647基本类型:long 二进制位数:64
包装类:java.lang.Long
最小值:Long.MIN_VALUE=-9223372036854775808
最大值:Long.MAX_VALUE=9223372036854775807基本类型:float 二进制位数:32
包装类:java.lang.Float
最小值:Float.MIN_VALUE=1.4E-45
最大值:Float.MAX_VALUE=3.4028235E38基本类型:double 二进制位数:64
包装类:java.lang.Double
最小值:Double.MIN_VALUE=4.9E-324
最大值:Double.MAX_VALUE=1.7976931348623157E308基本类型:char 二进制位数:16
包装类:java.lang.Character
最小值:Character.MIN_VALUE=0
最大值:Character.MAX_VALUE=65535
二、运算符
- Java 有自增自减,lua 没有
- 三目运算
Java 三目运算:
(关系表达式)?表达式1:表达式2;
lua 三目运算:
-- 需要保证表达式1不为假否则返回表达式2
关系表达式 and 表达式1 or 表达式2-- 修改
(关系表达式 and {表达式1} or {表达式2})[1]
lua 中 false
和nil
视为假,否则都为真
- 除法
java 整数相除得到的还是整数
System.out.println(10 / 3.0);
System.out.println(10 / 3);-------
3.3333333333333335
3
- 隐式转换
- 字符串拼接
Java 中和String
类型的变量用+
相连都会变String
类型
LUA 用..
相连,但必须确保两边都是string
类型
System.out.println(""+null);
System.out.println(1 + 99 + "吃了吗");
--------
null
100吃了吗
- 逻辑运算
Java 中的&& ||
在Lua中为and or
三、语句
- 分号
LUA 语句结尾分号可选
Java 语句结尾必须要有分号 - if
java中关系表达式必须为boolean
型
如果只有一行语句体,{}
可以不写
if (关系表达式){语句体;
}if (关系表达式)一行语句体;if (关系表达式){语句体1;
}else{语句体2;
}if (关系表达式1){语句体1;
}else if(关系表达式2){语句体2;
}else if(关系表达式3){语句体3;
}else{语句体4;
}
Java 还支持 switch
语句
switch (表达式){case 值1:语句体1;break;case 2:语句体2;break;case 3:语句体3;break;default:语句体n;
}switch (sc.nextInt()){case 1,2,3 -> System.out.println("一二三,糖瓜粘");case 4,5,6 -> System.out.println("四五六,顿顿肉");case 7,8,9 -> System.out.println("七八九, 熬一宿");default -> System.out.println("扭一扭");}
LUA 则简洁有力:
if 关系表达式1 then语句体1
elseif 关系表达式2 then语句体2
elseif 关系表达式3 then语句体3
elseif 关系表达式4 then语句体4
else语句体5
end
LUA 和 JAVA 的区别相关推荐
- java和python的web自动化有什么区别-三分钟看懂Python和Java的区别
随着人工智能的火爆,Python和Java一直在各种流行编程语言中名列前茅.其实Java和Python有些相似,因为很多编程语言之间是互通的.Java现在还是第一,不知道Python未来会不会超越Ja ...
- python和java一样吗-三分钟看懂Python和Java的区别
随着人工智能的火爆,Python和Java一直在各种流行编程语言中名列前茅.其实Java和Python有些相似,因为很多编程语言之间是互通的.Java现在还是第一,不知道Python未来会不会超越Ja ...
- python和java一样吗-python和java的区别,看了这个就会区分了!
翻看日历,2019年结束也就剩下3个月的时间了!时光飞逝,伴随着互联网人工智能时代的发展,人类一直在预测,2020年什么技术会火?其中,人工智能编程成了大家讨论的热点,Python.Java一直被人们 ...
- js与java的区别,JavaScript与Java的区别是什么呀?
JavaScript和Java看起来相似,其实这两者是两门不同的编程语言,他们没有任何的血缘关系.下面本篇文章就来给大家介绍一下JavaScript和Java的区别,希望对大家有所帮助. Java和J ...
- 【C/C++】从技术学习和实际运用的角度来看,C/C++和Java到底区别在哪?C语言、C++学习路线?
转自羊哥的公众号 这几个问题都是私信里常被问到的,也是我当时学习过程中的一些疑惑.谁说黑乎乎的命令行里运行的程序就没有用!这跟学什么编程语言.后续从事什么编程方向均无关,只要做编程开发,这四个计算机基 ...
- java 析构函数_C++与Java的区别(一)
一,前言 网上经常看到编程语言之争,大伙儿皈依到不同门派,各自怀抱信仰,时不时还发生点儿"冲突". 这其中,C++和Java的优劣,十多年前就常吵的火热.然而时代在进步,技术在发展 ...
- php和java 2017_Php与java的区别
Php与java的区别 1.java和php技术层面对比: java是纯面向对象开发,功能强大,分支众多,没有java不能做的软件,PHP有他独特的领域,那就是WEB在这方面没有可以和他相比较,其与j ...
- groovy 和 java的区别_Groovy和JAVA的区别
这段时间还是比较忙的博客也很久没写了 服务器也到期了一直没续费emmm 由于现在在写groovy的代码 所以这篇简单写点groovy相关的 1.Groovy和JAVA的区别 在Groovy中,将在运行 ...
- java跟c 的区别_【c++跟java的区别】java跟c语言的区别
Java与C/C++作为编程语言的两大巨头,他们有什么区别呢?下面是小编为大家准备的c++跟java的区别,希望大家喜欢! c++的定义 C++是一种面向对象的计算机程序设计语言.C++这个词在中国大 ...
最新文章
- AlexeyAB DarkNet YOLOv3框架解析与应用实践(五)
- 基于PyTorch,如何构建一个简单的神经网络
- Spark SQL中出现 CROSS JOIN 问题解决
- c怎么调用matlab dll,matlab和c++调用DLL方法(最新整理)
- 实际价格计算:确定方法
- 从源码角度看Android系统init进程启动过程
- synchronized同步方法
- HikariCP连接池配置
- 分布式、微服务必须配个日志管理系统才优秀,Exceptionless走起~~~
- python基础小白题3
- linux查看vnc进程命令_linux命令:VNC服务的配置及使用
- HDU4607 Park Visit(解法二)【废除!!!】
- 我的MYSQL学习心得(九) 索引
- IntelliJ IDEA 记学习笔《Patch 创建补丁》
- 质量流量计测量液体与气体介绍
- 接口测试——并行上传文件
- JavaWeb项目开发案例精粹-第3章在线考试系统-003Dao层
- 【Java 8 新特性】Java 8 Collectors:reducing 示例(List分组取最值)
- 阿里云和华为云各自的优势
- 经典非局部均值滤波(NLM)算法python实现(2)
热门文章
- 贾跃亭自救 FF签约投行斯提夫尔加速推进全球融资
- 【时间规划】个性化简历
- 研发主管的烦恼:选择KPI还是选择OKR?
- 金国职称计算机等级考试,《全国计算机等级考试历年真题必练》全国计算机等级考试命题研究组著【摘要 书评 在线阅读】-苏宁易购图书...
- java 将字符串首字母变大写
- 07 verilog基础语法-条件语句
- 跟计算机网络的亲密接触作文,我与网络的第一次亲密接触小学作文
- 24号香格里拉--英特尔迅驰二代风尚盛典记录
- macOS 误删除 /private/var/folders 导致无法启动的解决方案
- 解决uniapp微信开发小程序背景本地图片渲染层网络层错误问题