4.第一章 Java基础语法 第二节 Java中的变量与运算符

1.变量

变量就是系统为程序分配的一块内存单元,用来存储各种类型的数据。由于该存储单元中的数据可以发生改变,因此得名为"变量"。

1.1变量分类

1.1.1按所属的数据类型划分

基本数据类型变量

引用数据类型变量

1.1.2按被声明的位置划分

局部变量:方法或语句块内部定义的变量

成员变量:方法外部、类的内部定义的变量

Ps:类的外面不能有变量的声明

1.2 数据类型

由于变量记录的数据内容大小不同,导致所需的存储单元大小不同,在Java语言中使用数据类型的概念加以 描述.

字节是计算机信息技术用于计量存储容量的一种计量单位,作为一个单位来处理的一个二进制数字串,是构成信息的一个小单位。Java 中的字节是八位的字节,即它包含八位的二进制数。

八大基本类型

类型占用内存值范围默认值
整数型(int)4字节-2 147 483 648 ~ 2 147 483 647(稍大于 20 亿)0
浮点型(float)4字节-3.40292347E+38-3.40292347E+380.0f
短整数型(short)2字节32768-327670
长整数型(long)8字节-9 223 372 036 854 775 808L ~ 9 223 372 036 854 775 807L0
字节型(byte)1字节-128-1270
双精度型(double)8字节-1.79769313486231570E+308-1.79769313486231570E+3080.0d
布尔型(boolean)1字节True或flaseFlase
字符型(char)2字节\u0000-\ufff\u0000

1.3标识符

Java对包、类、方法、参数和变量等要素命名时使用的字符序列称为标识符。规则如下: l 由字母、数字、下划线(_)和美元符号($)组成。

不能以数字开头。 l

区分大小。 l

长度无限制。 l

不能是Java中的保留关键字。

1.4类型转换

boolean类型不能转换成任何其它数据类型。

1.4.1自动类型转换

容量小的类型自动转换成容量大的数据类型 byte,short,int->float->long->double byte,short,int不会互相转换,它们三者在计算时会转换成int类型

1.4.2强制类型转换

容量大的类型转换成容量小的数据类型时,要加上强制转换符 longl=100L; inti=(int)l; 有可能造成精度降低或数据溢出,使用时要小心。

1.5关键字大全

在这里插入图片描述

1.6二进制

计算机中信息的存储单位 位(Bit) :

表示一个二进制数码0或1,是计算机存储处理信息的最基本的单位。

字节(Byte) :

一个字节由8个位组成。它表示作为一个完整处理单位的8个二进制数码。

1.6.1补码(符号位+数值)

在计算机中,计算机以补码形式标识。

一个正数的补码和其原码相同

负数的补码,数值位取反,末位加一。

主要原因:

使用补码,可以将符号位和其它位统一处理;同时,减法也可按加法来处理。另外,两个用补码表示的数相加时,如果最 高位(符号位)有进位,则进位被舍弃。

1.6.2进制之间的互换

二进制和十进制之间的互换

按权相加:

把二进制数首先写成加权系数展开式,然后按十进制加法规则求和。

例:原码1011.01=1×23+0×22+1×21+1×20+0×2-1+1×2-2 =8+0+2+1+0+0.25 =11.25

十进制转换成二进制

整数部分:"除2取余,逆序排列"法

小数部分:"乘2取整,顺序排列"法

十六进制

二进制表示法太冗长,所以在程序中一般喜欢用十六进制。

基数为十六,逢十六进一。

它用abcdef表示从0-9之上的值。

Java中十六进制数据要以0x或0X开头。如:0x23D

八进制:基数为八。

Java中八进制数据要以0开头。如:0123

1.7 方法

1.7.1概述

方法用于封装一段特定的逻辑功能。方法的主要要素有:权限修饰符方法名、参数列表和返回值。

1.7.2格式

权限修饰符 返回值类型 声明方法名称(小写字母) (参数列表)

{ 方法中封装的逻辑功能; return返回值; }

1.7.3权限修饰符详解

在这里插入图片描述

1.7.4返回值详解

方法调用结束后可以返回一个数据,称之为返回值。

方法在声明时必须指定返回值的类型。

通过return语句返回,return语句的作用在于结束方法且将数据返回。

如果方法没有返回值(即方法不需要返回数据),需将返回值类型声明为void。

1.7.5参数列表详解

方法的参数列表:在调用时传递给方法,需要被方法处理的数据

在方法定义时,需要声明该方法所需要的参数变量

在方法调用时,会将实际参数值传递给方法的参数变量

必须保证传递参数的类型和个数符合方法的声明。

1.7.6 方法示例

public void  say(int a,int b){ 
    System.out.println("方法say正在执行"); 
}

2.运算符

2.1算数运算符

在这里插入图片描述

++:如果是变量前缀:先对此变量加1,再执行其他的操作。

如果是变量后缀:先执行当前语句的其他操作,再对此变量加

–: 如果是变量前缀:先对此变量减1,再执行其他的操作。

如果是变量后缀:先执行当前语句的其他操作,再对此变量减1

System.out.println(”++1”);先执行++1,再打印。

public class Demo1 {
    public static void main(String[] args) {
        int a = 5;
        int b = 5;
        System.out.println(++a);//输出结果6
        System.out.println(b++);//输出结果5

    }
}

2.2赋值运算符

在这里插入图片描述

2.3关系运算符

在这里插入图片描述

2.4.逻辑运算符

在这里插入图片描述

&&与&,||与|的区别

&&,||:当左边表达式为false时,不再进行右边表达式的运算

2.5字符串连接运算符

Strings=“He”+“llo”; 结果"Hello" "+"除了可用于字符串相连接,也能将字符串与其它的数据类型相连成一个新的字符串。

如:Strings=“x”+123; 结果"x123"

2.6三目运算符

X?Y:Z X为boolean类型表达式,先计算x的值,若为true,整个三目运算的结果为表达式y的值,否则整个运算结果为表达式z的值。

例: intscore=75; Stringtype=score>=60?“及格”:“不及格”;

2.7操作符优先级(了解)

在这里插入图片描述

img

2.8转义字符

在这里插入图片描述

3.一些小问题

3.1变量的定义

3.3.1当定义一个整数时,默认为int

  byte b = 129//会报错,默认数字为int,需要强制类型转换
  byte b = (byte)129;
  long c = 160000000000;//会报错,整数默认为int
  long c = 160000000000l;//long类型的定义

3.3.2当定义一个小数时,默认为double

 float d = 0.3;//会报错,默认数字为int,需要强制类型转换
 float d = 0.3f;
      或
 float d = (float)0.3;

3.2 a+=5与a=a+5的区别

a+=5相当与a=a+5;但这里的5是a的类型,而不是默认的int

a=a+5;5是int

public class Demo2 {
    public static void main(String[] args) {
        byte a = 5;
        a+=5;
        System.out.println(a);//输出结果为10
         byte b = 5;
        b= (byte) (b+5);//报错强转成byte
        System.out.println(a);
    }
}

3.3byte值域问题

byte的值从-128-127,但在不超过int的范围都可以进行强制类型转换,当超过127时,从-128开始循环

public class Paper {
    public static void main(String[] args) {
        //超过int的范围,报
       // byte a = (byte) 160000000000;
         byte a = (byte) 1600000;   
        System.out.println(a);//输出结果为0
    }
}

3.4char的定义问题

  
   public class Paper {
    public static void main(String[] args) {
     //char c1 = 'AA' //报错char类型只能存储一个字符
        char c1 = 'a';
        //输出结果为97,返回A的ASCII码值
        System.out.println((int) c1);
        char c1 = 97;
        //输出结果为a,返回在ascii码表中的97对应的字符
        System.out.println(c1);
    }
}
   

附录ASCII码表(部分)
在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值