一、IDEA项目结构
层级关系:project–>module–>package–>class
project中可以创建多个module
module中可以创建多个package
package中可以创建多个class
二、IDEA中常用快捷键
psvm + enter :快速生成main方法
sout:+ enter :快速生成输出语句
alt + 1 :打开/隐藏 工程目录结构
alt + 4 : 打开/隐藏 控制台
Ctrl + alt + L : 格式化代码
alt + enter : 代码修正提示
Ctrl + D : 向下复制一行
alt + shift + ↑ : 上移当前行
alt + shift + ↓ :上移当前行
三、键盘录入
1.导包:import java.util.Scanner;
2.创建对象:Scanner sc = new Scanner(System.in);
3.使用变量接收数据:int i = sc.nextInt();
四、标识符定义规则
由数字、字母、下划线(_)和美元符($)组成
不能以数字开头
不能是关键字
区分大小写
五、类型转换
1.隐式转换:将数据类型中,取值范围小的数据,给取值范围大的类型赋值,可以直接赋值
byte --> short --> int --> long --> float --> double
char --> int --> long --> float --> double
[注]byte short char三种数据在运算的时候,不管是否有更高的数据类型,都会提升为int,然后再进行运算
2.强制转换:把一个表示数据范围大的数值或者变量赋值给另一个表示数据范围小的变量
格式:目标数据类型 变量名 = (目标数据类型)值或变量;
六、逻辑运算符
1.逻辑与&:无论左边真假,右边都要执行。
短路与&&:如果左边为真,右边执行;如果左边为假,右边不执行。
2.逻辑或 |:无论左边真假,右边都要执行。
短路或 || :如果左边为假,右边执行;如果左边为真,右边不执行。
七、Random
1.导包:import java.util.Random;
2.创建对象:Random r = new Random();
3.获取随机数:int number = r.nextInt(10); // [0,10)
八、数组
定义格式:数据类型[] 变量名
数据类型 变量名[]
动态初始化:初始化时只指定数组长度,由系统为数组分配初始值。
格式:数据类型[] 变量名 = new 数据类型[数组长度]
九、JAVA中内存分配
栈内存:方法运行时,进入的内存,局部变量都存放于这块内存中
堆内存:new出来的内容都会进入堆内存,并且会存放地址值
方法区:字节码文件(.class文件)加载时进入的内存
本地房发栈:调用操作系统相关资源
寄存器:交给cpu去使用
十、位运算符 (二进制的运算,先将十进制转成二进制后再进行运算)
&位与:遇false则false,遇0则0
| 位或:遇true在true,遇1则1
-
^ 位异或:相同为false,不同我true
- 取反:全部取反,0->1,1->0
<< :有符号左移,右边补齐0
>> :有符号右移,用符号位进行补位
十一、方法
1.方法定义: public static void 方法名(){
}
方法调用:方法名();
2.带参数方法:
定义格式: public static void 方法名(参数) {…}
public static void 方法名(数据类型 变量名){…}
调用格式:方法名(参数);
方法名(变量名/常量值)
3.带返回值方法
定义格式: public static 数据类型 方法名(参数){ return 数据; }
调用格式:数据类型 变量名 = 方法名(参数);
作用:用于给对象的数据(属性)进行初始化
4.构造方法 (构建、创建对象的时候,所调用的方法)
格式:1)方法名与类名相同,大小写也要一致
2)没有返回值类型
3)没有具体的返回值
5.方法调用:
有static的静态方法直接可直接调用
非静态方法需要实例化(对象类型 对象名 = 对象值)