变量
20145217 《Java程序设计》第2周学习总结(1)
教材学习内容总结(第三章)
本周学习的内容是Java的基础语法。
一种语言在对它进行初步认识后,在对他进行后续的系统学习时,首要的就是变量。变量有那几种类型,分别用在什么情况,怎样赋值怎样运算。3.1就是对变量内容进行细致讲解的。我们也跟着课本思路先来温习一下变量的类型复制与运算。
3.1
一、变量类型
整型:int(4个字节),byte(1个字节),short(2个字节),long(8个字节) 对应包装类:Integer,Byte,Short,Long,BigInteger(任意大的实数,理论上内存够用的话,可以有无限位)
浮点型:float(4个字节),double(双精度8个字节) 对应包装类:Float,Double,BigDecimal
字符型:char(2个字节) 对应包装类:Character 中文和英文均采用Unicode编码,均占2个字节。
布尔型:boolean(1个字节)
包装类的作用:1.实现基本类型之间的转换 2.便于函数传值 3.是在一些地方要用到Object的时候方便将基本数据类型装换
二、printf与格式控制符号
printf语句是对输出文字格式化后再显示在文本模式中,f即format格式化。
%%:输出%
%d:十进制数出
%f:浮点型输出
%e%E:科学计数法输出
%o:八进制数出
%x%X:十六进制输出
%s%S:字符串输出
%c%C:字符输出
%b%B:布尔型输出
%n:换行符号
三、声明变量
命名规则:1.不可以数字开头2.不可使用特殊符号3.不能使用保留字眼
命名时常采用驼峰式命名法。
赋值规则:1.用final语句指明变量时,不能再次赋值改变。
2.12(十进制)=014(八进制)=0xc(十六进制)= 0b1100(二进制)
3.字符char size='哈',字符赋值用“'”。
4.布尔赋值用true,false。
常用忽略符号:
\:反斜杠
':单引号'
":双引号"
\uxxxx:以十六进制指定Unicode字符数出,x表示数字
\xxx:以八进制指定Unicode字符数出,x表示数字
\b:倒退一个字符
\f:换页
\n:换行
\r:光标移至行首
四、运算符
1.算术运算
2.比较运算有<、>、==、!=,输出结果表示为布尔型
Java有个条件运算符“条件式?成立返回值:失败返回值”
3.逻辑运算&&、||、!
4.位运算&(AND)、|(OR)、^(XOR)、~(补码)、>>和<<移位。
5.递增递减运算
6.指定运算
a+=b a=a+b
a-=b a=a-b
a=b a=ab
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
a<<=b a=a<<b(a向左移b位)
a>>=b a=a>>b(a向左移b位)
五、类型转换
两种方法,第一种在后面加上F、L等存储标示符,第二种是在前面加上(short)等明确运算空间。
教材学习中的问题和解决过程
学习过程中对书上的Byte与byte两种符号是否是一种产生疑惑,上网搜了一下,原来分属于基本类和包装类,但对网上解释也并没有理解太多(唉,看来代码敲的还是不够多)这里分享一下网上解释:
1、在Java中,一切皆对象,但八大基本类型却不是对象。(其实到现在我还是不理解为什么java面向对象)
2、声明方式的不同,基本类型无需通过new关键字来创建,而包装类型需new关键字。
3、存储方式及位置的不同,基本类型是直接存储变量的值保存在堆栈中能高效的存取,封装类型需要通过引用指向实例,具体的实例保存在堆中。(堆?数据结构吗?)
4、初始值的不同,封装类型的初始值为null,基本类型的的初始值视具体的类型而定,比如int类型的初始值为0,boolean类型为false。
5、使用方式的不同,比如与集合类合作使用时只能使用包装类型。
代码调试中的问题和解决过程
代码调试依旧没有遇到太多问题,感谢几位课程进度远远超前的同学为我们发现了书上的多处错误。只是在一次学习中由于一不小心打错代码,偶然发现变量的定义在main前和main后都能不会报错,但是之后使用时会出现无法从静态上下文中引用非静态变量的错误。上网查了一下,网上有大神解释说:“因为main是static修饰的静态方法,只能访问静态变量,所以你可以用static修饰变量a。”我自己就试了下,果然可以,分享给大家。当然还是尽量别打错。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 300小时 | |
第二周 | 300/500 | 1/4 | 8/24 |