在本篇文章的开头,我给大家介绍一个很伟大的人物:冯·诺伊曼,相信很多人都听过。冯·诺依曼(John von Neumann,1903~1957),20世纪最重要的数学家之一,在现代计算机、博弈论、核武器和生化武器等诸多领域内有杰出建树的最伟大的科学全才之一,被后人称为“计算机之父”和“博弈论之父”。
冯·诺依曼体系结构
本篇博客我们所讨论的 “变量” 主要和我们的 “内存” 这样的硬件设备密切相关。
变量指的是程序运行时可变的量. 相当于开辟一块内存空间来保存一些数据。
类型则是对变量的种类进行了划分, 不同的类型的变量具有不同的特性。
int num = 20
System.out.println(num) ;
Java中定义一个变量的方法和C语言中大同小异,只是在Java中打印一个变量用到了System.out.println()(可输入sout快捷键)
注意:
在Java中int类型的大小永远是4个字节,不受计算机是多少位平台所影响,这体现了Java的跨平台性和可移植性
和整形变量用法基本一致:
long num = 20L; //
但要注意定义一个长整型变量时, 初始值要写作 10l 也可以(小写的 L, 不是数字1)。如果什么都不写的话类型就是整形了。
用法和C语言中的double用法一致,值得注意的有:
1.进行除法运算时,如果两边都为整形,则计算出的结果一定为整形:
int a = 1;
int b = 2;
System.out.println(a / b);
// 执行结果
0
若要使结果带有小数,则除号两边至少有一个小数:
double a = 1.0;
double b = 2.0;
System.out.println(a / b);
// 执行结果
0.5
2.
在Java中此代码输出的结果为
因为在Java中double类型的精度并不明确,所以在计算某些值时势必会存在一定误差
float f = 12.5;
上述的写法是错误的!!!
因为C语言是弱类型的语言,对类型的检查并不严格,因此在C语言中这么写是正确的,但由于Java是强类型语言,对类型的检查比较严格,小数默认是double类型的,因此在Java中这么写是错误的,要想改进,第一种方法就是在小数后加个f/F(让他变成float类型),第二种就是强制类型转换。
这也体现了Java的安全性
表示方法:
char ch = 'A';
System.out.println(ch);
注意:Java中字符char类型占2个字节,能表示汉字,但不能表示负数。
代码示例:
boolean value = true;
System.out.println(value);
注意:
有别于C语言,在Java中定义一个字符串类型变量后的打印方法为:
String name = "zhangsan";
System.out.println(name);
在打印时还可以使用加号进行字符串的拼接:
打印的结果为:
同时,也可以对整数进行拼接:
执行的结果为:
注意: 虽然语法上也允许使用中文/美元符($)命名变量,但是不推荐这样做,因为在有些企业中是禁止使用此符号的
无需多记,只需记住以下两点即可:
因此,在必要的时候,要强制类型转换
整体来说,Java之中的运算符和C语言中的运算符用法是基本一样的,但也需注意有些细节,下面我会给大家详细介绍比较重要的部分:
不管在C语言还是Java当中,除法都是一个非常易错的运算,下面,给大家看一组例题:
大家可以自己先算一下答案奥!
那么,接下来就揭晓答案啦:
是不是和你算的一样呢?只要注意float所修饰的具体内容,就可以很轻松得算出来啦!
除了除法以外,取模也是一个比较易错的算法,因为大家都有了C语言的基础,那么就不再多说其用法啦,直接上题!
同样,此题也不难,只需要大家注意注意符号即可搞定!答案为:
==值得注意的是,%表示取余,不仅仅可以对 int 求模,也能对double来求模,例:
System.out.println(11.5 % 2.0);
// 运行结果
1.5
关系运算符主要有6种:== != < > <= >=
值得注意的是,关系运算符表达式的返回值都是布尔类型,不能单纯地只在输出里面输出某个数值,例:
System.out.println(6);
此种写法是错误的,因为在Java中不存在0是假,非0是真,而只有true和false,因此,只能写为:
int a=10;
int b=20;
System.out.println(a<b);
输出的结果为true!
逻辑运算符主要有三个:
&& || !
和C语言中逻辑运算符的用法基本一致,但需注意的是:逻辑运算符的操作数(操作数往往是关系运算符的结果)和返回值都是 boolean,同时,也符合C语言之中短路求值的情况
和C中不同的是,Java中有& 和 |两种运算符,此两种运算符在这里并不推荐大家使用,因为没有短路求值的情况,在某些情况下很容易出错,例:
System.out.println(10 > 20 & 10 / 0 == 0); // 程序抛出异常
System.out.println(10 < 20 | 10 / 0 == 0); // 程序抛出异常
位运算符主要有四个:
& | ~ ^
注意:
其他地方和C中也是一样的,都是对数值的二进制位进行操作的!
移位运算符有三个:
<< >> >>>
注意:
需要注意,
在Java中有一个无符号右移运算符:>>>,在左边统一补0!但是没有无符号左移运算符!
条件运算符只有一个:
表达式1 ? 表达式2 : 表达式3(布尔表达式),例:
// 求两个整数的最大值
int a = 10;
int b = 20;
int max = a > b ? a : b;
同时,在这里给大家分享一个比较有趣的题:
System.out.println(false==false?(true==true?false:true):true);
此代码输出结果为false,原因是第一步中false是等于false的,所以执行冒号前面的语句,又因为true和true是相等的,所以再执行冒号前面的,即打印false!!!
到这里,Java中比较重要的运算符知识都讲完啦,大家是不是收获了很多呢?运算符这里不难,就是需要记住一点语法,所以希望大家自己利用空闲时间多记记多练练,相信会进步非常明显的!