发表于: 2017-11-09 20:20:16
1 691
虽然多次经历了小课堂,但是今天计划仍然被干扰了;计划临时改一下,学一下Java基础和一些零散的知识点
1,java变量处于不同的位置,有不同的名称,其作用域是不一样的;
A:当一个变量被声明在类下面;变量就叫做字段或者属性,成员变量,Field比如变量i,就是一个属性。那么从第2行这个变量声明的位置开始,整个类都可以访问得到,所以其作用域就是从其声明的位置开始的整个类
B; 如果一个变量,是声明在一个方法上的,就叫做参数;参数的作用域即为该方法内的所有代码;其他方法不能访问该参数;类里面也不能访问该参数
C: 声明在方法内的变量;叫做局部变量;其作用域在声明开始的位置,到其所处于的块结束位置
2;关键字final;
final 修饰一个变量,有很多种说法,比如不能改变等等;准确的描述是当一个变量被final修饰的时候,该变量只有一次赋值的机会
声明的时候赋值
如果在声明的时候未赋值,那么可以在后面代码进行唯一的一次赋值
3;Java的表达式和块
以;分号结尾的一段代码,即为一个表达式;是由变量、操作符以及方法调用所构成的结构;
块; 从{ 开始 到对应的} 结束,即一个块
4;java的运算符;
A:算数运算符:如果有任何运算单元的长度超过int,那么运算结果就按照最长的长度计算
如果任何运算单元的长度都不超过int,那么运算结果就按照int来计算
B:逻辑运算符
无论长路与还是短路与;两边的运算单元都是布尔值;都为真时,才为真任意为假,就为假;区别;长路与两侧,都会被运算;短路与只要第一个是false,第二个就不进行运算了,同理长路或和短路或;
异或^;不同,返回真;相同,返回假
发现一个有意思的,可以直接计算二进制的值,Integer.toBinaryString()方法, 将一个十进制整数转换为一个二进制字符串
5; Scanne类,这个值得说一下;
使用System.out.println("") 向控制台输出数据;而需要用到从控制台输入数据,就可以用Scanner类(import java.util.Scanner;)
值得一提就是连续读取字符串会出问题,就是回车换行也算一行;如果在通过nextInt()读取了整数后,再接着读取字符串,读出来的是回车换行:"\r\n",因为nextInt仅仅读取数字信息,而不会读走回车换行"\r\n".所以,如果需要读取了整数后,接着读取字符串,那么就应该连续执行两次nextLine(),第一次是取走整数,第二次才是读取真正的字符串
6;再回头学习一下控制流程
A:if(表达式1){表达式2};如果表达式1的值是true,就执行表达式2;
这里也有一个有意思的坑,前面说了分号;单独是一个完整的表达式;这样来看代码; 如果b为true,会执行这个分号,然后打印yes;如果b为false,不会执行这个分号,然后打印yes;这样,看上去无论如何都会打印yes;
B:If else就不说了;else if记一下,多条件判断,可以节约资源
C:Switch 相当于if else的另一种表达式;( String在Java1.7之前是不支持的, Java从1.7开始支持switch用String的,编译后是把String转化为hash值,其实还是整数)
D: while和do-while循环语句就不说了,后者与while的区别是,无论是否成立,先执行一次,再进行判断; for循环,和while一样,只是表达方式不一样;
E:continue;条件成立的话,终止循环,进入下一轮;break是直接结束循环,值得说的是,break是仅仅结束当前循环,如果多个循环的话,需要用boolean变量, 在内部循环中修改这个变量值;每次内部循环结束后,在外部循环中判断这个变量的值;
明日计划的事情:
1;学习Java基础
2;继续任务
遇到的问题及解决方法:
基础知识,无
收获:
学习基础,感觉比做任务轻松多了,以前不想看的基础,越看越想看…..
评论