Java知识学习储备

来源:互联网 发布:oracle索引优化 工具 编辑:程序博客网 时间:2024/03/28 18:25
上午:
注意事项:
1。main方法是程序运行的入口
2。//表示注释,不参与程序的运行
3。程序书写规范,注意缩进




命名规则: 1.不能以数字开头 2.不能和关键字重名
常量:整数,小数,字符串,字符,布尔,null
注意:1.null是一个常量.2.字符常量只能是单引号之间引一个字符,如果有两个及两个以上的字符无法通过编译.




进制:
1.电脑中都是二进制
2.为了表示方便,更短更简单的表示数据,所以用三位合成一位来表示原数.因为三位中最大的二进制是111,而111是7,是八进制中最大的基数,所以是相当于转换成8进制
3.同样的道理:如果每四位表示成1位,就相当于16进制度.
注意:计算机中存储数据永远是2进制的数据,之所以转换成8进制或者16进制的数据,仅仅是为了显示方便,看起来更加简单短小而已.


具体表示方法:
1.八进制的表示形式:在转换后的数据前面加一个0,就表示八进制.比如:017的八进制就表示十进制的数字15
2.十六进制的表示形式:在转换后的数据前面加一个0x,就表示十六进制,比如0x17的十六进制就表示十进制的数字23.


进制转换:
1.大进制转换成小进制.方法:原数据除以N取余数,依次相除,直到商为0,将余数整理得到转换后的数据
2.小进制转换成大进制.方法:小数据的每一位数乘以相应的幂次方,依次相加.




负数的二进制形式:其正数的二进制形式取反再加1
比如:-6的二进制形式.
步骤:
1.找到6的二进制形式.
2.取反
3.加1  获取结果


注意:一个整数占4个字节.应该有32个二进制位.在取负数的二进制第一步取正数.要将32位中前面是0的那些也写出来.




范围: -2 (二进制位数-1) ----- 2(二进制位数-1)-1




基本数据类型:八种,自己总结
数据类型转换:八种基本数据类型有级别高低之分.从低到高级别依次: byte,char,short -->int-->long -->float -->double


自动类型转换:内部自动类型进行转换,转换原则是遵循最高级别.最终是级别最高的级别.
低级别到高级别的转换是自动进行转换.肯定是自动转换.
高级别到低级别的转换存在一个自动类型转换.内部也有自动类型转换.将高级别的转换成对应的底级别的数据后再赋植给低级别的.需要注意的问题就是高级别的表示的数据必须在低级别的表示范围之内的前提下.如果高级别的数据超出了低级别的表示数据的范围,编译失败,无法通过。提示可能损失精度错误。如 byte a = 128;可能损失精度错误。需要进行强制类型转换,下面给出例子。
byte c = 127;
              c = (byte)(c + 10);//由于右边的10默认是int类型,所以c+10会自动转换成高级的整数形,但是137已经超出了byte所能表示的数据的范围。所以要进行人为的强制类型转换。最后结果是-119。理解并知道-119是如何得来的。

转换原则:
     低级别到高级别一定自动转换。统一转换成高级别。
     高级别到低级转换分两种情况。1。数据在低级别的范围内,自动砍掉前缀向低级别转换。2。数据超出低级别的数据范围,需要现实的进行数据类型转换,然后进行运算操作。
      转换的过程中伴随着编码的问题。字符和数字的编码一一对应。



下午:
转义字符:通过'\'来改变其后边所跟字符的含义。
常用的转义字符:
      windows下的换行:\r\n
      Linux,Nunix下的换行:\n
      制表符:\t


字符串:
     字符串和任何类型的数据相连接,最后都是字符串。
如:int num = 5;  "haha"+num+num ;输出结果:haha55;  此处的“+”号仅仅是连接两个部分的作用。


+号的几种不同情况下的意义。


算术运算符: + - * / % ++ --    (Demo8例子弄明白)
赋植运算符: = += -+ *= /=    (Demo8例子中说的编译失败和编译通过的两种情况)
位运算符:尖朝哪就往哪移      (Demo9的例子弄明白,ppt上的课件。)


左移:
有符号右移:
无符号右移:
自习时间重点理解,消化。


程序流程控制:判断语句,循环语句,选择结构
判断语句需要注意的地方:
1、if、else条件语句后面如果要执行多于一条的语句,则必须用大花括号将要执行的多条语句进行包围。默认情况下,只执行if、else后面随着跟的一句话。
2、关于if和else的对应问题。当if和else出现很多次的情况时,必须明确的判断else和其对应的if的配对问题。
3、多个单个的if语句的情况,会进行逐个判断。也就是说的多次判断。
4、关于多重条件的判断结构,只可能执行其中一种。if()else if()else()。。用于多重条件的判断。这种情况下,程序会只执行一个符合条件的条件。多重条件整体结构出现时,只会执行满足条件的第一次的情况下的语句。其他不再执行。


选择结构:switch结构。语法自己默念复习。
选择结构需要注意的问题:
1、case和default各种情况执行代码后的break。break的作用就是让程序停止向下执行,否则会继续向下执行,直到遇到break,或者右花括号。
2、让switch停止执行只有两种可能。要么是遇到break语句,要么是遇到switch的右大花括号。
3、switch使用有些局限。case后面跟的情况只能是某个具体的值。比较僵硬。
4、执行过程。switch读取提条件,然后依次判断case,找到则执行case相应的代码,找不到去执行default。记住:先判断case,找不到才会default,和default写在哪没有关系。见Demo12奇葩例子。


总结:选择if和switch的情况?
1、如果表达式的值是boolean类型或者是某一个范围区间中的值得时候,选择if判断语句结构。原因:boolean类型情况只能使用if语句,区间中的值是一个范围,涉及多个不确定的值,只是满足的一种条件,所以就选择if语句
2、如果表达式的值是一个固定的值且是byte,char,short,int,jdk1.5(枚举),jdk1.7(字符串)的情况时使用switch。


循环结构:1.for  2.while    3.do.. while   语法自己默念复习。
循环结构需要注意的问题:
1、do...while   和 while 两种循环的区别:while是先判断,再执行。do...while 是先执行一次,然后进行条件判断。也就是说do...while至少会执行一次;而while则会根据判断的结果确定是否执行循环体。
2、for循环结构的执行过程。第一步,执行起始条件;第二步,执行for循环内的条件判断;第三步,执行循环体;第四步,执行循环后的操作表达式语句。
3、for循环往往在括号内定义标志变量。while循环往往是全局变量。这两种情况涉及一个问题,变量的作用域的问题。变量都是有作用范围的,这个作用范围是从该变量被定义的位置开始,到其所在的大括号结束。   ----一句话:变量是有作用范围的。往往使用for循环,因为可以节省内存,提高效率。





0 0
原创粉丝点击