Java学习记录 Day2(变量、数据类型、运算符)

Day 2

2019年3月24日。
这是我学习Java的第二天。
这一天,我学到了以下的知识。

变量

在程序运行过程当中,其值可以发生变化的值。

  1. 变量,要有数据类型的规定。
  2. Java中变量的定义格式:数据类型 变量名 = 值。数据类型就是用来限定这个值的变化范围,限定是什么样类型的值。
  3. 变量其实就是在内存中开辟的一块空间,用来存储数据,可以通过数据类型声明。
  4. 变量首字母小写。
  5. 变量在使用之前必须赋值。
  6. 重新赋值,会覆盖掉旧值。
  7. 在同一个作用域里面,不能定义两个同名变量(作用域:就是一堆{}大括号所括 的范围)。

数据类型

数据类型分为:引用数据类型、基本数据类型。
基本数据类型如下所示:

基本数据类型类型名字节数取值范围
整型byte1-128~127
整型short2 − 2 15 -2^{15} 215~ 2 15 2^{15} 215-1
整型int4 − 2 31 -2^{31} 231~ 2 31 2^{31} 231-1
整型long8 − 2 63 -2^{63} 263~ 2 63 2^{63} 263-1
浮点型float4\
浮点型double8\
布尔型boolean1\
字符型char2\

自动类型转换

byte、short、char在参与数学运算时,会自动提升为int类型。如果还有long、float、double参与运算,则会相应的提升为long、float、double。布尔类型不参与数学运算。byte、short、char之间不发生转换。

强制类型转换

强制将一个数据,转换成我们要的数据类型。强制类型转换,有可能会发生精度损失的问题(因为会丢掉多余字节)。

常量优化机制

多个常量相加时,它会先算出结果,看有没有在这个数据类型的范围内,如果不在就会报错。

面试题:char可以存储一个汉字吗?

char可以存储一个中文汉字,但是需要看编码格式。
char占两个字节。在GBK编码、ANSI编码中一个汉字占用两个字节,而utf-8编码中一个汉字占用三个字节。所以在GBK或者ANSI编码中,char可以存储一个中文汉字。而在utf-8中,char不可以存储一个汉字。

字符参与运算

会去对照ASCII表,且空格也是字符。
为了便于查询,以下列出ASCII码表:第128~255号为扩展字符(不常用)

ASCII码键盘ASCII 码键盘ASCII 码键盘ASCII 码键盘
27ESC32SPACE33!34"
35#36$37%38&
3940(41)42*
43+4445-46.
47/480491502
513524535546
55756857958:
59;60<61=62>
63?64@65A66B
67C68D69E70F
71G72H73I74J
75K76L77M78N
79O80P81Q82R
83S84T85U86V
87W88X89Y90Z
91[92\93]94^
95_96`97a98b
99c100d101e102f
103g104h105i106j
107k108l109m110n
111o112p113q114r
115s116t117u118v
119w120x121y122z
123{124125}126~

+(加号)的运用

  1. 可以当做一个数字运算符来用,起到相加的作用。
  2. 当加号运算两端只要任意一端是一个字符串,那么加号就起连接符的作用,就会将两端的内容拼接起来,形成一个新的字符串。

运算符

对常量或变量进行操作的符号。
运算符的分类:数学运算符,赋值运算符,比较运算符,逻辑运算符,三元运算符,位运算符。

  1. 数学运算符
符号作用
+加法
-减法
*乘法
/除法
%取余
++自增1
自减1

需要注意的是:

++、–在单独使用时,在前或在后都一样。而在混合使用时。++/–在前,是先运算再使用;++/–在后,是先使用再运算。

  1. 赋值运算符
符号作用
=赋值
+=加等于(a += b等价于a = a + b)
-=减等于(a -= b等价于a = a - b)
*=乘等于(a *= b等价于a = a * b)
/=除等于 (a /= b等价于a = a / b)
%=模等于(a %= b等价于a = a % b)

需要注意的是:

+=、-=、*=、/=会自动帮你强制类型转换,它会判断运算完的结果在不在这个数据类型的范围内,如果不在会自动强制转换。

  1. 比较运算符
符号作用
>大于
>=大于等于
<小于
<=小于等于
==等于
!=不等于

需要注意的是:

比较运算符的运算结果是布尔类型(即true或false)。

  1. 逻辑运算符
符号作用
&
^异或
&&逻辑与
丨丨逻辑或

需要注意的是:

  • 逻辑运算符的运算结果是布尔类型(即true或false)。
  • &两端都需要运算,&&只要左端为false,右端不需要运算(为了代码的运行效率,右端无论是true还是false都不影响最后结果(false))。
  • 丨两端都需要运算,丨丨只要左端为true,右端不需要运算(为了代码的运行效率,右端无论是true还是false都不影响最后结果(true))。
  1. 三元运算符

    三元运算符格式如下:

表达式?结果1:结果2;

需要注意的是:

  • 表达式的值为ture,返回结果1,;表达式的值为false,返回结果2。
  • 三元表达式可以嵌套,但尽量不要嵌套,会影响代码的阅读性。
  1. 位运算符

    位运算符是直接对二进制补码进行计算,因为使用的不多,故不再详述。

知识点总结

  1. 原码、反码、补码
  2. 变量
  3. 数据类型
  4. 自动类型提升、强制类型转换
  5. 运算符
  6. 运算符的优先级(()是最优先的)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

赈川

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值