黑马程序员Java培训、Android培训-Java 学习过程记录_语言基础3

知识点补充2:如何理解函数返回值类型为void的情况

Void表示不需要返回结果,返回结果为空

帮助文档的意思是:void方法虽然不返回任何东西,但这是你决定的,void方法不是生来就是这样,只要改变它的返回类型,你就可以让它返回别的什么,intString,等等

知识点补充3:函数调用的过程分析

当主函数中执行到一条语句,是将一函数赋值给一变量,例如:m=areaxy),则程序会将xy这俩个实参值传递到area程序的定义语句中,执行area定义语句,当遇到return语句后程序返回到主函数,并将函数area返回值带给变量m

知识点补充4:算术运算符的应用技巧

思考题1:某个培训中心要为新到的学员安排房间,假设共有x个学员,每个房间可以住6人,让你用一个公式来计算他们要住的房间数?

答案:(x+5)/6。这种算法还可用在查看留言板的分页显示上: 其中x是总共的留言数,6是每页显示的留言数,结果就是总共有多少页。

思考题2:假设你要让x的值在09之间循环变化,请写出相应的程序代码。

答案:

int x=0;

while(true)

{

x = (x+1)%10;

}

总结,灵活巧妙的运用运算符可以简化代码格式;

知识点补充5“>>”“>>>” 区别的实例分析

“>>”带符号右移就是将被移数转为2进制,向右移出1位,然后在前面补01

“>>>”无符号右移,最前面始终补0

例如:

0x80000000>>1 = c0000000

0x80000000>>>1 = 40000000

0xc000000000=1100,0000, 0000, 0000, 0000, 0000, 0000, 0000

0x4000000000 =0100,0000, 0000, 0000, 0000, 0000, 0000, 0000

知识点补充6:移位运算的注意事项及小技巧

6.1移位运算符适用类型有byteshortcharintlong

6.2对低于int型的操作数将先自动转换为int型再移位。     

6.3对于int型整数移位a>>b,系统先将b32取模,得到的结果才是真正移位的位数。例如:a>>33a>>1结果是一样的,a>>32的结果还是a原来的数字。

6.4对于long型整数移位时a>>b ,则是先将移位位数b64取模。

6.5移位不会改变变量本身的值。如a>>1;在一行语句中单独存在,毫无意义

6.5x>>1的结果和x/2的结果是一样的,x<<2x*4的结果也是一样的。

总之,一个数左移n位,就是等于这个数乘以2n次方,一个数右移n位,就是等于这个数除以2n次方。例如,用程序实现求2x次方,就是y = x<<1

知识点补充7:如何避免多个运算符带来的问题

7.1不要在一行中编写太复杂的表达式,也就是不要在一行中进行太多的运算

7.2在一行中进行太多的运算并不能为你带来什么好处,相反只能带来坏处。

7.3对于优先级顺序,读者不用刻意去记,有个印象就行如果你实在弄不清这些运算先后关系的话,就用括号或是分成多条语句来完成你想要的功能,因为括号的优先级是最高的,

这也是软件编码规范的一个要求。

知识点补充8:有时候do-while循环语句比while循环语句方便

比如调用System.in.read();读取到一个从键盘上输入字符对应的整数,遇到q结束。

do-while循环语句能减少代码(本例中就减少了try语句的执行次数)

do

{

       try

       {

       X=system.in.read();

       }catch(Exception e)()

System.out.println((char)x);//就是q也打印了

}

Whilex=’q’

知识点补充9Break语句和continue语句

如果有标号,break语句控制会被传递给当前方法中的带有这一标号的语句。

continue语句只能出现在循环语句(while,dofor)的子语句块中

知识点补充10:数组

10.1数组,用于存放较多的数据,以方便引用;

10.2int[] x=new int[100];//在堆中产生一个数组,将其首地址存放到栈中的x变量中;x=null与原来数组对象断开联系,堆中的数组就等着垃圾回收器回收了;

10.3堆内存和栈内存,

数组和对象存放在堆内存中,引用时候指向他们的代号或者名称;变量一般放在栈内存中

10.4静态数组,建立后到程序运行结束都不能改变大小的数组;动态数组,在程序运行过程中,能够改变数组大小或者释放数组所占用的空间

int ia[] ={1,2,3,4}; //静态数组

int [] ia=new int[]{3,4,5}; //静态数组

int a[5];//声明数组时,不能指定其长度,编译时将出错

10.5使用数组时要注意的问题:空指针异常,即引用变量不能为指向空;使用x.length得到数组长度

10.6多维数组

10.6.1java 中并没有真正的多维数组(这点要注意理解),只有数组的数组, Java中多维数组不一定是规则矩阵形式。

int[][] xx;

xx=new int[3][];

xx[0]=new int[3];//数组的第一个元素存放的数组大小;

xx[1]=new int[2];//数组的第二个元素存放的数组大小;

10.6.2多维数组中元素的引用方式,如:x[1][2]//引用第2个数组中存放的第3个数组的值。

规则矩阵数组可以在一条语句中产生,如:int xx[][]=new int[2][3];

10.6.3多维数组的静态初始化 ,如:

   int[][] xx={{3,2,7},{1,5},{6}};

10.7与数组操作相关的函数

使用System.arraycopy()函数拷贝数组 //注意区分大小写,注意先初始化数组;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值