黑马程序员_java语法1

来源:互联网 发布:编程可以用中文吗 编辑:程序博客网 时间:2024/05/05 16:43

------- android培训java培训、期待与您交流! ---------- 

 

java语言基础组成

关键字、标识符、注释、常量和变量、运算符、语句、函数、数组.

1,标识符:在程序中自定义的一些名称,

26个英文字母大小写,0-9,_$组成。

定义标识符的规则:1.数字不可以开头.2.不可以使用关键字.

Java中的名称规范:

包名:多单词组成时所有的字母都小写xxxyyyzzz

类名接口名:多单词组成时,所有单词的首字母大写XxxYyyZzz

变量名和函数名:多单词组成时,第一个单词首字母小写,第二个单    词开始每个单词首字母大写xxxYyyZzz

常量名:所有字母都大写,多单词时用下划线连接XXX_YYY_ZZZ

2,注释

注释的作用:1.注解说明解释程序2.调试程序;

a).注释的方式:

1.单行注释方式//........

2.多行注释方式/*......*/

3.文档注释方式/**....*/

b).三种注释之间的关系:

单行注释中能写单行注释;

多行注释中可以加单行注释;

多行注释中不可以加多行注释。

编写程序的习惯:先写注释再写代码。

3,常量

a).常量有整数常量,小数常量,布尔型常量(truefalse),字符常量(‘1个数字/字母/符号’),字符串常量(“1个或多个字符”)null常量(null)

b).对于整数,java有三种表现形式:十进制(0-9),八进制(0-7,用0开头表示),十六进制(0-9A-F,用0x开头表示).

c).计算机表示数据的方式:八个二进制代表一个字节(数据单元),由n多字节去表示数据。

d).八进制就是三个二进制代表一位;十六进制就是四个二进制代表一位。规律:进制越大,表现形式越短。

4,进制的基本转换

十进制转换成二进制:对十进制的树除以2取余数(从下往上写);

二进制转换成十进制:对二进制的树乘以2的幂数(从右开始乘)。

5,负数的二进制:正数的二进制取反加一,取反就是将二进制的1变成0              0变成1,负数的最高位都是1.

6,变量:就是将不确定的数值进行存储,也就是需要在内存中开辟一个空         间。

a).如何开辟内存空间:通过明确数据类型、变量名称、数据来完成。

b).所谓数据类型有:基本数据类型(数值型(整数类型(字节(byte),短整形(short),整形(int),长整形(long)),浮点类型(单精度(float),双精度(double))),字符型(char),布尔型(boolean))和引用数据类型(类(class),接口(interface),数组([]));

c).整数默认的是int,小数默认的是double

d).定义变量的格式是:数据类型变量名=初始化值

e).什么时候定义变量:当数据不确定的时候,需要对数据进行存储时,就定义一个变量来完成存储动作。

f).类型转换:自动类型转换(隐式类型转换),强制类型转换(显式类型转换);

7,运算符

a).算术运算符

1.% 取模,所谓模就是余数的意思;

取模的结果有三种情况:

1.左边<右边,结果是左边.

       2.左边=右边,结果是0.

3.右边=1,结果是0.

取模的时候如果出现负数,只看被模数(左边).

2.++ 自增,a++  a=a+1

b=a++   运算顺序是:b=a  a=a+1

b=++a   运算顺序是:a=a+1   b=a

规律:不管a++++a a的值不会变.

字符串数据和任何数据使用+都是相连接,最终都会变成字符。

b).转义字符

通过\来转变后面字母或者符号的含义。\n:换行;\b:退格,(相当于    backspace键);\r:按下回车键;\t:制表符(相当于tab键)。在Window      系统中,换行是由两个字符来表示\r\n,在Linux系统中:换行\n

c).赋值运算符

符号有:= += -= /= %= *=

short s=3

s=s+2s+=2的区别:

s=s+2会编译失败,因为s会被提升为int类型,运算后的结果还是int    类型,无法赋值给short类型。

s+=2会编译通过,因为+=运算符在给s赋值时,自动完成了强转操作。

d).比较运算符

符号有:== != < > <= >= instanceof

比较运算符的结果都是Boolean类型的,结果只有两种truefalse

e).逻辑运算符

逻辑运算符是用于连接boolean类型的表达式。

&():只要两边的Boolean表达式的结果,有一个为false,那么结果    就是false,只有两边都有true,结果才是true

|():两边只要有一个为true,结果就是true,只有两边的结果都为 false,结果才是false

^(异或):两边相同时,结果是false,两边不同结果是true

结论:一个数异或同一个数两次,结果还是那个数。

|不一样的就是当true^true=false

!()!True=false

&&(双与):俗称短路;

&&&的区别:&:无论左边是true还是false,右边都参与运算

&&:当左边为false时,右边不运算。

||(双或)|||的区别:|:两边都参与运算;||:当左边为true时,        右边不运算。

f).位运算符

<<(左移):其实就是乘以2的移动的位数次幂。

>>(右移):就是除以2的移动的位数次幂。

>>:最高位补什么由原来数据的最高位的值而定。如果最高位0,右移后,    0补空位;如果最高位1,右移后,用1补空位;

>>>(无符号右移):无论最高位是什么,右移后,都用0.

e).三元运算符

格式:(条件表达式)?表达式1:表达式2

如果条件为true,运算后的结果就是表达式1

如果条件为false,运算后的结果就是表达式2.

 8.程序流程控制

a).判断结构

if语句三种格式;

if(){}if{}else{}if{}else if{}else if{}...else{}

if else结构简写格式:变量=(条件表达式)?表达式1:表达式2;(三元运算符)。

三元运算符的好处:可以简化if else代码;弊端:因为是一个运算符,  所以运算完就必须要有一个结果。

b).选择结构

switch语句特点:

1.switch语句中的表达式只接受intshortbytechar类型.

2.case之间与default是没有顺序的,先执行第一个case,没有匹配的  case执行default.

3.结束switch语句的两种情况:遇到break,执行到switch语句结束.

4.如果匹配的case或者default没有对应的break,那么程序会继续向      下执行,运行可以执行的语句,直到遇到break或者switch结尾结束。

if语句与switch语句的应用区别:

①:如果判断的数值不多,而是符合byteshortintchar这四种类     型的话,就用switch语句。

②:对于区间判断,而且结果是boolean类型,用if语句。

c).循环结构

代表语句:whiledo whilefor

 1while:先判断条件,只有条件满足才执行循环体。

 2do…while:先执行循环体,再判断条件,条件满足,在继续执行循    环体。无论条件是否满足,循环体至少执行一次。

 3for(初始化表达式;循环条件表达式;操作操作表达式){

                       执行语句

 }

4、无限循环的最简单表现形式:

for(;;){}

whiletrue{}

a).Whilefor的区别:

1,变量有自己的作用域。对于for来讲:如果将用于控制循环的增    量定义在for语句中。那么该变量只在for语句内有效。for语句执 行完毕。该变量在内存中被释放。

2forwhile可以进行互换。如果需要定义循环增量。用for     为合适。

总结:

b).什么时候使用循环结构?

当要对某些语句执行很多次时,就使用循环结构。

c).循环嵌套

其实就是语句中还有语句,形象的说法就是大圈套小圈。

不是规律的规律:

尖朝上,可以改变条件。让条件随着外循环变化。

尖朝下,可以初始化值,让初始化随着外循环变化。

 9.其他流程控制语句

break(跳出)  continue(继续)

break语句应用于选择结构和循环结构;

continue语句应用于循环结构。特点:结束本次循环,继续下一次   循环。

breakcontinue单独存在时,下面不可以有任何语句,因为执行     不到。

10.小练习

1.最有效的方法计算2*8;

答:2<<3

2.对两个整数变量的值进行互换;

方法一:通过第三方变量

int a=3,b=8;

int temp=a;

a=b;

b=temp;

方法二:(容易超出范围)

n=n+m;

m=n-m;

n=n-m;

方法三:(技巧性方式)

n=n^m;

m=n^m;

n=n^m;

结论:一个数异或另一个数两次,还是原来那个数。

3.二进制转十六进制

 

            inta=60,temp;

            inta1=60&15;

    System.out.println((char)(a1-10+'a'));

            temp=a>>4;

    int a2=temp&15;

            System.out.println(a2);  

4.获取1-10的和

 1.用的for循环来实现:

  intsum = 0;

              for(intx=0; x<=10; x++)

              {

                     sum+= x;

              }

              System.out.println("forsum = "+sum);

2.用的while循环来实现:

int sum = 0;

int x = 1;

              while(x<=10)

              {

                     sum= sum + x;

                     x++;

              }

              System.out.println("sum="+sum);

这就是累加思想。

原理:通过变量记录住每次变化的结果。

通过循环的形式。进行累加动作。

         5.打印1-100之间8的倍数的个数.

int count = 0;

              for(intx=1; x<=100; x++)

              {                  

                     if(x%8==0)

                            //System.out.println("x="+x);

                            count++;

              }

              System.out.println("count="+count);

 这就是计数器思想。

 原理:通过一个变量记录住数据的状态变化。

 也是通过循环完成的。

6.打印等腰三角形

class for{

       publicstatic void main(String[] args)

       {

              for(int x=0; x<5 ;x++ )

              {

                     for(inty=x+1; y<5 ; y++)

                     {

                            System.out.print("");

                     }

                     for(intz=0; z<=x ; z++)

                     {

                            System.out.print("*");

                     }

 

                     System.out.println();

              }

       }

} 

 

------- android培训java培训、期待与您交流! ---------- 

 

0 0