2_Java基础语法(上)

1:Java语言基础组成

标识符 关键字 注释 常量和变量

运算符 /语句   /  函数 /数组

2:标识符

(1)Java 语言中,对各种变量、方法等要素命名时使用的字符序列称为标识符

*简单记,就是起名字。

(2)命名规则

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

*不能以数字开头。

*不能与java的关键字重名。

(3)命名规范 见名知意,驼峰命名。

*包 所有单词小写xxx.yyy.zzz  

**看成是一个文件夹。

**www.itcast.cn     cn.itcast.www cn/itcast/包的作用

**www.baidu.com   com/baidu/包的作用

*类和接口 XxxYyyZzz 

**如果是由一个单词组成,那么单词首字母大写。

举例:DemoStudent

**如果是由多个单词组成,那么每个单词的首字母大写。举例:StudentDemo      

 *变量与方法xxxYyyZzz 

**如果是由一个单词组成,那么单词首字母小写。

举例:mainshow

**如果是由多个单词组成,第一个单词首字母小写,其后每个单词的首字母大写。

举例:showName

*常量 XXX_YYY_ZZZ

**如果是一个单词组成,那么所有单词全部大写。

举例:MAX

**如果由多个单词组成,每个单词大写,并且以下划线相连接。举例:STUDENT_MAX_AGE

3:关键字

(1)Java语言赋予了特殊含义的单词。

(2)特点:关键字中所有字母都为小写。

(3)gotoconst虽然从未使用,但也作为 Java 关键字保留,记住保留字也是不能当作标识符.

4:注释

(1)注解说明代码的,用于给人看的。

(2)注释的分类

*单行注释 //

*多行注释 /* */

*文档注释 /** */

(3)注释的用途

*注解说明文字。

*用于调试代码。

养成习惯:先写注释再写代码

5:常量和变量

常量表示不能改变的数值,分类如下:

(1)整数常量。所有整数

(2)小数常量。所有小数

(3)布尔型常量。较为特殊,只有两个数值。true false boolean

(4)字符常量。将一个数字字母或者符号用单引号('')标识。''

(5)字符串常量。将一个或者多个字符用双引号标识。 "abc""a" " "

(6)null常量。只有一个数值就是:null.

进制

(1)就是进位制,是人们规定的一种进位方法。 对于任何一种进制--X进制,

   就表示某一位置上的数运算时是逢X进一位

(2)java语言中整数的表现形式

A:八进制

**逢八进一

**所能表示的数据有:0-7

**0开头表示

B:十进制

**逢十进一

**所能表示的数据有:0-9

C:十六进制

**逢十六进一

**所能表示的数据有:0-9A-F(10-15)

**0x或者0X开头表示

d:二进制

**逢二进一

**所能表示的数据有:0-1

(3)进制的特点。

进制越大,表现形式越短

(4)进制转换

A:其他到十进制的转换

**其他进制包含二进制,八进制,十六进制

**转换规则

***先把数据的每一位上的系数乘以对应基数的次幂(低位从从零开始),然后相加即可

B:十进制到其他进制的转换

**规则:除基取余,直到商为0,最后将余数反转

**十进制到二进制

***2取余,直到商为0,最后将余数反转

***十进制13对应的二进制数据是1101

***二进制到十进制的技巧(8421)

**十进制到八进制

***8取余,直到商为0,最后将余数反转

***十进制13对应的把进制数据是15

***十进制--二进制--八进制

****首先把十进制转成二进制

****其次把二进制数据每三位组合。左边不够三位用0补位

****然后把每个组合计算成对应的十进制数据

****最后从左到右把数据相连接即可得到八进制

**十进制到十六进制

***16取余,直到商为0,最后将余数反转

***十进制13对应的把进制数据是D

***十进制--二进制--十六进制

****首先把十进制转成二进制

****其次把二进制数据每四位组合。左边不够四位用0补位

****然后把每个组合计算成对应的十进制数据

****最后从左到右把数据相连接即可得到十六进制

变量

用法:当数据不确定的时候,就定义变量来存储数据。

(1)在程序的运行过程中,其值在指定范围内变化的值

(2)是内存中一个区域,用于存储数据

(3)变量的定义

格式:数据类型 变量名 初始化值;

(4)变量在使用的时候

A:第一种,在声明的时候,就初始化值

**数据类型 变量名 初始化值;

**举例:byte b = 100; System.out.println(b);

B:第二种 在使用前,赋值

**声明

**赋值

**使用

**举例 byte b2;

       b2 = 100; System.out.println(b2);

数据类型

(1)java语言分为两种数据类型

A:基本数据类型

B:引用数据类型(,接口,数组)

(2)基本数据类型

A:区别 在内存中分配的空间大小不同,从而导致它表示的数据范围不同

B48

**整数

***byte 1个字节

***short 2个字节

***int 4个字节

***long 8个字节 其后加Ll标识

**浮点数

***float 4个字节 其后加Ff标识

***double 8个字节

**字符

***char 2个字节

**布尔型

***boolean 占一个字节 

***true,false

C:默认情况下:

**整数是int类型

**浮点数是double类型

(3)数据参与运算

A:整型,字符型,浮点型的数据在混合运算中相互转换,转换时遵循以下原则

**容量小的类型与容量大的类型进行计算,默认转换为容量大的数据类型;数据类型按容量大小排序为:

***byte,short,char->int->long->float->double

***byte,short,char之间不会互相转换,他们三者在计算时首先会自动转换int类型

**容量大的数据类型转换为容量小的数据类型时,要加上强制转换符,

  但可能造成精度降低或溢出;使用时要格外注意。

**有多种类型的数据混合运算时,系统首先自动的将所有数据转换成容量最大的那一种数据类型,

  然后再进行计算。

B:强制转换符

**格式:(数据类型)(要被转换的数据) byte b = (byte)(130);

C:字符型参与运算

**首先会去找对应字符的ASCII码值。然后运算。

D:布尔型参与运算

**不能参与运算

E:字符串参与运算

**它是和参与运算的数据相连接组成了一个新的字符串。

6:运算符

(1)算术运算符 +,-,*,/,%,++,--

A%

**当左边的绝对值小于右边:结果是左边

**当左边的绝对值等于右边或者是右边倍数的时候:结果是0

**当左边的绝对值大于右边:结果是余数,符号取决与左边的的符号

**取余的正负号取决于左边

**用途:任意数%2 结果是要么0,要么1。用于切换条件

B++,--

**递增,递减运算符。就是加1或者减1

**单独存在,放在操作数的前面或者后面,结果一样

**参与运算时:

***放在操作数的前面,先自身加或者减1,然后再参与运算

***放在操作数的后面,先参与运算,然后再自身加或者减1

C+

**作为数据的符号

**做加法运算

**字符串连接符

(2)赋值运算符

A=:赋值运算符 把右边的值赋给左边

**举例:int x = 3; 3赋给int类型变量x

B+=:加赋值运算符 把左边和右边的和赋给左边

**举例:int x = 3; x+=2;等同于 x = x + 2;

**+=运算符在给s赋值时,自动完成了强转操作。

(3)比较运算符

A==,!=,>,<,>=,<=

B:比较运算符的结果都是boolean型,也就是要么是true,要么是false

(4)逻辑运算符

/*

逻辑与运算符 &

第一个条件    第二个条件     结果

true          true          true

false         true           false

true          false          false

false         false          false

简单记:同时为true,结果为true

*/

/*

逻辑或运算符 |

第一个条件    第二个条件     结果

true          true      true

false         true           true

true          false          true

false         false          false

简单记:同时为false,结果为false

*/

/*

逻辑异或运算符 ^

第一个条件    第二个条件     结果

true          true    false

false         true           true

true          false          true

false         false          false

简单记:同时为同一种情况,结果为false

*/

/*

逻辑非运算符 !

!true =false

!false =true

        !!true =true

*/

/*

短路与 && :

&:左边无论什么结果,右边都执行。

&&:左边为false,右边不执行,结果为false

短路或 || :

|:左边无论什么结果,右边都执行。

||:左边为true,右边不执行,结果为true

*/

(5)位运算符

<<一个数向左移动几位就乘以2的几次幂

>>一个数向右移动几位就除以2的几次幂

>>> 无符号右移,左边补0

(6)三元运算符

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

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

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

B:条件运算符运算完之后一定有一个结果

7:程序流程控制(判断结构/选择结构/循环结构)

判断结构if语句

三种格式:

第一种:if(条件表达式){

   执行语句;

       }

第二种:if (条件表达式){

执行语句;

      }else{

         执行语句;

       }

第三种:if(条件表达式){

               执行语句;

       }else if (条件表达式){

              执行语句;

       }else{

              执行语句;

       }

*if语句和三元运算符的区别

三元运算符可以称之为if语句的简写形式,但是只要简写就会有一定的弊端。

三元运算符,是一种运算符号,也就是说每次执行后,必须有结果。

if...else是语句,只是控制流程,执行后不一定有结果

if...else可以里面可以有语句,并输出结果,三元运算符不可以。

*If语句什么时候使用

1,当对值进行判断的时候

2,当对数据区间进行判断的时候

3,当结果是布尔类型的时候

*if语句特点:

1,每一种格式都是单条语句。

2,第二种格式与三元运算符的区别:三元运算符运算完要有值出现。

好处是:可以写在其他表达式中。

3,条件表达式无论写成什么样子,只看最终的结构是否是true 或者 false;

选择结构switch语句

1switch格式:

switch (表达式){

case 表达式里对应的值:

执行语句;

break;

case 表达式里对应的值:

执行语句;

break;

......

default:

执行语句;

break;//最后一句的break可写可不写,因为程序已经执行到了末尾

}

*重点:switch 结束只有两种情况

1,当程序执行过程中遇到了break

2,当程序执行到了末尾处

*应用 switch需要注意的两个细节

1,switch表达式的值与其中一个case匹配的时候,这个case里没有写break;语句,那么程序会继续执行下个case里的执行语句,不会再对case值进行判断,应用于当几个case里的值所要执行的语句都一样的时候,我们可以不写break

例如:我们做一年有四季的例子:

int month = 8;

switch (month){

case 3:

case 4:

case 5:

System.out.println(month+"月是春季");

break;

case 6:

case 7:

case 8:

System.out.println(month+"月是夏季");

break;

case 9:

case 10:

case 11:

System.out.println(month+"月是秋季");

break;

case 12:

case 1:

case 2:

System.out.println(month+"月是冬季");

break;

default:

System.out.println(month+"月没有这样的月份")

}//上述例子就是三个case里面的值输出都一样的,所以我们省略了break;这样会少写几行代码,提高效率

2,当我们把 default 不是写在最后,default 里面还没有写break的是时候,switch里的表达式与各个case里的值都部匹配的时候,上面两个条件同时满足的话,程序在default里执行完了还会再去执行case里的语句

例如:

int x = 3;

switch (x){

case 4:

System.out.print("a");

break;

default:

System.out.print("b");

//这里没有写break,程序不再判断下个case里面的值会继续向下执行

case 5:

System.out.print("c");

case 6:

System.out.print("d");

break;//当程序执行到这里遇到了break就结束了

case 7:

System.out.print("e");

}//此程序输出结果应该是:bc

循环结构while/do while/for

循环语句里除了do while都是重点要牢记,多练

(1)while循环

格式:

while (条件表达式){

循环体;

控制循环次数;

}

例如: int x = 3;

while (x<6){

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

x++;//x自增来控制循环次数

}

(2)do while 循环

格式:

do{

循环体;

控制循环次数

}

while (条件表达式);

例如:

int x = 3;

do{

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

x++;//x自增来控制循环次数

}

while (x<6);

whiledo while的区别:

dowhile语句会先执行循环体,再去判断条件,也就是说无论条件是否满足他都至少要执行一次循环体,先执行再判断

while 先判断条件,只要条件不满足就不在执行循环体了,先判断,再执行.

(3)for 

格式:

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

执行语句;(循环体)

}

例如:

for( int x = 0; x < 10;  x++){

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

}

(4)for 的嵌套循环,建议做题的时候就弄个双层嵌套就可以,不要弄太多层,影响效率

格式:

for(初始化表达式;循环条件表达式;循环后的操作表达式){//这是外层循环

执行语句;(循环体)

//下面是内存循环

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

执行语句;(循环体)

}

}

for (int x=1;x < 6;x++ ){

for(int y=1; y<6; y++){

System.out.print("*");

}

System.out.println();

}

continuebreak

a,这两个语句离开应用范围,存在是没有意义的。

b,这个两个语句单独存在下面都不可以有语句,因为执行不到。

c,continue语句是结束本次循环继续下次循环。

d,标号的出现,可以让这两个语句作用于指定的范围。

语句使用情况:

A:当对某几个值进行判断的时候,可以使用if语句,或者switch语句。

建议使用switch。但是,使用switch要注意,它只能操作五种类型的值,byteshortintchar,String.

如果是五种以外的值,需要使用if

B:如果对数据区间进行判断,或者对运算结果是boolean类型的进行判断,用if语句。

C:当需要某些语句执行很多次的时候,使用循环结构。如果定义变量只为循环增量存在时,可以使用for语句。

     如果对一个条件进行一次判断使用if,如果对该条件进行多次判断,使用while.

D:如果要结束循环,可以控制循环条件,或者通过break语句完成。

  如果要控制循环的流程,是否该继续执行,可以通过continue或者break来完成。

E:break结束当前所在循环。

    continue结束本次循环,进入下一次循环。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值