📄个人简介
🔔作者简介:大家好,我是小学生!!🙈大二学生一枚,目前正在自学Java,如果大家觉得我写的还不错的话,希望大家给我点赞👍+收藏⭐+评论📢,有什么写的不对的地方还请大家多多指教🙏,共同进步。
📝个人主页:小学生!!
📖系列专栏
🌕阶段一:Java基础编程
💦目前已原创10篇🌕阶段二:数据结构与算法
🌕阶段三: *** 作系统
🌕阶段四:计算机网络
🔥Java运算符,标识符,输入语句,控制结构,数组,类和对象的注意事项
文章目录
- 🍁1.运算符,标识符,输入语句的注意事项
- 🍂1.% 的本质
- 🍂2./ 的陷阱
- 🍂3.短路&& 与 逻辑& 的区别 (||与|类似)
- 🍂4.逻辑异或( ^ )
- 🍂5.复合赋值运算符会进行类型转换
- 🍂6.运算符优先级(大致)
- 🍂7.标识符规则
- 🍂8.标识符命名规范
- 🍁2.键盘输入
- 🍁3.位运算
- 🍁4.控制结构
- 🍁5.类和对象
- 🍂1.Java内存的结构分析
- 🍂2.方法的传参机制
a % b =a - a / b * b。 -8 % -3 = - 2 , 8 % -3 = 2 ,-8 % 3 = - 2
🍂2./ 的陷阱double a = 5 / 10 ; double b = 5.0/10
//a = 0.0 b = 0.5
🍂3.短路&& 与 逻辑& 的区别 (||与|类似)
&&:如果第一个条件为false,则第二个条件不判断,结果为false,效率高
&:不管第一个是否为false,第二个条件都要判断,效率低
🍂4.逻辑异或( ^ ) 🍂5.复合赋值运算符会进行类型转换byte a=3;
a+=2;//正确,等价于a = (byte)(a+2);
a++;//正确,等价于a = (byte)(a+1);
a=a+2;//错误,int类型不能自动转换成byte
🍂6.运算符优先级(大致)
🍂7.标识符规则
🧅(),{}等
🧅单目运算符! ~ – ++
🧅算术运算符 + -
🧅位移运算符 << >> >>> 位移
🧅比较运算符 < > <= >= instanceof(检查是否是类的对象) == !=
🧅逻辑运算符 & ^ | && ||
🧅三目运算符 ? :
🧅赋值运算符 != ^= &= >>>= >>= <<= -= += %= /= *= =
标识符包含26个英文字母大小写,0-9,_ 或 $ ,不能是数字开头,不能含空格,不可用关键字和保留字,但可以包含。
🍂8.标识符命名规范🍁2.键盘输入
🧅包名:多单词组成时,所有字母都用小写。//com.hsp.crm
🧅类名,接口名:多单词组成时,所有单词首字母都大写。//TankShotGame
🧅变量名,方法名:多单词组成时,第一个单词首字母小写,第二个单词开始都大写。//tankShotGame
🧅常量名:所有字母都大写。多单词时,每个单词用下划线连接。//TAX_RATE
接受用户的输入
1.🧅引入Scanner类所在的包。
2.🧅创建 Scanner 对象,new创建一个对象。
3.🧅接受用户的输入,使用相关的函数。
import java.util.Scanner;
public class Input{
public static void main(String [] args){
Scanner scanner = new Scanner (System.in);
System.out.println("请输入名字:");
String name = scanner.next();
System.out.println("我的名字是:"+ name);
}
}
🍁3.位运算
1.🧅二进制以0b或0B开头,八进制以0开头,十六进制以0x或0X开头。
2.🧅位运算符:按位与&,按位或|,按位异或^,按位取反~,算术右移 >>,算术左移<<,逻辑右移>>>,没有<<<符号。
🧅算术右移:低位溢出,符号位不变,并用符号位溢出补高位,本质是/2。
🧅算术左移:符号位不变,低位补0,本质是*2。
🧅逻辑右移:低位溢出,高位补0。
🍁4.控制结构1.🧅switch(表达式)中表达式的返回值数据类型必须是:byte,short,int,char,enum,String
2.🧅break是退出所有循环,continue是退出当前循环,return是跳出所在方法。
🍁5.类和对象 🍂1.Java内存的结构分析🍂2.方法的传参机制🧅栈:一般存储基本数据类型(局部变量)
🧅堆:存放对象
🧅方法区:常量池(常量,比如字符串),类的加载信息
🧅基本数据类型的传参机制:传递的是值(值拷贝),形参的改变不会影响实参。
🧅引用数据类型的传参机制:引用类型传递的是地址(传递也是值,但值是地址),可以通过形参改变实参!
🧅注意:当在方法中出现 p = null 和 p = new Person (); 这时实参并不会发生变化。
🧅原因如下:
方法在调用时会在栈中另外开辟一段独立的空间,p=null只是改变了在它独立空间内的数据,并没有改变main空间内的和堆区对象的数据。而 p = new Person()是在堆区又新建了一个对象并指向它,所以接下来的改变都是改变的新建的那个对象里的数据。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)