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

本贴最后更新于 1332 天前,其中的信息可能已经时过境迁

一、思考❓❔

image.png

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


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

image.png



二、变量定义差异?

image.png

内容 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(不支持)


三、变量类型差异??

image.png

内容 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<String, String> hashMap = new HashMap();
hashMap.put("name", "可优");
hashMap.put("age", "18");
hashMap.put("gender", "帅狼");
指定泛型之后,只能添加相同类型数据


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

image.png



五、总结??

image.png

image.png

回帖
请输入回帖内容 ...