> 文档中心 > 【零基础学Java】第六天 Java运算符,标识符,输入语句,控制结构,类和对象的注意事项

【零基础学Java】第六天 Java运算符,标识符,输入语句,控制结构,类和对象的注意事项


前言

1.双非在校大学生,想通过自学Java进大厂

2.给跟我一样的大学生分享我的经历,和学习资源

3.本版块将会记录从Java入门到就业的所有学习笔记和资源

4.我还会分享我在学习Java中遇到的各种问题和各种解决方法

1.运算符,标识符,输入语句的注意事项

1.% 的本质

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.运算符优先级(大致)
  1. (),{}等

  2. 单目运算符! ~ – ++

  3. 算术运算符 + -

  4. 位移运算符 <> >>> 位移

  5. 比较运算符 = instanceof(检查是否是类的对象) == !=

  6. 逻辑运算符 & ^ | && ||

  7. 三目运算符 ? :

  8. 赋值运算符 != ^= &= >>>= >>= <<= -= += %= /= *= =

7.标识符规则

标识符包含26个英文字母大小写,0-9,_ 或 $ ,不能是数字开头,不能含空格,不可用关键字和保留字,但可以包含。

8.标识符命名规范
  1. 包名:多单词组成时,所有字母都用小写。//com.hsp.crm

  2. 类名,接口名:多单词组成时,所有单词首字母都大写。//TankShotGame

  3. 变量名,方法名:多单词组成时,第一个单词首字母小写,第二个单词开始都大写。//tankShotGame

  4. 常量名:所有字母都大写。多单词时,每个单词用下划线连接。//TAX_RATE

2.键盘输入

接受用户的输入

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()是在堆区又新建了一个对象并指向它,所以接下来的改变都是改变的新建的那个对象里的数据。