Java基础(三)

235 阅读5分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第22天,点击查看活动详情

3、关键字

定义:被Java语言赋予了特殊含义,用做专门用途的字符串

特点:关键字中所有的字母都是小写。

访问控制privateprotectedpublic
类,方法和变量修饰符abstractclassextendsfinalimplementsinterfacenative
newstaticstrictfpsynchronizedtransientvolatile
程序控制breakcontinuereturndowhileifelse
forinstanceofswitchcasedefault
错误处理trycatchthrowthrowsfinally
包相关importpackage
基本类型booleanbytechardoublefloatintlong
shortnulltruefalse
变量引用superthisvoid
保留字gotoconst

3.1、标识符和关键字的区别?

在我们编写程序的时候,需要大量地为程序、类、变量、方法等取名字,于是就有了标识符,简单来说,标识符就是一个名字。但是有一些标识符,Java 语言已经赋予了其特殊的含义,只能用于特定的地方,这种特殊的标识符就是关键字。因此,关键字是被赋予特殊含义的标识符。比如,在我们的日常生活中 ,“警察局”这个名字已经被赋予了特殊的含义,所以如果你开一家店,店的名字不能叫“警察局”, “警察局”就是我们日常生活中的关键字。

4、标识符

定义:Java所有的组成部分都需要名字。类名、变量名以及方法名都被成为标识符。

  • 由26个英文字母大小写,0-9_$组成。
  • 数字不可以开头。
  • 不可以使用关键字和保留字,但能包含关键字和保留字。
  • Java中严格区分大小写,长度无限制。
  • 标识符不能包含空格。

5、运算符

运算符包含6种:

5.1、算术运算符

算术运算符: +-*/%(前)++(后)++(前)--(后)-- +

运算符运算范例结果
+正号+77
-负号b=11, -b-11
+9+918
-10-82
*7*749
/9/91
%取模(取余)11%92
++自增(前):先运算后取值 自增(后):先取值后运算a=2;b=++a a=2;b=a++a=3;b=3 a=3;b=2
--自减(前):先运算后取值 自减(后):先取值后运算a=2;b=--a a=2;b=a--a=1;b=1 a=1;b=2
+字符串相加"hsp" + "edu""hsp edu"

【特别说明】

  • (前)++:先自增1,后运算
  • (后)++:先运算,后自增1
  • (前)--:先自减1,后运算
  • (后)--:先运算,后自减1
  • +:连接符,只能使用在 String 与其他数据类型变量之间使用。
  1. 面试一:

下列输出结果为?

int a = 8; ​ int b =(a++)+(++a)+(a*10);

分析解剖:int b=(a++)+(++a)+(a * 10); 可拆分为:c=(a++);d=(++a);e=(a * 10); 所以:int b=c+d+e; 从左到右依次计算; a++为先使用再自增,使用a=8先复制给c=8后,a再自增为9,a再更新变量为:9 ++a先自增,再使用,当a=9时,++a先自增为10后,更新变量为10;再赋值给d;此时d=10; 跟新的变量a=10,所以e=((a=10)*10)=100;所以e=100; 故,int b=c+d+e=8+10+100=118;

所以:int b=(a++)+(++a)+(a*10)=118;

public class Test {
    public static void main (String[] args){
        int a = 8;
        int b =(a++)+(++a)+(a*10);
        System.out.prinln(b);//118
    }
}
​
  1. 面试二:

下列输出结果为:

int i = 0;

i = ++i;

System.out.println(i);

int i = 0;

i = i++;

System.out.println(i);

分析:

i = ++i; //++i为先自增,在使用 //底层原理: //i = (int)(i+1); //i = i; System.out.println(i);//1

i = i++;//i++为先使用,再自增 //底层原理: //int temp = i;–temp用于记录i最初的值 //i = (int)(i+1); //i = temp System.out.println(i);//0

public class Test{
    public static void main (String[] args){
        int i = 0;
        i = ++i;
        System.out.println(i);//i=1
​
        int i = 0;
        i = i++;    
        System.out.println(i);// i=0
    }
}
​

5.2、赋值运算符

赋值运算符使用操作符=来表示,它的意思是把=号右边的值复制给左边,右边的值可以是任何常数、变量或者表达式,但左边的值必须是一个明确的,已经定义的变量。比如:int a = 4。

对于对象来说,复制的不是对象的值,而是对象的引用,所以如果说将一个对象赋值给另一个对象,实际上是将一个对象的引用赋值给另一个对象。

操作符描述例子
=简单的赋值运算符,将右操作数的值赋给左侧操作数C = A + B将把A + B得到的值赋给C
+=加和赋值操作符,它把左操作数和右操作数相加赋值给左操作数C + = A等价于C = C + A
-=减和赋值操作符,它把左操作数和右操作数相减赋值给左操作数C - = A等价于C = C - A
*=乘和赋值操作符,它把左操作数和右操作数相乘赋值给左操作数C * = A等价于C = C * A
/=除和赋值操作符,它把左操作数和右操作数相除赋值给左操作数C / = A,C 与 A 同类型时等价于 C = C / A
(%)=取模和赋值操作符,它把左操作数和右操作数取模后赋值给左操作数C%= A等价于C = C%A
<<=左移位赋值运算符C << = 2等价于C = C << 2
>>=右移位赋值运算符C >> = 2等价于C = C >> 2
&=按位与赋值运算符C&= 2等价于C = C&2
^=按位异或赋值操作符C ^ = 2等价于C = C ^ 2
=按位或赋值操作符C= 2 等价于C = C2