程序设计语言基础入门【笔记】

程序设计语言基础入门【笔记】

程序设计语言类型方面

从类型检查方面来说

编译时,有c,c++,java,go等语言
运行时,有python,Perl,JavaScript,ruby等

从运行/编译方面来说

编译为机器代码运行:c,c++等
编译为中间代码,在虚拟机上运行:java,c#等
解释执行:python,Perl,JavaScript等

从编程范式方面来说

面向过程:c,visual basic等
面向对象:java,c#,c++,Scala等
函数式:Haskell,erlang等

数据类型(java)

在java中,有很多数据类型,比如Boolean,byte,char(两字节),short,int(32位),long(64位),float,double,还有object派生下来的string,enum,array,使用起来是有些不同的

32位int的取值范围为-231到231-1,使用直观的没法判断+0和-0的情况,因此可以使用补码的方法,补码为原码取反加一,这样就可以发现对于32位来说,第一位为符号位,-0就变成了-2^31

浮点数和定点数

浮点数的结构是符号位指数部分基数部分
像是java中的double,范围为+/- 10308,但是64位的double精度只有1015,后面的两百九十多位都不能保证精度

所以浮点数的比较是很麻烦的,首先a==b是不对的,math.abs(a-b)<eps也不太行,不是万无一失的

使用bigdecimal算钱的时候,最好不要使用浮点数,使用定点数比较好

java数据类型

装箱拆箱的操作

第三个可能相等也可能不相等,因为在数据小的时候会分配同一个箱子,但是在数据大的时候,就会分配不一样的

感谢观看,文笔有限,博客不出彩,还请多多见谅
原文地址:https://www.cnblogs.com/jokingremarks/p/14464919.html