基础IDEA
IDEA项目结构介绍
project(项目)
module(模块)
package(包)
class(类)
- src 存放源码文件.java
- run一个文件时,out目录中每个类都先编译生成.class文件
快捷键
- ctrl + d:删除当前行
- ctrl + alt + 向下箭头:复制当前行
- alt + /:补全代码
- alt + r:快速运行
- alt + insert 或 generate constructor:生成构造器
- ctrl + h:查看继承关系
- ctrl + b:快速定位到方法
- .var:自动分配变量名
- psvm:public static void main(String[] args)
- sout:System.out.println(“”);
包
-
本质:创建不同的文件夹保存类文件
-
基本语法
- package com.test
- 声明当前类所在的包,需要放在类的最上面,一个类最多只有一个package
-
常用的包
- lang
- util:系统工具包
- net:网络包
- awt:界面开发
-
如何导入?
- import
运算符
类型转换
-
隐式转换(自动类型提升):取值范围小->取值范围大
-
byte < short < int < long < float < double
-
小与大运算,小会转换为大再进行运算
-
byte short char运算时会先提升为int再运算
-
-
强制类型转换:取值范围大->取值范围小,不允许直接赋值
字符串 ‘+’ 操作
- +为字符串连接符号
- 连续加时从左到右逐个执行:1+99+“黑马” = “100黑马”
字符 ‘+’ 操作
- 字符+字符:ascii码表数字相加
自增自减运算符
- ++ –
- 无论是放前面还是放后面,单独一行时结果都相同
- 参与计算时:int a = 10; int b = a++/++a;
- a++ 先用后加 b = 10
- ++a先加再用 b = 11
赋值运算符
- += -= *= /= %=
逻辑运算符
- & 逻辑与
- | 逻辑或
- ^ 逻辑异或:相同为true,不同为false
- ! 逻辑非:取反
- 短路逻辑运算符:&& ||
- 左移 <<,低位补0
- 右移 >>,高位补0(正数)或1(负数)
- 无符号右移 >>>,高位补0
三元运算符
?:结果必须被使用
原码反码补码
一位数叫做比特位bit,8bits = 1byte字节
-
原码(-127~+127)
-
反码:符号位不变,数值位取反(-127~+127)
-
补码:负数反码+1(为了解决负数计算跨0问题出现的,多一个值-128,无原码反码)
-
计算机中存储和计算都是补码形式
-
基本数据类型
- byte:一个字节 0000 1010
- short:两个字节 0000 0000 0000 1010
- int:四个字节 0000 0000 0000 0000 0000 0000 0000 1010
- long:八个字节 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1010
-
隐式转换原理:前面补0
-
强制转换原理:去掉前面的0
判断和循环
if
if (表达式) {
语句;
} else {
语句;
}
if (表达式) {
语句;
} else if (表达式){
语句;
} else {
语句;
}
switch
switch(表达式){
case 值1:
语句;
break;
default:
语句;
break;
}
-
Attention:
-
case跟和表达式比较的值
-
case只能说字面量,不能是变量
-
case不能重复
-
-
default:
- 可以省略,不建议,不一定写在最下面
-
case穿透
- 没有写break,会继续执行下一个case,直到遇到break或者右大括号
- 使用场景:多个case语句重复,可以用穿透简化代码
for
for(int i = 0; i < n; i++)
while
while(判断){
语句;
}
数组
定义
-
int []array
-
int array[]
静态初始化
-
手动指定元素,系统根据元素个数计算出长度
-
int[] array = new int[]{11, 22, 33};
-
数组元素访问
- 索引:下标从0开始
-
数组遍历
- 长度属性:length 调用方式:数组名.length
- 数组名.fori
动态初始化
-
只明确元素个数,不明确具体数值,又系统给出默认初始化值
-
数据类型[] 数组名 = new 数据类型[数组长度]
-
int[] arr = new int[3];
-
数组默认初始化值
- int:0
- double / float: 0.0
- char: ‘/u0000’
- string: null
- bool: false
- 引用数据类型:null
常见问题
- 索引越界异常:0 ~ length-1
数组内存
- 栈:方法运行时使用的内存,加入方法栈中执行
- 堆:存储对象或者数组,new创建的都在堆内存
- 方法区:存储可以运行的class文件
- 本地方法栈:JVM使用操作系统功能时使用,与开发无关
- 寄存器:CPU使用,与开发无关
方法
- 程序中最小的执行单元
- 提高代码复用性、可维护性
- 方法与方法之间是平级关系,不能相互嵌套
方法的重载
- 多个同名的方法,具有同种功能
- 每个方法具有不同的参数类型或参数个数(个数不同、类型不同、顺序不同)
- 不看返回值!
基本数据类型与引用数据类型
- 基本数据类型
- 引用数据类型:存储的是地址值,使用了其他空间的数据###