经过第一天的融洽的学习,已经基本掌握老师讲课的节奏和方式,学习进度稳定,一天过的超级充实,喜欢这给感觉!加油!
下面总结一下今天所学的内容,哈哈
第一个知识点,什么是常量,它的分类是什么?常量就是在程序执行过程中其值不发生变化的量。分为字面值常量和自定义常量。
字面值常量主要分为字符串常量,整数常量,小数常量,字符常量和布尔常量等。
第二个知识点,是进制转换
虽说跟java这门语言关系不是特别大,但是作为一名有职业操守的计算机专业的学生,我还是必须得掌握一下的。下面来说一说的我的理解。计算机底层全是01代码也就是所谓的二进制,所以二进制比较常用一点,但是随着数据量的增大,二进制的位数越来越多,就产生了八进制,十六进制等等。二进制表示以0b开头,八进制以0开头,十六进制以0x开头,注意这里是零不是字母O。
第三个知识点:进制之间的转换
下面来总结一下十进制转换到二进制的方法:
一个口诀 除基取余,直到商为0,余数反转。
还学到一个快速转换进制的方法,也就是8421码,记住特殊位置,就可以快速推出,这个方法还是比较适合我的
二进制转换八进制,十六进制 :
可以这样记 八进制 8=2^3 即将二进制 拆开3位组成一组,转换为十进制按顺序拼起来就是答案;
十六进制 16=2^4 即将二进制 拆开4位构成一组,转换为十进制最后按照顺序拼起来。
为了更好的理解计算机底部是如何进行运算的,我们必须得了解一下三个码,即原码,反码,补码。(所有数据的运算都是采用补码进行的)
正数最好记,三码合一,即原码,反码,补码是一样的
原码:利用二进制表示。最高位是符号位(0是正,1是负),其余为为数值位;
反码:主要是负数反码是原码除了最高位,也就是符号位不变,其余为取反,即0变1,1变0;
补码:负数的补码是在反码基础上在末尾加1。
第四个知识点:变量
了解了什么是常量,接下来肯定是变量了。万事万物不可能都是静止的,都是变化的。
那么什么是变量呢,变量其实是内存中的一小块区域,仿照着常量,可以写出来就是在程序执行过程中,可以改变其值的量。但是改变的仅是值,类型是不可以改变的。
变量的定义格式为 : 数据类型 变量名 = 变量值
紧接着趁热打铁总结一下java中的常用数据类型:数据类型分基本数据类型,和引用数据类型,引用数据类型会在后面学了面向对象思想的时候总结。基本数据类型可以继续细分为数值型和字符型以及布尔类型。详细分类如下
整数型 字节数 /*8bit 范围
byte 1 -128-127
short 2 -2^15 ~ 2^15 - 1
int 4 -2^31 ~ 2^31 - 1
long 8 -2^63 ~ 2^63 - 1
浮点型
float 4 -3.403*10^38 ~ 3.403*10^38
double 8 -1.798*10^308 ~ 1.798*10^308
布尔型 boolean 1 -128-127
这里有两个注意点:第一个是整数默认都是int类型,浮点型默认是double类型,第二点是为如果是long类型给其赋值的时候后面需要加L作为区分,同理float类型需要加F。
概念点很多,但是总结出来,每天看一下,肯定很有帮助的。好了,我继续了。
什么是作用域?就拿代码来说很容易理解,即变量定义在哪一级大括号中,哪个大括号的范围就是这个变量的作用域。大括号就是作用域的分界线。
第五个知识点:数据类型转换之隐式转换
boolean类型不能转换为其他的数据类型;byte,short,char逐级向上转换int-->long-->float-->double;byte,short,char类型之间不会进行转换,光说不练假把式,一道面试题
看下面的程序是否有问题,如果有问题,请指出并说明理由。
byte b1 = 3;
byte b2 = 4;
1) byte b3 = b1 + b2;
2) byte b4 = 3 + 4;
1)的程序会报错,因为byte类型参与转换会首先变为int类型所以byte类型是无法接受int类型的,而2)进行的是数值运算,这里有一个优化问题,java编译以后会自动判断你所计算的两个数的和是否超过byte所能存放的数据值这里没有超过,所以输出结果是7。
下面总结一下强制类型转换需要的注意点:
强制类型转换格式 :目标数据类型 变量名=(目标数据类型)(被转换的数据)
建议不要经常使用强制类型转换,因为这个可能会造成精度的丢失。
第六个知识点:字符和字符串参与运算
System.out.println("hello" + 'world' + 1);
System.out.println('java' + 2 + "hello");
两个输出语句 第一个打印出来的结果是helloworld1
第二个打印出来的结果是java2hello,这里面可以注意到+号没有被用作加法而是字符串之间的拼接,那么就可以总结一下加号的的用处:
1)如果加号的左右两边都为数值,那么 + 被用作加法符号 例如System.out.println(1 + 1);输出的结果是2
2)如果加号任意一边是字符串那么 + 被用作字符串连接符(数值拼一个字符串结果是一个新的字符串)
System.out.println("5+5="+5+5);
System.out.println(5+5+"=5+5");输出结果如下
5+5=55
10=5+5
第七个知识点:算术运算符的基本用法
+ , - , * , / , % , ++ , -- 这些就是常见的算术运算符,加减乘除取余,这里需要特别注意一下++ --,它们也被叫做单目运算符,即操作数就一个比如 a++ ++a a-- --a
++ 即变量自增1 对变量进行+1操作
== 即变量自减1 对变量进行-1操作
而这个还分两种情况 :
第一种情况 如果单独使用 那么 ++位于变量前后的结果一样
第二种情况 如果参与复制运算 就要分两种情况
1)放在操作数的前面,先自增或者自减,然后再参与运算。
2)放在操作数的后面,先参与运算,再自增或者自减。
比较抽象,不如来一个活生生的例子:
请分别计算出a,b,c的值?
int a = 10;
int b = 10;
int c = 10;a = b++; // a=10 b=11
c = --a;//c=9 a=9
b = ++a;//b=10 a=10
a = c--;//a=9 c=8
最终结果
a=9
b=10
c=8