第一章/第二章

 

Java中的常量

Lesson02A.rmvb

字符常量

‘\r’表示接受键盘输入,相当于按下了回车键;

‘\n’是换行;

‘\t’是制表符,相当于table;

‘\b’是退格键,相当于BackSpace;

‘\’’是单引号

‘\”’是双引号;

‘\\’是一个斜杠

变量的概念与作用

     变量就是系统为程序分配的一块内存单元,用来存储各种类型的数据。根据所存储的数据类型的不同,有各种不同类型的变量。变量名代表这块内存中的数据。

     int x=0,y;

y=x+3;

x在被取值前必须被初始化。

Java的变量类型

 

 

 

变量的字节大小

byte占用1个字节

Boolean占用1个字节

short占用2个字节

char占用2个字节

int占用4个字节

float占用4个字节

long占用8个字节

double占用8个字节

 类型转化

     自动类型转换(也叫隐式类型转换)

     强制类型转换(也叫显式类型转换)

     类型转换的原理,及什么时候要用强制类型转换

     表达式的数据类型自动提升

     所有byte型、short型和char的值将被提升到int

     如果一个操作数是long型,计算结果就是long;

     如果一个操作数是float型,计算结果就是float;

     如果一个操作数是double型,计算结果就是double;

算术运算符的应用技巧

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

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

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

 class A
{
       public static void main(String[]args)
       {
              int i=0;
              while(true)
              {
                     i=(i+1)%10; 
                     System.out.println(i);
              }
         }
}

 

逻辑运算符

运算符    运算

&     AND()

范例

False & True

结果

False

|       OR()

^      XOR(异或)

False | true

False ^ true

True

True

!       NOT()

&&      AND(短路)

!TRUE

False && True

False

False

||        OR(短路)

False !! True

True

 

 

 

 

 

 

 

 

1:逻辑运算符用于对boolean型结果的表达式进行运算,运算的结果都是boolean型。

2”&””&&”的区别在于,如果使用前者连接,那么无论任何情况,”&”两边的表达式都会参与计算。如果使用后者连接,当”&&”的左边为false,则将不会计算其右边的表达式。”|””||”的区别与”&””&&”的区别一样。

位运算符

     任何信息在计算机中都是以二进制的形式保存的,&|^除了可以作为逻辑运算符,也可以做为位运算符它们对两个操作数中的每一个二进制位都进行运算。

     只有参加运算的两位都为1&运算的结果才为1,否则就为0

     只有参加运算的两位都为0|运算的结果才为0,否则就为1

     只有参加运算的两位不同,^运算的结果才为1,否则就为0

     我们可以对数据按二进制位进行移位操作,java的移位运算符有三种:

     <<左移

     >>右移

     >>>无符号右移

移位运算的注意事项及小技巧

     移位运算符适用数据类型有byteshortcharintlong

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

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

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

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

     x>>1的结果和x/2的结果是一样的,x<<2X*4的结果也是一样的。总之,一个数左移n位,就是等于这个数乘以2n次方,一个数右移n位,就是等于这个数除以2n次方。请思考:如何用程序实现求2x次方。答案:y=1<<x;

(Lesson02B.rmvb)

程序的流程控制

     顺序结构

     选择结构

     循环结构

if语句的选择结构

     if(表达式)语句

     if(表达式)语句1;else语句2;

     if(表达式1)语句1;

         else if(表达式2)语句2;

         else if(表达式3)语句3;      

         ……

         else语句n;

     每个语句可以是使用{}组成的复合语句

     变量=布尔表达式?语句1:语句2;

     if语句还可以嵌套使用

if(表达式1)

        if(表达式2)语句1;

        else语句2;

else

        if(表达式3)语句3;

        else语句4;

嵌套时使用{}确定层次界限,举例说明

switch语句的选择结构

Switch(表达式)

       case 常量表达式1:语句1;

       case 常量表达式2:语句2;

              ……

       case 常量表达式n:语句n;

       default:语句n;

     default语句是可选的,它接受除上面接受值有其他值,通俗的讲,就是谁是也不要的都归它。

     case后面可以跟多个语句,这些语句可以不用在括号括起来。

     switch语句判断条件可以接受int,byte,char,short型,不可以接受其他类型。

     一旦碰到第一次case匹配,就会开始顺序执行以后所有的程序代码,而不管后面的case条件是否匹配,后面case条件下的代码都会被执行,直到碰到break语句为止。我们可以利用这个特点来用同一段语句处理多个case条件。

While循环语句

While(表达式)

       语句;

int x=1;

while(x<3)

{

System.out.println(“x=”+x);

       X++;

}

脚下留心:while表达式的括号后面一定不要加“;

do-while循环语句

do 语句

while(表达式);

do..while 循环则先执行,再判断是否要继续执行,也就是说循环至少执行一次,有点像是先斩后奏的方法。只有条件计算结果为 true 时语句才会执行。
public class TestDO

{

       public static void main(String[]args)

       {

              int x=3;

              while(x==0)

                     {

                            System.out.println("ok1");

                            x++;

                     }

              int y=0;

              do

              {

                     System.out.println("ok2");

                     y++;

              }

              while(y==0);

       }

}

编写一个程序,这个程序不断地读取从键盘上输入的字符,直到讲到字符’q’时,程序结束。提示:调用System.in.read();可以读取到一个从键盘上输入的字符对应的整数。通过这个程序,你一定体会到在什么样的情况下,用do-while循环语句经while循环语句方便。

 

public class TestWhile

{

    public TestWhile()

    {

          

    }

    public static void main(String[] args)

    {

        // TODO code application logic here

        int ch=0;

       /* try

        {

               ch=System.in.read(); 

               while(ch!='q')

                      {

                             System.out.println((char)ch);

                             try

                             {

                                    ch=System.in.read();

                             }catch(Exception e){}

                      }

                 

        }

        catch(Exception e)

        {

               e.printStackTrace();

               //e.getMessage();

        }

        */

       

                      do

                      {

                             try

                             {

                                    ch=System.in.read();

                             }    

                             catch(Exception e)

                             {

                                    e.printStackTrace();

                                    //e.getMessage();

                             }

         

                             System.out.println((char)ch);      

                             //System.out.println(ch);

                      }

                      while(ch!='q');

    }

}

for循环语句

for(表达式1, 表达式2, 表达式3) 语句

breakcontinue语句

break语句可以中止循环中的子语和switch语句。一个无标号的break语句会把控制传给当前(最内)循环(while,do,forswitch)的下一条语句。如果有标号,控制会被传递给当前方法中的带有这一标号的语句。

St:while(true)

{

       while(true)

              {

                     break st;

              }

}

continue语句在能出现在循环语句(while,do,for)的子语句块中,无标号的continue语句的作用是跳过当前循环的剩余语句块,接着执行下一次循环。用continue语句的打印出010之间的所有奇数的程序例子。

public class TestContinue

{

    public TestContinue()

    {

    }

    public static void main(String[] args)

    {

        // TODO code application logic here

        for(int i=0;i<10;i++)

        {

               if(i%2==0)

                      continue;

               System.out.println(i);

        }

    }

}

数组

     静态数组

int ia[]={1,2,3,4};

int[]ia=new int[]{3,4,5};

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

▂a=null;
    
使用数组时要注意的问题

▂空指针异常

▂如何计算数组长度

▂数组越界异常

多维数组

     java中并没有真正的多维数组,只有数组的数组,Java中多维数组不一定是规则矩阵形式。

 

     定义一个多维数组

int [][]xx;

xx=new int [3][];

xx[0]=new int[3];

xx[1]=new int[2];

xx[2]=new int[8];

public class hello
{

      public static void main(String[] args)

      {

              int[][]xx=new int[2][3];

              xx[0][0]=2;

              xx[1][2]=6;

              for(int i=0;i<xx.length;i++)

              {

                     for(int j=0;j<xx[i].length;j++)

                     {

                            System.out.println("xx["+i+"]["+j+"]="+xx[i][j]);

                     }

              }

      }    

}
 

数组的排序:

class ArrayTest

{

              public static void main(String[]args)

              {

                            int []x=new int[]{1,5,2,7,4};

                            for(int i=0;i<x.length;i++)

                            {

                                          System.out.println("x["+i+"]="+x[i]);

                            }

                            java.util.Arrays.sort(x);

                            for(int i=0;i<x.length;i++)

                            {

                                          System.out.println("x["+i+"]="+x[i]);

                            }

              }

}

数组的拷贝:

public static void arraycopy(Object src,
                             int srcPos,
                             Object dest,
                             int destPos,

int length)

class ArrayTest

{

              public static void main(String[]args)

              {

                            int []x=new int[]{1,5,2,7,4};

                            for(int i=0;i<x.length;i++)

                            {

                                          System.out.println("x["+i+"]="+x[i]);

                            }

                            int[]y=new int[10];

                            System.arraycopy(x,0,y,1,4);

                            for(int i=0;i<y.length;i++)

                            {

                                          System.out.println("y["+i+"]="+y[i]);

                            }

              }

}

posted on 2007-05-16 20:16 大头剑客 阅读(435) 评论(0)  编辑  收藏 所属分类: 学习笔记


只有注册用户登录后才能发表评论。


网站导航:
 
<2024年11月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

导航

统计

公告

写字楼里写字间,写字间里程序员;
程序人员写程序,又拿程序换酒钱;
酒醒只在网上坐,酒醉还来网下眠;
酒醉酒醒日复日,网上网下年复年;
但愿老死电脑间,不愿鞠躬老板前;
奔驰宝马贵者趣,公交自行程序员;
别人笑我忒疯癫,我笑自己命太贱;
不见满街漂亮妹,哪个归得程序员.
不管前面是地雷阵还是万丈深渊,
我都将勇往直前,义无反顾,
鞠躬尽瘁,死而后已。
—— 朱镕基总理

常用链接

留言簿(1)

随笔档案

文章分类

文章档案

学习园地

最新随笔

搜索

积分与排名

最新评论