C#&java重学笔记(变量与操作符)

声明:自用参看读物

C#部分

1.C#中的byte和sbyte并不是二进制的比特,而是无符号 和 有符号的 8位整数。

2.decimal和float double都用来表示小数,前者用e的10的几次方表述,是128位的浮点数,后二者用e的2的几次方表述,分别是32位和64位。decimal的精度更高些,范围更大!主要应用在金融领域计算钱用

3.C#中的bool和string不支持隐式转换。所以和一些脚本语言相比,null 0 不等于false!而如果不用toString方法,数字和字符串不能判等!

4.C#在显示类型转换时,如果高位向低位进行转换造成溢出,那么会有两个有趣的方法checked和unchecked去控制这些,如果使用check(显示转换),会报告异常,否则会抹掉高位进行牺牲转换而不提示。(在VS2010生成中,右键项目属性,点右下角高级,可以设置是否自动检查上下溢出,开启后,除非使用unchecked,否则全部检查,出错抛出异常);

5.强制类型转换的(string)和对象的toString()方法是不同的,前者只是单纯的试图将对象放入一个字符串‘容器’中,而后者是一个专业转换字符串的方法。

6.C#的数组是一个很严格的数据类型,数组定义了规格以后就不能更改。不像JavaScript那么随意。禁忌如下:

  

//不得设定长度后让数组为空
int[] arr=new int[5]{};
//不得声明数组后用索引赋值
int[] arr;
arr[0]=12;
//不得声明数组长度后超长度赋值
int[] arr=new int[2]{1,2};
arr[4]=5;
//不能用变量作为数组长度定义
int k=3;//const int k=3
int[] arr=new int[k]{1,2,3};
//数组声明不得出现长度
int[2] arr={1,2};
//数组声明定义长度后不得小于数组长度定义
int[] arr=new int[2]{1};
//正确定义数组方法
int[] arr=new int[]{1,2,3...};
int[] arr={1,2,3...};
int[] arr=new int[2]{1,2};
int[] arr=new int[2];


arr[0]=1;arr[1]=2;
int[] arr;
arr=new int[]{1,2,3...}; 或 arr={1,2,3....}

 java部分

 1.java没有结构体

 2.java中没有无符号整形这种数据类型,更没有decimal类型。只有4类8种:Boolean byte short char int long float double;

 3.java和c#相同,byte、short、char类型相加之后,结果会自动转换为Int类型,所以byte c=1; byte a=c+2;会导致错误。

 4.区别于C#的is ,java使用instancof关键字判断实例是否为某类的实例。而C#没有instanceof关键字。

 6.java和JavaScript中的二元运算符有>>>无符号右移运算符,比如 -22>>1 是-11,而-22>>>1就成了2147483637。 没有<<<运算符,因为左移低位补零没意义,因为<<本身就是左移低位补零。

 7.java中类似C# foreach的方法是for in,和JavaScript是一样的。准确的说 JavaScript是像java学的。

 8.java中没有string这种格式,想用字符串,只有String这种

 9.java中默认小数是double的,如果声明float a=3.4会报错,应该 float a=(float)3.4  或者 float a=3.4f;

 

原文地址:https://www.cnblogs.com/JhoneLee/p/3692070.html