一、变量类型

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 中 falsenil视为假,否则都为真

  • 除法
    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 的区别相关推荐

  1. java和python的web自动化有什么区别-三分钟看懂Python和Java的区别

    随着人工智能的火爆,Python和Java一直在各种流行编程语言中名列前茅.其实Java和Python有些相似,因为很多编程语言之间是互通的.Java现在还是第一,不知道Python未来会不会超越Ja ...

  2. python和java一样吗-三分钟看懂Python和Java的区别

    随着人工智能的火爆,Python和Java一直在各种流行编程语言中名列前茅.其实Java和Python有些相似,因为很多编程语言之间是互通的.Java现在还是第一,不知道Python未来会不会超越Ja ...

  3. python和java一样吗-python和java的区别,看了这个就会区分了!

    翻看日历,2019年结束也就剩下3个月的时间了!时光飞逝,伴随着互联网人工智能时代的发展,人类一直在预测,2020年什么技术会火?其中,人工智能编程成了大家讨论的热点,Python.Java一直被人们 ...

  4. js与java的区别,JavaScript与Java的区别是什么呀?

    JavaScript和Java看起来相似,其实这两者是两门不同的编程语言,他们没有任何的血缘关系.下面本篇文章就来给大家介绍一下JavaScript和Java的区别,希望对大家有所帮助. Java和J ...

  5. 【C/C++】从技术学习和实际运用的角度来看,C/C++和Java到底区别在哪?C语言、C++学习路线?

    转自羊哥的公众号 这几个问题都是私信里常被问到的,也是我当时学习过程中的一些疑惑.谁说黑乎乎的命令行里运行的程序就没有用!这跟学什么编程语言.后续从事什么编程方向均无关,只要做编程开发,这四个计算机基 ...

  6. java 析构函数_C++与Java的区别(一)

    一,前言 网上经常看到编程语言之争,大伙儿皈依到不同门派,各自怀抱信仰,时不时还发生点儿"冲突". 这其中,C++和Java的优劣,十多年前就常吵的火热.然而时代在进步,技术在发展 ...

  7. php和java 2017_Php与java的区别

    Php与java的区别 1.java和php技术层面对比: java是纯面向对象开发,功能强大,分支众多,没有java不能做的软件,PHP有他独特的领域,那就是WEB在这方面没有可以和他相比较,其与j ...

  8. groovy 和 java的区别_Groovy和JAVA的区别

    这段时间还是比较忙的博客也很久没写了 服务器也到期了一直没续费emmm 由于现在在写groovy的代码 所以这篇简单写点groovy相关的 1.Groovy和JAVA的区别 在Groovy中,将在运行 ...

  9. java跟c 的区别_【c++跟java的区别】java跟c语言的区别

    Java与C/C++作为编程语言的两大巨头,他们有什么区别呢?下面是小编为大家准备的c++跟java的区别,希望大家喜欢! c++的定义 C++是一种面向对象的计算机程序设计语言.C++这个词在中国大 ...

最新文章

  1. AlexeyAB DarkNet YOLOv3框架解析与应用实践(五)
  2. 基于PyTorch,如何构建一个简单的神经网络
  3. Spark SQL中出现 CROSS JOIN 问题解决
  4. c怎么调用matlab dll,matlab和c++调用DLL方法(最新整理)
  5. 实际价格计算:确定方法
  6. 从源码角度看Android系统init进程启动过程
  7. synchronized同步方法
  8. HikariCP连接池配置
  9. 分布式、微服务必须配个日志管理系统才优秀,Exceptionless走起~~~
  10. python基础小白题3
  11. linux查看vnc进程命令_linux命令:VNC服务的配置及使用
  12. HDU4607 Park Visit(解法二)【废除!!!】
  13. 我的MYSQL学习心得(九) 索引
  14. IntelliJ IDEA 记学习笔《Patch 创建补丁》
  15. 质量流量计测量液体与气体介绍
  16. 接口测试——并行上传文件
  17. JavaWeb项目开发案例精粹-第3章在线考试系统-003Dao层
  18. 【Java 8 新特性】Java 8 Collectors:reducing 示例(List分组取最值)
  19. 阿里云和华为云各自的优势
  20. 经典非局部均值滤波(NLM)算法python实现(2)

热门文章

  1. 贾跃亭自救 FF签约投行斯提夫尔加速推进全球融资
  2. 【时间规划】个性化简历
  3. 研发主管的烦恼:选择KPI还是选择OKR?
  4. 金国职称计算机等级考试,《全国计算机等级考试历年真题必练》全国计算机等级考试命题研究组著【摘要 书评 在线阅读】-苏宁易购图书...
  5. java 将字符串首字母变大写
  6. 07 verilog基础语法-条件语句
  7. 跟计算机网络的亲密接触作文,我与网络的第一次亲密接触小学作文
  8. 24号香格里拉--英特尔迅驰二代风尚盛典记录
  9. macOS 误删除 /private/var/folders 导致无法启动的解决方案
  10. 解决uniapp微信开发小程序背景本地图片渲染层网络层错误问题