Python自动化 Python vs Java (一):史上最全变量类型区别-99.99%的人都收藏了

kouyou · 2020年02月28日 · 最后由 zzh_1991 回复于 2020年04月13日 · 252 次阅读

一、思考❓❔

1.Python与Java中的变量有差异吗?在哪些方面有差异呢?

  • 差异非常大
  • 在变量类型、内存结构、实现方式均有差别


2.为什么要学习两种语言的区别呢?

  • 通过比较Java和Python的区别,能帮助开发者理解常用概念
  • 帮助Python开发者能更快掌握Java,也能帮助Java程序员能够快速上手Python



二、变量定义差异📐

内容 Python Java
定义时 无需指定变量类型,如:a = 10 必须指定变量类型,如:int a = 10
如何决定变量类型 由变量值的类型来决定变量类型,如:
a = 10,a的类型为int;
a = 10.1,a的类型为float;
a = True,a的类型为bool
由定义时变量前面的类型来决定,如:
int a = 10,a的类型为int;
long a = 10L,a的类型为long;
float a = 10.1F,a的类型为float;
double a = 10.1,a的类型为double;
boolean a = true,a的类型为boolean
变量类型是否可改变 随意改变,由赋值的值来改变变量的类型,如:
one_var = 20;
one_var = 20.1,变量类型从int -> float
定义好之后,不能修改变量的类型,如:
int one_var = 20;
one_var = 30;
one_var = 20.1(不支持)



三、变量类型差异🔨🔨

内容 Python Java
短整型 int
动态变化,定义方式为:
a = 100
short
2个字节,16位,定义方式为:
short a = 100
整型 int
动态变化,定义方式为:
a = 10
int
4个字节,32位,定义方式为:
int a = 10
长整型 int
超过4个字节之后,会自动扩充,定义方式为:
a = 12787923233
long
8个字节,64位,定义方式为:
long a = 12787923233L
单精度浮点型 float
定义方式为:
a = 1.34
float
需要在值的后面加F或者f,定义方式为:
float a = 1.34F
双精度浮点型 float
定义方式为:
a = 1.23923723739723
double
为默认类型,定义方式为:
double a = 1.23923723739723
字符型 没有字符型,只有字符串型str
定义方式为:
a = 'k' (单双引号均可)
char
定义方式为:
char a = 'k' (只能为单引号)
字符串型 str
定义方式为:
one_str = "KeYou"(单双引号均可)
String
为引用类型,定义方式为:
String oneStr = "KeYou";
或者String oneStr = new String("KeYou");
数组类型 没有内置的数组类型
可使用第三方numpy模块来实现:
from numpy import array
int_array = array([10, 20, 30])
为引用类型,定义方式为:
int intArray[] = {10, 20, 30};
列表 list
为可变类型,定义方式为:
one_list = ["可优", 13.14, 520, True]
或者
one_list = []
one_list.append("可优")
one_list.append(13.14)
one_list.append(520)
one_list.append(True)
可以添加任意类型的值
ArrayList
为引用类型,定义方式为:
ArrayList oneList = new ArrayList();
oneList.add("可优");
oneList.add(13.14);
oneList.add(520);
oneList.add(true);
如果指定泛型那么类型将统一
HashSet set
集合类型,不可改变,定义方式为:
one_set = ("可优", 13.14, 520, True)
可以添加任意类型的值
HashSet
为引用类型,定义方式为:
HashSet<String> oneSet = new HashSet<>();
oneSet.add("可优");
oneSet.add("13.14");
oneSet.add("520");
oneSet.add("True");
指定泛型之后,只能添加相同类型数据
HashMap dict
字典类型,可改变,定义方式为:
one_dict = {"name": "可优", "age": 18, "gender": True}
key为不可变类型,值可以为任意类型
HashMap
为引用类型,定义方式为:
HashMap hashMap = new HashMap();
hashMap.put("name", "可优");
hashMap.put("age", "18");
hashMap.put("gender", "帅狼");
指定泛型之后,只能添加相同类型数据



四、变量存储结构差异🔨🔨

  • Java中的基本类型变量,存放的是值
  • Java中的引用类型变量,一般存放在栈内存中,而值存放在堆内存中(使用new关键字)或者常量池中
  • Python中的变量存放的是值的地址
  • Python中的变量(任何变量)类似于Java中的引用类型(String、数组、ArrayList、类等)



五、总结💡💡

  • 本文介绍了最流行的两种开发语言(Java和Python)中变量各方面的区别
  • 对于Python开发者想学习Java和Java开发者想学习Python的人有较大帮助
  • 本文为可优原创,有不足之处,请多指教!

共收到 4 条回复

这是自动化执行发布的评论!2020_04_12_15_35_15

这是自动化执行发布的评论!2020_04_12_15_37_46

这是自动化执行发布的评论!2020_04_12_15_39_38

可优大佬讲的东西很有价值!点个赞!

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册