方法
方法的声明:
- 方法的要素:修饰符 返回值 方法名称 参数列表 方法体
- 写一个方法:学习的方法
方法的调用:
- 如何学习?
举例:学习需要另一半,学习最后会收获爱情。public String stud0(Student girl){ //做活动的过程 //使用输出语句模拟一下 name+"和“+gril.name+”一起学习“; return ”爱情“; }
目前为止:适用对象 . 方法名字();来进行调用,括号内要使用的参数(如果有的话)
变量类型
- 全局变量:
- 位置:在方法内部
- 使用方法:使用前没有初始的默认值,需要动手初始化
- 作用范围(作用域):当前的方法的代码块内
- 成员变量
- 位置:在方法外部,但是在类的内部
- 使用方法:使用前有默认值
- 作用范围:当前的整个类当中
整型 0
浮点型 0.0
布尔型 false
字符型 ’ ’
引用类型 null
-
内存划分:
- 方法区:放类的相关信息
- 堆:存放new操作之后产生的数据,各个线程之间共享
- 栈:存放的时变量的相关信息,每条线程拥有自己独立的栈
- 常量池:常量,在堆中
-
存储方式:
- 基本类型的存储方式:栈中开辟空间,直接保存值
- 引用类型的存储方式:栈中开辟空间保存变量,使用new的方式在堆区开辟空间保存数据,同时把堆区的内存地址赋值给栈。
操作符
数学运算操作符
- +:如果两侧都为数字,则代表加法运算
如果两侧出现字符串,则代表字符串拼接
需求:想让一个int类型的10,变成一个String类型的"10"该如何去做
可以用:10+’ ’ - -:减法运算,求操作数的差
- *:乘法运算,求操作数的乘积
- /:两种情况整除和不整除
- 浮点数转为整数,三种方法
- 去尾:不管小数部分是多少,统统不要
- 进1:只要存在小数部分,则整数部分加1,小数部分舍去
- 四舍五入:小于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的位数次方
移位步骤 :
- 遇到移位操作符,首先将数字转换为二进制的表示形式(补码)
- 再考虑是左移还是右移
- 再考虑补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,然后输出