Java笔记2 第二章 java语言基础

第二章 java语言基础

2.1标识符与数据类型

2.1.1 标识符(Identifier)

  1. 标识符的定义:Java程序中使用的变量、方法、类、数组都要有名字,这些名字称为标识符

  2. 标识符的构成规则:标识符只能包含字母、数字、下划线_和美元符号$,必须以字母、下划线或美元符号开头

  3. 关键字(keyword)和保留字(Reserved Word)被J语言赋予特殊含义,给变量或方法起名时不能用

    img

    java中的保留字和关键字

    除此之外,保留词还包括 true,false,null (字面量)

    Java关键字及其作用:文章链接

    2.1.2数据类型

    img

    整数类型:byte,1字节,8位,最大存储数据量是255,存放的数据范围是-128~127之间。

    整数类型:short,2字节,16位,最大数据存储量是65536,数据范围是-32768~32767之间。

    整数类型:int,4字节,32位,最大数据存储容量是2的32次方减1,数据范围是负的2的31次方到正的2的31次方减1。

    整数类型:long,8字节,64位,最大数据存储容量是2的64次方减1,数据范围为负的2的63次方到正的2的63次方减1。

    浮点类型:float,4字节,32位,数据范围在3.4e-45~1.4e38,直接赋值时必须在数字后加上f或F

    浮点类型:double,8字节,64位,数据范围在4.9e-324~1.8e308,赋值时可以加d或D也可以不加。

    字符型:char,2字节,16位,存储Unicode码,用单引号赋值。

    布尔型(逻辑型):boolean,只有true和false两个取值,不能与整型数据进行转换 ,例:boolean b=true

2.1.3 常量

  1. 整型常量
    整型常量就是整数,Java语言中的整型常量可以采用十进制、八进制、十六进制和二制4种表示方法。
  • 十进制的整型常量以非0数字开头,如14,-40等;
  • 八进制的整型常量用数字0开头的数值表示,如020代表十进制数值16;
  • 十六进制的整型常量用0x或者0X开头的数值表示,如0x1a代表十进制数值26;
  • 二进制的整型常量用0b或者0B开头的数值表示,如0B1100代表十进制数值12。

程序中出现的整型常量被看作int型,在内存中分配4个字节,如123。整型常量后面添加字母L或者l,被看作长整型常量,在内存中分配8个字节,如123L。

  1. 浮点型常量
    浮点型常量指的是实数,Java语言中的浮点型常量有十进制小数和科学计数法两种表示方式。
  • 十进制小数:由整数部分、小数点和小数部分构成,且必须包含小数点,如.23、1.和1.23
  • 科学计数法:由数值部分、e(或者E)和指数部分构成,如1.23e2、123e-1,其中e前面必须有数字,e后面必须是整数。

程序中出现的浮点型常量被看作为double型,在内存中分配8个字节,如1.23。
如果要将浮点型常量指定为float型,需要在它后面加上字母f或F,在内存中分配4个字节,如1.23f。

除了以上各种类型的常量以外,Java语言还允许利用关键字final进行常量声明

                  final int MAX=100;
                  final double PI=3.1415926

将MAX和PI声明为常量,它们不能再次被赋值。为了区别于普通的变量,建议被声明为常量的标识符全部用大写字母表示。

2.1.4 变量

在程序运行过程中,数值可以改变的量称为变量。变量必须“先声明,后使用”,变量声明的格式为:类型 变量名;

int number;

在当多个变量属于同一数据类型时,可在一条语句中声明,变量之间用逗号隔开,例如:

int year, month, day;

Java语言可以在声明变量时直接进行初始化操作,格式为:
类型 变量名=数值;
其中的数值可以是常量、其他已赋值的变量或者表达式等

int number=123;
或者int c=a+b;

2.1.5 数据类型转换

  1. 自动转换:不需要显式声明,由系统自动完成,低精度——>高精度
    在这里插入图片描述

    虚线表示数据转换过程中可能存在精度损失

    规则:

    1. 有double,变double

    2. 否则,有float,变float

    3. 否则,有long变long

    4. 否则,两个都变int

      例:两个byte数据进行运算,结果为int

    此外,Boolean型只有true和false两种结果,与整型和字符型不兼容,所以不能对boolean型进行转换

  2. 强制类型转换:要求程序显式说明

    (目标类型)变量名
        double x=3.14;
        int n=(int)x;
    

例:整数运算如何得到小数

int a=10,b=3;
double a/b;    //结果等于3,要得到3.33333,应采用以下表达式中任意一种
d=(double)a/b;        
d=a/(double)b;
d=(double)a/(double)b;

2.2 运算符和表达式

Java运算符图表

运算符分类结合顺序运算符优先级
分隔符左结合. [] ( ) ; ,1
一元运算符右结合! ++ – - ~2
算术运算符左结合* / % + -3
移位运算符左结合<< >> >>>4
关系运算符左结合< > <= >= instanceof = = !=5
位运算符左结合& ^ |6
逻辑运算符左结合&& ||7
三目运算符右结合布尔表达式?表达式1:表达式28
赋值运算符右结合= *= /= %= += -= <<= >>= >>>= &= *= |=9

2.2.2 关系运算符

运算结果为逻辑型的值true/false.

int a=5,b=4,c=3;
a>b = true
a>b>c //编译错误,a>b结果为true(逻辑型值),无法与c(整型)比较

由于浮点型数据存储时有舍入误差,可能导致逻辑上应该相等的两个数值不相等,因此应该避免对实数作相等比较。
例如,x,y均为浮点型,进行相等比较时,要避免使用x==y,可以写为Math.abs(x-y)<1e-6,表示x与y的差值绝对值小于10-6。

2.2.3逻辑运算符

简洁运算(&&和||)与非简洁运算(&和|)

int x=3,y=5;
boolean b=x>y & ++x=--y;  //b=false,x=4,y=4
boolean b=x>y && ++x=--y; //b=false,x=3,y=5

2.2.4 位运算

|按位或 换位二进制运算,对应位有一个是1,就是1
&按位与 换位二进制运算,对应位有是0,就是0
^按位异或 换位二进制运算,对应位相同是1,不同是0

4 & 2 = 0 0100 & 0010 = 0000
6 | 2 = 6 0110 | 0010 = 0110
6 ^ 2 = 4 0110 ^ 0010 = 0100
9 >> 2 = 2 1001 右移2位为 0010
1 << 2 = 4 0001 左移2位为 0100

2.2.5 赋值运算

运算符示例等效表达式
+=a+=ba=a+b
-=a-=ba=a-b
*=a*=ba=a*b
/=a/=ba=a/b
%=a%=ba=a%b
&=a&=ba=a&b
^=a^=ba=a^b
>>=a>>=ba=a>>b
<<=a<<=ba=a<<b
>>>=a>>>=ba=a>>>b

2.2.6 条件运算符

条件运算符是唯一的三目运算符,格式为:
表达式1?表达式2:表达式3
其中表达式1可以为关系表达式或者逻辑表达式,整个条件表达式的执行过程为:求解表达式1的值,若表达式1的值为true则取表达式2的值作为条件表达式的结果,若表达式1的值为false则取表达式3的值作为条件表达式的结果。

2.3 流程控制

2.3.1 顺序结构

  • J语言不允许复合语句内声明的变量与复合语句外声明的变量同名。

2.3.2 if 语句

  - 单分支形式
    if(条件表达式)
          语句块

  - 双分支形式
     if(条件表达式)
          语句块1
     else
          语句块2
  
  - 多分支形式
    if(条件表达式1)
          语句块1
    else if(条件表达式2)
          语句块2
~
  else 
          语句块 n+1

else的就近匹配原则:else总是和与它最近的if配对,可用{}来改变匹配方式

if(x >=0)
{
   if (y >=0)
         sign = 1 ;
}
 else
     sign = 1

2.3.3 switch语句

switch(表达式)    ///表达式的值只能是byte\short\int\char型
{
   case 常量表达式 1:
        语句块1
        break;
   case 常量表达式2;
        语句块2
        break;
   default:
        语句块n+1
}

2.3.8 跳转语句

2.3.8.1break 语句

结束本循环语句的执行

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Asio otus

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值