Java方法介绍与操作符

方法

方法的声明:

  • 方法的要素:修饰符 返回值 方法名称 参数列表 方法体
  • 写一个方法:学习的方法
    • 如何学习?
      举例:学习需要另一半,学习最后会收获爱情。
      public String stud0(Student girl){
                //做活动的过程
                //使用输出语句模拟一下
                name+"和“+gril.name+”一起学习“;
                return ”爱情“;
      } 
      
    方法的调用:
    目前为止:适用对象 . 方法名字();来进行调用,括号内要使用的参数(如果有的话)

变量类型

  • 全局变量:
    • 位置:在方法内部
    • 使用方法:使用前没有初始的默认值,需要动手初始化
    • 作用范围(作用域):当前的方法的代码块内
  • 成员变量
    • 位置:在方法外部,但是在类的内部
    • 使用方法:使用前有默认值
    • 作用范围:当前的整个类当中
                        整型 0
                        浮点型 0.0
                        布尔型 false
                        字符型 ’ ’
                        引用类型 null
  • 内存划分:

    • 方法区:放类的相关信息
    • 堆:存放new操作之后产生的数据,各个线程之间共享
    • 栈:存放的时变量的相关信息,每条线程拥有自己独立的栈
    • 常量池:常量,在堆中
  • 存储方式:

    • 基本类型的存储方式:栈中开辟空间,直接保存值
    • 引用类型的存储方式:栈中开辟空间保存变量,使用new的方式在堆区开辟空间保存数据,同时把堆区的内存地址赋值给栈。

操作符

数学运算操作符

  • +:如果两侧都为数字,则代表加法运算
         如果两侧出现字符串,则代表字符串拼接
         需求:想让一个int类型的10,变成一个String类型的"10"该如何去做
         可以用:10+’ ’
  • -:减法运算,求操作数的差
  • *:乘法运算,求操作数的乘积
  • /:两种情况整除和不整除
    • 浮点数转为整数,三种方法
    1. 去尾:不管小数部分是多少,统统不要
    2. 进1:只要存在小数部分,则整数部分加1,小数部分舍去
    3. 四舍五入:小于4舍去,大于等于5向上取整
      如果浮点数强转为整数,则会丢掉小数精度
  • %:求余运算,求操作数相除的余数

赋值操作符

  • =:将右边的值赋给左边,例:int a = 1;
  • +=:左右两边的和相加赋给左边例:a+=2–>a=a+2,前者会比后者多一步隐式的数据类型转换
  • -=:左边减去右边的差赋给左边,例:int a =5;a-=2;结果a的值为3
  • *=:两边数值相乘的值赋给左边,例:int a = 2;a*=2;结果a的值为4
  • /=:左边除以右边的值赋给左边,例:int a = 6;a/=2;结果a的值为3
  • &=:布尔类型操作符,例:int a,b; a&=b–>a=a&b;

比较操作符

  • > : 大于,例:int a = 1;int b = 2;System.out.print(a > b);其结果为false

  • < : 小于,例:int a = 1;int b = 2;System.out.print(a < b);其结果为true

  • >= : 大于等于,例:int a = 1;int b = 2;System.out.print(a >= b);其结果为false

  • <= : 小于等于,例:int a = 1;int b = 2;System.out.print(a <= b);其结果为true

  • ==:相等操作符,返回值是boolean
    + !!! 左右两边出现的类型
    左右为数字
    左右为引用类型
    一侧为数字,一侧为引用:编译报错

    如果想对比字符串的内用是否一致,可使用Object的equals();
    用法:字符串对象1.equals(字符串对象二);

  • !=:不等,和相等用法完全一样,但逻辑完全相反

位运算操作符:二进制运算

  • &:与 0&0=0 1&0=0 1&1=1 双一则一,有零则零
  • |:或 0|0=0 1|0=1 1|1=1 有1则1,双0则0
  • ^:异或 0^0=0, 0^1=1 ,1^1=0
  • ~:非

    示例1:

       int a=10 —> 0000 1010
       int b=11 —> 0000 1011
    计算
       a&b=1010 —> 10
       a^b=0001 —> 1

    示例2:

       a=10;b=11 —换位—> a=11;b=10;
    计算
       a=a^b;a=0001 b=1011
       b=a^b;a=0001 b=1010
       a=a^b;a=1011 b=1010

    • a=10 b=10 两个想同的数异或为0

逻辑运算符

  • 两侧都为布尔表达式,不然会报错
    &&:与、并且(短路), 两个条件同时为真时,结果为真
    ||:或、或者(短路), 两个条件有一个为真时,结果即为真
    !:非,(!+条件) 条件为真时,结果为假

    &&
      1<0 && 2>4 —>
      false && false = false
      false && true =false
      true && true =true
    ||
      1<0 || 2>4 —>
      false || false = false
      false || true =true
      true || true =true

移位运算符:二进制运算

   int a=12;
   内存中保存的:
   原码:00000000 00000000 00000000 0000 1100
   取反:11111111 11111111 11111111 1111 0011
   补码:11111111 11111111 11111111 1111 0100
   eg:-12>>:   ~             ~               ~      1111 1100
   取反:         ~               ~               ~      0000 0011 = 3 最后 = — 3

  • >>:带符号右移,算数右移。舍掉低位,在高位补符号位,正数补0,负数补1,移几位,除2的几次
  • >>>:表示不带符号右移。舍掉低位,在高位数直接补0;
  • <<:左移,舍掉高位,在低位上直接补0,相当于原数乘以对应2的位数次方

移位步骤 :

  1. 遇到移位操作符,首先将数字转换为二进制的表示形式(补码)
  2. 再考虑是左移还是右移
  3. 再考虑补0还是补1

三目运算符:i++与++i详解

i++ : 先引用原值,然后自加1。
++i : 先自加1,然后输出
i– : 先引用原值,然后自减1
–i : 先自减1,然后输出

示例:

  //eg01
  int i=10;
  int a = i++; // a=10,i=11  ---> a=i; i=i+1
  int b =++i; // b=12, i=12  --->  i=i+1;b=i
  
  //eg02
  int i=10;
  System.out.println(i++);
  //10 ,先引用原值,然后加1,也就是先输出i,然后i再加1
  
  //eg03
  int i=10;
  System.out.println(++i);
  //11 , 这次是先加1,然后输出
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值