Java复习笔记—基础语法

二:java语法基础

1、关键字:其实就是某种语言赋予了特殊含义的单词,全部都是小写。 

2、标示符:其实就是在程序中自定义的名称,比如类名,变量名,包含 0-9、a-z、$、_ ;

标识符的规矩:

1),数字不可以开头。

2),不可以使用关键字。

3、命名规范

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

例如:aaabbbccc

 

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

  例如:aaaBbbCcc

4、注释

1、 单行注释  格式: //……
     2、 多行注释 格式: /*  ……  */
     3、 文档注释 格式:/** …… */

5、常量:

1、 整数常量:所有整数。

2、 小数常量:所有小数。

3、 布尔(boolean)型常量:只有两个数值:true、false。

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

5、 字符串常量:将一个或者多个字符用双引号("")标识,如:"hello world"、"a"、""(空字符串)。

6、 null常量:只有一个数值就是:null。

7、进制

     二进制:0-1,满2进1。

     八进制:0-7,满8进1,用0开头表示,如:012。

     十进制:0-9,满10进1。

     十六进制:0-9,A-F,满16进1,用0x开头表示。如:0x4a2c。

6、进制转换

1. 十进制转二进制。
     原理:对十进制数进行除2运算。

  2. 二进制转十进制。 
     原理:二进制乘以2的过程。

3. 十进制转八进制。
     原理:八进制,其实就是二进制位,3个二进制位,1个八进制位。

4. 十进制转十六进制。
    原理:十六进制,其实就是二进制位,4个二进制位,1个十六进制位。

7、变量:就是内存中的一个存储空间,用于存储常量数据。

         变量定义一次以后,不能再重新定义一次;//int i=3;int i=8

特点:方便于运算。因为有些数据不确定。所以确定该数据的名词和存储空间。

格式:数据类型    变量名  =  初始化值;
        例如:int b = 3;(格式是固定的,记住格式,以不变应万变)

什么时候定义变量?

当数据不确定的时候,就定义变量。

变量的作用域和生存期:

变量的作用域:{之间}

生命周期:变量从定义的位置开始就在内存中活了,变量到达它所在的作用域的时候就在内存中消失了;

9、数据类型:


当数据定义了明确的数据类型后,它将在内存空间中分配不同大小的内存空间,

整数类型默认为:int

小数类型默认为:double

所有的byte、short、char数据类型将被提升为int类型

10、强制类型转换

类型转换有两种:自动类型转换(隐式类型转换):不需要我们手动进行类型转换

强制类型转换(显示类型转换):需要我们手动进行强转,否则不能运行
    表达式的数据类型自动提升:
    所有的byte型、short型和char的值将被提升到int型。
    如果一个操作数是long型,计算结果就是long型;
    如果一个操作数是float型,计算结果就是float型;
    如果一个操作数是double型,计算结果就是double型。


11、转义字符:通过\ 来转变后面字母或者符号的含义。

\n:换行。

\b:退格。相当于backspace。

\r:按下回车键。window系统,回车符是由两个字符来表示\r\n。

\t:制表符。相当于tab键。

System.out.println("hello \t world");

//System.out.println("/”hello java/”");//输出是:”hello java”

System.out.println("\\hello\\");//输出是:\hello\

char ch = '\'';//OK,因为有转义字符,有意义,

 

12、运算符:

1)、算术运算符。

+ - * / % ++ --  

/ :除数与整除数都是整数就是整除。小数点会被忽略

%:取模就是取余数,结果正负要看左边,//-5%3 //-2

+:连接符。

++:参照当前表达式,前+就是先+,后+就是运算后+

- - :参照当前表达式,前-就是先-,后+就是运算后-

2)、赋值运算符。

=  +=  -=  *=  /=  %=

+=:s+=4//s=s+4

注意:a+=4、a=a+4

a+=4:在运行中间进行了自动类型转换

a=a+4:这里要进行一次强转才不会报错,因为4为int类型,而a不是int类型,相加后可能会造成精度损失

3)、比较运算符。

==  !=  <  >  <=  >=   

比较运算符的结果都是boolean型,所以运算完的结果,要么是true,要么是false。 

 注:比较运算符“==”不能误写成“=” 。

特点:

4)、逻辑运算符。

&  |  ^  !   &&   ||

逻辑运算符除了 !  外都是用于连接两个boolean类型表达式。

&  与:只要有一边为false结果就会false,反之true

|   或:只要又一边为true结果就会true,反之false

^  异或:和或有点不一样。

 两边结果一样,就为false。

 两边结果不一样,就为true.

& 和 &&区别: 

& 与:无论左边结果是什么,右边都参与运算。

&& 短路与,如果左边为false,那么右边不参数与运算。左边为true才参加运算。

| 和|| 区别:

| 或:两边都运算。

||:短路或,如果左边为true,那么右边不参与运算。左边为false才进行运算。

5)、位运算符:用于操作二进制位的运算符。

&  |  ^  <<  >>   >>>(无符号右移)

&: 6 & 3 = 2

         110
      &  011
         -------

 010 ==2

  |: 6  |  3 = 7 
             110
     |   011
      --------
           111 = 7

^:    6 ^ 3 = 5
         110
    ^   011
     -------
             101

<<: 左移几位其实就是该数据乘以2的几次方。

         3 << 2 = 12 相当于 3 * 2(2) = 12
000011
001100

  3 << 3 = 24 相当于 3 * 2(3) = 24

00011

11000

>>:  右移几位其实就是该数据除以2的几次幂。

6 >> 1 = 3 相当于 6/2(1)=3

110

011

6 >> 2 = 1 相当于 6/2(2) = 1

110

001

注:    >>:对于高位出现的空位,原来高位是什么,就用什么补这个空位。
     >>>:无符号右移,数据进行右移时,高位出现的空位,无论原高位是什么,空位都用0补。

6)、三元运算符

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

如果表达式为true,结果是表达式1

如果表达式为false,结果是表达式22;

Int i = 3,y;

y = (i>4)?100:200;//100

13、语句

If  switch  do while   while  for 

1、格式一: 格式二:

if ( 条件表达式 ) if ( 条件表达式 )
    { {
          执行语句; 执行语句;
    } }else{

执行语句;

}

注:三元运算符也可实现if语句功能。

2、switch(表达式)格式:
    {
          case 取值1:
               执行语句;
               break;
          case 取值2:
               执行语句;
               break;
          …...
          default:
               执行语句;
               break;
    }

switch语句特点:
   1、switch语句选择的类型只有四种:byte,short,int,char。
   2、case与default没有顺序。先执行第一个case,没有匹配的case执行default。
   3、结束switch语句的两种情况:①遇到break,②执行到switch语句结束。
   4、如果匹配的case或者default没有对应的break,那么程序会继续向下执行,运行可以执行的语句,直到遇到break或者switch结尾结束。
   5、进入switch语句后,执行顺序是先执行case,然后从上到下,最后再执行default。即使default放在case上面,执行顺序也不变。

3、while语句格式:
     while( 条件表达式 ) do
     { {
           执行语句; 执行语句;
     } }while(表达式)

do while循环,无论表达式是否成立,循环体都至少执行一次。

While循环如果表达式不成立,那这个循环体将不会执行。

4、for语句格式

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

{

执行语句;循环体

}

执行顺序:1、先对初始化表达式赋初值,

2、判断循环条件表达式是否满足给定的条件,若满足循环条件

3、则执行循环体语句,

4、最后执行循环后的操作表达式,然后进入第二次循环

初始化表达式和循环后的操作表达式,可以是多个表达式,通过逗号隔开就可以for(int a = 1,b =2; a < 2 & b < 3; a++,b++)

这些语句什么时候用?

当判断固定个数的值的时候,可以使用if,也可以使用switch。

但是建议使用switch,效率相对较高。

while和for可以进行互换。

区别在于:如果需要定义变量控制循环次数。建议使用for。因为for循环完毕,变量在内存中释放。

 

break:跳出循环

break语句单独存在时,下面不要定义其他语句,因为执行不到,编译会失败。当循环嵌套时,break只跳出当前所在循环。要跳出嵌套中的外部循环,只要给循环起名字即可,这个名字称之为标号。

 

continue:跳出当次循环

作用:结束本次循环,继续下次循环。该语句单独存在时,下面不可以定义语句,执行不到。

 

14,、函 数:为了提高代码的复用性,可以将其定义成一个单独的功能,该功能的体现就是java中的函数。函数就是体现之一。

java中的函数的定义格式:

修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数1,…){

执行语句;

return 返回值;

}

当函数没有具体的返回值时,返回的返回值类型用void关键字表示。

如果函数的返回值类型是void时,return语句可以省略不写的,系统会帮你自动加上。

return的作用:结束函数。结束功能。

 

如何定义一个函数?

函数其实就是一个功能,定义函数就是实现功能,通过两个明确来完成:

1)、明确该功能的运算完的结果,其实是在明确这个函数的返回值类型。

2)、在实现该功能的过程中是否有未知内容参与了运算,其实就是在明确这个函数的参数列表(参数类型&参数个数)。

函数的作用:

1)、用于定义功能。

2)、用于封装代码提高代码的复用性。

注意:函数中只能调用函数,不能定义函数。

主函数:

1)、保证该类的独立运行。

2)、因为它是程序的入口。

3)、因为它在被jvm调用。

 

函数定义名称是为什么呢?

答:1)、为了对该功能进行标示,方便于调用。

2)、为了通过名称就可以明确函数的功能,为了增加代码的阅读性。

 

重载的定义是:在一个类中,如果出现了两个或者两个以上的同名函数,只要它们的参数的个数,或者参数的类型不同,即可称之为该函数重载了。

如何区分重载:当函数同名时,只看参数列表。和返回值类型没关系。

 

7,数 组:用于存储同一类型数据的一个容器。好处:可以对该容器中的数据进行编号,从0开始。数组用于封装数据,就是一个具体的实体。

如何在java中表现一个数组呢?两种表现形式。

1)、元素类型[] 变量名 = new 元素类型[元素的个数];

2)、元素类型[] 变量名 = {元素1,元素2...};

元素类型[] 变量名 = new 元素类型[]{元素1,元素2...};


注:java分了5片内存。

1:寄存器。2:本地方法区。3:方法区。4:栈。5:堆。

栈:存储的都是局部变量 ( 函数中定义的变量,函数上的参数,语句中的变量 );

只要数据运算完成所在的区域结束,该数据就会被释放。

堆:用于存储数组和对象,也就是实体。啥是实体啊?就是用于封装多个数据的。

1:每一个实体都有内存首地址值。

2:堆内存中的变量都有默认初始化值。因为数据类型不同,值也不一样。 

3:垃圾回收机制。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值