一、标识符、关键字

 Java标识符的定义格式由字母、数字、_(下划线),$所组成,其中不能重复,不能以数字开头,不能是Java中的关键字,而且每一个标识符都要有自己的意义,如StudentName,表示的是学生姓名。

 

注意:标识符区分大小写。

提示:标识符最好永远用字母开头,而且尽量不要包含其他的符号。

Java中的关键字

abstract

assert

boolean

break

byte

case

catch

char

class

continue

const

default

do

double

else

extends

enum

final

finally

float

for

goto

if

implements

import

instanceof

int

interface

long

native

new

package

private

protected

public

return

short

static

synchronized

super

strictfp

this

throw

throws

transient

try

void

volatile

while

二、变量

1、定义:变量是内存中装载数据的小盒子,你只能用它来存数据和取数据。

 

计算机存储设备的最小信息单元叫“位(bit,我们又称之为“比特位”,通常用小写的字母b表示。

计算机最小的存储单元叫“字节(byte”,通常用大写字母B表示,字节是由连续的8个位组成。

1B(字节) = 8bit

1KB = 1024B

2、变量的基本类型(4类8种)

变量必须要有明确的类型,什么类型的变量装载什么类型的数据。 

Java中基本类型一共4类,把这4类展开后共8种基本类型。

 

java中默认的整数类型是int类型

Java中整数常量如果不在-2147483648~2147483648之间就必须添加“L”后缀(小写的也可以,但建议使用大写),在-2147483648~2147483648之间的也可以添加“L”后缀。

添加了L”后缀的整数常量都是long类型的,例如:100L12345678901L都是long类型的常量。   

java中默认的浮点类型是double类型

float类型常量必须添加“F”后缀(小写也可以,但建议使用大写)

除了8大基本类型(byte,short,char,int,long,float,double,boolean),其他类型皆为引用类型。

例如:String,定义字符串

3、定义变量

 

/*
变量定义格式:
数据类型  变量名  =  变量值;
*/
public class Variable {
    public static void main(String[] args) {
        int a = 10;//定义整型a,赋值10
        double b = 3.14;//定义浮点类型,变量名b,变量值3.14
        char c = 'z';//定义字符类型,变量名c,变量值'z'
        String s = "i love java";//定义引用类型,变量名s,变量值"i love java"
    
        a = 20;
        System.out.println(a);
    }
} 

 

4、变量使用的注意事项

1、 变量定义后可以不赋值,使用时再赋值。不赋值不能使用。

public static void main(String[] args) {
int x;
x = 20; //为x赋值20
System.out.println(x);//读取x变量中的值,再打印
}

2、变量使用时有作用域的限制

public static void main(String[] args) {
int x = 20;
{
    int y = 20;
}
System.out.println(x);//读取x变量中的值,再打印
System.out.println(y);//读取y变量中的值失败,失败原因,找不到y变量,因为超出了y变量作用范围,所以不能使用y变量
}

3、变量不可以重复定义。

public static void main(String[] args){
      int x = 10;
      double x = 5.5;//编译失败,变量重复定义
}

 

5、 数据类型转换

不同类型的变量是否可以在一起运算呢?答案是可以的,但要先进行类型转换再运算。

遵循原则:

范围小的数据类型值(如byte),可以直接转换为范围大的数据类型值(如int);

范围大的数据类型值(如int),不可以直接转换为范围小的数据类型值(如byte

将各种数据类型按照数据范围从小到大依次列出:

byte -> short -> int -> long -> float -> double                                                          

一、自动类型转换

表示范围小的数据类型转换成范围大的数据类型,这种方式称为自动类型转换

自动类型转换格式:

范围大的数据类型 变量 = 范围小的数据类型值;

double d = 1000;
或
int i = 100;
double d2 = i;

 

二、强制类型转换

表示范围大的数据类型转换成范围小的数据类型,这种方式称为强制类型转换

强制类型转换格式:

范围小的数据类型  变量 = (范围小的数据类型) 范围大的数据类型值;

int  i = (int)6.718;   //i的值为6
double  d = 3.14;
int  i2 = (int)d;     //i2的值为3 

 

二、运算符

1、算数运算符

运算符是用来计算数据的符号。数据可以是常量,也可以是变量。被运算符操作的数我们称为操作数。

注意下列事项:

  • 加法运算符在连接字符串时要注意,只有直接与字符串相加才会转成字符串,加括号会先运算括号内。
  • 除法“/”当两边为整数时,取整数部分,舍余数。当其中一边为浮点型时,按正常规则相除。
  • “%”为整除取余符号,小数取余没有意义。结果符号与被取余符号相同。
  • 整数做被除数,0不能做除数,否则报错。

 

2、算数运算符 ++ -- 的使用

运算符单独使用: ++,--,不参与运算操作时,运算符前后位置导致的运算结果是一致的。

int a = 3;
int b = 3;
++a;//++在a前后,结果都为4
b--;//--在前后,结果都为2
System.out.println(a);//4
System.out.println(b);//2 

 运算符参与运算:

++,--  运算符后置时,先使用变量a原有值参与运算操作,运算操作完成后,变量a的值自增1或者自减1

++,--运算符前置时,先将变量a的值自增1或者自减1,然后使用更新后的新值参与运算操作。

int a = 3;
int b;
int c = 3;
int d;
b = a++ + 10;
d = ++c + 10;
System.out.println(a);//4
System.out.println(b);//13
System.out.println(c);//4
System.out.println(d);//14

 

 3、赋值运算符

 

注意:诸如+=这样形式的赋值运算符,会将结果自动强转成等号左边的数据类型。

 

4、比较运算符

 比较运算符,又叫关系运算符,它是用来判断两个操作数的大小关系及是否相等关系的,结果是布尔值true或者false

 

 

5、逻辑运算符

逻辑运算符,它是用于布尔值进行运算的,运算的最终结果为布尔值truefalse

 

 逻辑运算符通常连接两个其他表达式计算后的布尔值结果

 注意:&和&&,在结果上没有区别。

  • 短路与&&,当左边为false时,则右边不执行判断,结果为false,效率高于&
  • 短路或||,当左边为true时,则右边不执行判断,结果为true,效率高于&
  • 逻辑非! : 参与运算的数据,原先是true则变成false,原先是false则变成true。

 例题:

    /*第一题*/
    int x = 1,y = 1;

    if(x++==2 & ++y==2)  // false&true
    {
        x =7;
    }
    System.out.println("x="+x+",y="+y); // x=2,y=2
    ---------------------------------------------------
    /*第二题*/
    int x = 1,y = 1;

    if(x++==2 && ++y==2)
    {
        x =7;
    }
    System.out.println("x="+x+",y="+y);  //x=2,y=1
    ---------------------------------------------------
    /*第三题*/
    int x = 1,y = 1;
    if(x++==1 | ++y==1)  t|f
    {
        x =7;
    }
    System.out.println("x="+x+",y="+y);  // x=7 y=2
    ---------------------------------------------------
    /*第四题*/
    int x = 1,y = 1;
    if(x++==1 || ++y==1)   t
    {
        x =7;
    }
    System.out.println("x="+x+",y="+y); // x=7 y=1

 

 6、三元运算符

  格式:

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

 三元运算符运算规则:

先判断条件表达式的值,若为true,运算结果为表达式1;若为false,运算结果为表达式2

 

7、运算符优先级

当多个运算符一起使用的时候,容易出现不清晰先后运算顺序的问题,

下图是每种运算符的优先级,按照运算先后顺序排序(优先级相同的情况下,按照从左到右的顺序依次运算)

 

例:

int a = 5;
 int b = 3;
 int c = 1;
int n2 = (a>b && b>c) ? (c++) : (++c);

 

这段代码运算执行顺序我们也写一下:

1.小括号优先级高,我们先运算第一组小括号中的代码

  1.1. 比较运算符”>” 优先级大于 逻辑运算符”&&”

  先执行 a>b,得到结果true;

   再执行 b>c,得到结果true;

   最后执行 a>b的结果 && b>c的结果,即 true && true, 结果为true

2.三元运算符中的条件判断结果为true,返回表达式1的结果 c++

  先将变量c的原有值赋值给变量n2,即n2值为1

   再将变量c的值自增1,更新为2

posted on 2018-07-17 22:28  丁昆  阅读(154)  评论(0编辑  收藏  举报