2.数据类型、方法、运算符

本文详细介绍了Java中的数据类型,包括整数、浮点、字符、布尔类型及其转换,强调了数据类型存储的问题,如char类型存储中文汉字的特性。此外,还讨论了方法的定义、参数、返回值以及局部变量和成员变量的区别。同时,涵盖了算术、关系、逻辑、赋值等运算符的使用规则。最后,提到了运算符的优先级,帮助理解复杂的表达式执行顺序。
摘要由CSDN通过智能技术生成

2.1 数据类型介绍

数据类型分为两种

  • 简单数据类型(8种)
    • 数值型
      • 整数类型(byte,short,int,long)
      • 浮点类型(float,double)
    • 字符型(char)
    • 布尔型(boolean)
  • 引用数据类型(3种)
    • 类(class)
    • 接口(interface)
    • 数组

8种简单数据类型的有效位

数据类型占用存储空间(字节)有效范围(bits)
boolean1字节1位
byte1字节8位
char2字节16位
short2字节16位
int4字节32位
float4字节32位
long8字节64位
double8字节64位

数据类型存储问题

  • 用char能否存储一个中文汉字?
    • 能。Java中的char是采用unicode编码,占据2字节。一个中文汉字正号占据2字节
  • 用Java编写的程序在与C语言编写的程序进行交互或通信时,C中使用char声明了一个变量,将这个变量的值传到Java中,Java中能不能使用char声明的变量来接收
    • 不能。C中的char型变量占一个字节,Java中的char型占据两个字节,会导致两边的不一致,为了达到统一会选择byte

2.2 整数类型

  • 整数类型用来存储整数数值,即没有小数部分的数值。可以是正数,也可以是负数。

  • 4种整型数据的不同取值范围如下表:

  • 类型占用存储空间表示数值范围
    byte1字节-128~127
    short2字节-215~215-1(-32768-32767)
    int4字节-231~231-1(-2147483648-2147483647)
    long8字节-263~263-1
  • Java语言整型常量的三种表示形式:

    • 十进制整数
    • 八进制整数,要求以0开头
    • 十六进制整数,要求以0x或0X开头
  • Java语言的整型常量默认为int型

  • 声明long型常量,可以在常量后面加‘l’或“L”

2.3 浮点类型

  • 浮点类型表示有小数部分的数字,分为单精度浮点类型(float)和双精度浮点类型(double)。它们有不同的取值范围,如下表:

  • 类型占用存储空间表示数值范围
    float4字节-3.403E38~3.403E38
    double8字节-1.798E308~1.798E308
  • Java浮点类型常量有两种表示形式

    • 十进制数形式,必须含有小数点
      • 例:double d =2.14;
    • 科学记数法形式,字母e/E后必须为整数
      • 例:double d =2.14e2;//2.14*10^2
      • double d =2.14E10;//2.14*10^10
  • Java浮点型常量默认为double型,如要声明一个常量为float型,则需在数字后面加f或F

2.4 字符类型

  • char型数据用来表示通常意义上“字符”,用来存储单个字符;

  • 字符常量使用单引号括起来的单个字符

    • 例:char c = ‘A’; //表示一个字母
    • char c = ‘你’; //表示一个中文汉字
    • char c = 20556; //通过下标值获取Unicode编码中的字符
  • Java字符采用Unicode编码,每个字符占两个字节,因而可用十六进制编码形式表示(前缀为u表示Unicode)

    • 例:char c = ‘\u0061’; //通过Unicode编码得到一个字符
  • Java语言中还允许使用转义字符’\ '来将其后的字符转变为其它的含义

    • 例:char c = ‘\n’; //代表换行符
  • 转义符含义Unicode值
    \b退格\u0008
    \n换行\u000a
    \r回车\u000d
    \t制表符\u0009
    \ "双引号\u0022
    \ ’单引号\u0027
    \ \反斜杠\u005c

2.5 布尔类型

  • boolean类型适用于逻辑运算,一般用于程序流程控制中作为条件判断。

  • boolean类型数据只允许取值true或false,不可以0或非0的整数替代true和false。

  • 布尔值不能与整数类型进行转换

  • 例:

    • boolean b = false;
      if(b){}
      

2.6 数据类型转换

有两种:
在这里插入图片描述

  • 自动类型转换:将低数据类型的值赋给高数据类型的变量

    • 两种类型兼容

    • 目标类型表示的数值范围大于源类型

    • 有可能会丢失精度(虚线之间)

      • 例:

      • byte b = 100;
        short s = b; 
        int i =b;
        int j =123;
        double d = j;
        
  • 强制类型转换:将搞数据类型的值赋给低数据类型的变量

    • int m = 123;
      short m1 = (short)m;
      byte m2 = (byte)m;
      float f = 3.14f;
      int n = (int)f;
      System.our.println("n = " + n); // n = 3,丢失了精度
      

2.7 成员方法的定义

  • 方法是类或对象行为特征的抽象。

  • Java中的方法不能独立存在,所有的方法必须定义在类里。

  • 使用“类名.方法”或“对象.方法”的形式调用。

  • 语法格式:

    • 权限修饰符 返回值类型 方法名{
          方法体
          return 返回值;
      }
      
  • 方法各种形式:无参无返回值、无参有返回值、有参无返回值、有参有返回值

2.8 成员方法的参数

  • 方法可有0到多个参数,参数类型可以是任意数据类型
    • 参数为引用数据类型时:
      • 当对象实例作为参数传递给方法时,传递的是对象的引用,为址传递,接受参数的方法中可以改变参数的值
    • 参数为简单数据类型时:
      • 传递的是参数的副本,为值传递,接受参数的方法中不会改变参数的值
  • 方法参数也是局部变量

2.9 成员方法的返回值

  • 方法可以有返回值类型声明,也可以没有,没有时使用void声明

  • 方法返回值类型可以是任意类型

  • 有返回值的方法体中必须有且仅有“一个return值“语句能被执行,执行后方法执行会立即结束

  • 返回值与方法返回值类型可以相同或自动转换为方法返回值类型,或强制转换为方法返回值类型

  • 调用有返回值的方法时,可以接收返回值,也可以不接收

  • 例:

    • public class Demo{
          int a = 1000;
          public Demo method(){
              System.out.println("method");
              return new Demo();
          }
          public static void main(String[] args){
              Demo d = new Demo();
              d.method(); //没有接收方法的返回值
              
              Demo d2 = new Demo(); //接收方法的返回值
              System.out.println(d2.a);
          }
      }
      /*控制台显示为:
      method
      1000
      */
      

2.10 局部变量和成员变量

变量声明语法:

  • 数据类型 标识符 = 值,…;
    • 可以声明变量并初始化
    • 也可先声明变量再初始化

局部变量:

  • 定义在类的方法内或代码块内的变量,方法的参数也是局部变量
  • 局部变量的作用域范围:只在定义它的方法体内或代码块内有效
  • 局部变量在使用之前,必须先初始化

全局变量(成员变量):

  • 一个类中既不在方法体内也不在程序块内定义的变量

  • 作用域范围:类中所有的方法和代码块都可以访问成员变量

  • 对于没有初始化的成员变量,系统会指定默认的值

    • 成员变量的默认初始值:

    • 数据类型默认值
      byte0
      short0
      int0
      long0L
      float0.0f
      double0.0d
      char\u0000(空字符)
      booleanfalse
      object ref(引用数据类型)null

2.11 运算符介绍

  • 分隔符:,,;,[],()
  • 算术运算符:+,-,*,/,%,++,–
  • 关系运算符:>,<,>=,<=,==,!=
  • 逻辑运算符:!,&,|,^,&&,||
  • 赋值运算符:=
    • 扩展赋值运算符:+=,-=,*=,/=
  • 三目运算符:?
  • 字符串连接运算符:+

2.12 算术运算符

  • Java中的算术运算符主要有+(加)、-(减)、*(乘)、/(除)、%(取余),它们都是二元运算符。
    • 二元运算符:这个运算符左右两侧必须有两个操作数。
  • “+”和“-”运算符还可以作为数据的正负符号。
  • 自增和自减运算符
    • 自增、自减运算符是单目运算符。
    • 对于需要对操作数进行加1或减1操作时,可以使用递增或递减运算符
      • 递增:++
        • i++:先用i变量的值,然后再进行加1运算;先用后加
        • ++i:先进行加1运算,再使用i变量的值;先加后用
      • 递减:–
        • i–:先用后减
        • –i:先减后用

2.13 关系运算符

  • ==:判断相等
  • !=:判断不等
  • >:判断大于
  • <:判断小于
  • >=:判断大于等于
  • <=:判断小于等于

2.14 逻辑运算符

  • !:逻辑非
    • 对结果取反
  • &:逻辑与
    • 只要其中一个位false,那么结果就为false
  • |:逻辑或
    • 只要其中一个变量为true,那么结果就为true
  • ^:逻辑异或
    • 两个逻辑变量相同则为false,相异则为true
    • 两个逻辑变量相异,输出才为1
  • &&:短路与
    • 只要其中一个表达式或方法的返回值为false,那么结果就为false,且不执行之后的操作
  • ||:短路或
    • 只要其中一个表达式或方法的返回值为true,那么结果就为true,且不执行之后的操作

2.15 赋值运算符

  • 赋值运算符“=”是最常用的一种运算符。它将等于号右边的表达式的值赋给左边的变量
    • 赋值运算符的优先级很低
    • 赋值运算符先计算右边,再计算左边
    • 赋值表达式也有值
  • 使用“+=,-=,*=,/=”时,会进行类型转换(含强转),转换成我们定义的变量类型

2.16 三目运算符

语法格式:

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

2.17 字符串连接符

  • 运算符“+”用于数值类型数据,是加法运算符
  • 用于字符串类型(String)数据中,是连接符
  • 字符串+数值,Java会自动将数值转换成字符串,然后两个字符串相连生成一个新的字符串
    • 只要+“加号”两边任意一边出现了字符串,那么+就被当成字符串连接符使用

2.18 运算符的优先级

表达式:

  • 表达式是运算符和操作数的结合,它是任何一门编程语言的关键组成部分
  • 表达式允许程序员进行数学计算、值的比较、逻辑操作以及在Java中进行对象的操作

运算符的优先级:

  • 下面的表格说明了各个运算符的优先顺序,优先级高的运算符放置在表的上部,而在同一行的运算符拥有同样的优先顺序

  • 除了单目运算符、赋值运算符以及条件运算符,其它的运算符都是从左到右结合的。

  • 运算符优先级口诀:非、算、关、与或、赋

  • 运算符说明Java运算符
    分隔符. [] () , ;
    单目运算符+ - ~ ! ++ –
    创建或类型转换New
    乘法/除法* / %
    加法/减法+ -
    关系< <= >= > instanceof
    等价== !=
    按位与&
    按位异或^
    按位或|
    条件与&&
    条件或||
    条件?:
    赋值=
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值