1、从变量声明上比较
Python在声明变量时不需要说明数据类型,Python会自动地根据你所赋的值去判断变量的数据类型。
在Java中,我们在声明变量时,必须指定变量的数据类型。
在Python中:
a=1 则说明a是整数类型
b=“人生真是寂寞如雪” 则说明b是字符串类型。
在Java中:
a=1、b=“人生真是寂寞如雪”是非法的,编译报错,应当这样声明
int a=1;
String b=“人生真是寂寞如雪”;
2、从存储方式的角度看
可变类型:变量的值改变时, 内存地址(ID)不变, 证明是在原有基础上发生了改变,新的值覆盖原值。
不可变类型:变量的值改变时,内存地址(ID)改变,即原值不改变,在内存中开辟了新内存存放新的值,并把变量指向新的值。
可变类型--->也叫不可 hash 类型
不可变类型-->可hash类型
判断方式:hash() 用于获取取一个对象(字符串或者数值等)的哈希值。
可哈希的类型为不可变类型,不可哈希的类型为可变类型
Java:
变量有类型之分,分为基本数据类型和引用类型。声明变量时需要声明变量的类型,然后在内存的栈中根据声明的类型开辟一个内存空间。基本数据类型存放数据本身(比如int,直接在栈中存放数据),引用类型存放引用对象的地址。值得注意的是,string类型虽然是引用类型,但(str=”aaaa”)创建的对象是放在堆中的常量池中。
Python:
万物皆对象,变量没有类型之分,统一存放引用对象的地址。变量可分为可变的数据类型(列表 list、字典 dict、集合 set),不可变的数据类型为数组、字符串和元组。
评论0
暂时没有评论