【Java复习笔记】基础概念

1. 字面量

\t : 制表符 将前面的字符串的长度补齐到8,或者8的倍数,最少补一个最多补8个

2. 数据类型

在这里插入图片描述

int 有 十位数,long有 19位数

2.1 注意点

  1. long类型字面量后面加L
  2. 浮点数默认是double ,float类型字面量后面加F
  3. java布尔类型为boolean,与c++ bool区分

3. Java键盘输入

​ Java输入通过Scanner类实现

3.1 步骤

  1. 导包 import java.util.scanner
  2. 创建对象 Scanner scanner = new Scanner(System.in)
  3. 接收数据 int i = scanner.nextInt()

4. Java运算符

  1. Java整数除法默认下取整

  2. 扩展的赋值运算符(+=、-=、/=…)底层隐藏了一个强制类型转换。 例子:short a = 1; a+=1

  3. 优先级

    在这里插入图片描述

5. Java类型转化

5.1 隐式转换(自动转换)

​ 小范围变大范围

5.2 显示转化(强制转化否则报错)

​ 大范围变小范围

​ 目标数据类型 变量名 = (目标数据类型)被强转的类型

5.3 取值范围

​ byte < short < int < long < float < double

5.4 注意点

byte ,short , char 参与运算时先转化成int并且不会转换回来

例如

byte a = 1,b = 2;
//a+b是int类型

6. 原码、反码、补码

原码 : 左边第一位是符号位,后面是十进制的二进制表示,原码对正数进行计算不会出问题

反码:正数的反码和原码一样,负数的反码符号位不变,数值位取反

补码:正数的补码和原码一样,反码基础上加末尾加一

6.1 注意点:
  1. 原码和反码都有两个0一个+0,一个-0。补码有一个0。
  2. 原码和反码的范围都是-127—>+127(一个字节为例),补码范围是-128—>+127
  3. 计算机中数字的存储和计算都用补码

7. 流程控制语句

7.1 顺序结构

略——

7.2 分支结构

7.2.1 if-else语句
7.2.2 switch-case语句
int cases = 0;
switch(cases){
    case 0:
        语句1;
        break;
    case 1:
        语句2;
        break;
    default:
        语句n;
        break;
}
7.2.3 注意点:
  1. 不写大括号后面可以跟一条语句,但是要注意下面这种情况
// 会报错
boolean flag = true;
if(flag)
    int a = 1;//这不是一条语句是两条,定义加赋值。这被看成两条语句。
    
  1. switch(表达式) 的取值可以是byte 、short、 int、 char、 String、枚举
  2. switch语句在JDK12之后的新用法,不用写break,不会出现case注入。
int number = 2;
switch (number) {
    case 0 -> System.out.println("number是0"); //可以省略花括号
    case 1 -> {
        System.out.println("number是1");
    }
    case 2 -> {
        System.out.println("number是2");
    }
    default -> {
        System.out.println("number是3");
    }
}
  1. case后面可以跟多个值用逗号连接
int week = 7;
switch (week) {
    case 1,2,3,4,5 -> System.out.println("工作日");
    case 6,7 -> System.out.println("休息日");
    default -> System.out.println("没有这一天");
}

7.3 循环结构

8. 数组

简介:用来存储同种数据类型的多个值的容器

8.1 数组的定义

  1. 数据类型[] 数组名 例:int [] array;
  2. 数据类型 数组名[] 例 int array[];

8.2 数组的初始化

在内存中为数组开辟空间,并将数据存入容器

8.2.1 静态初始化

完整格式:数据类型[] 数组名 = new 数据类型[]{元素1,元素2,元素3...};

常用简写模式:数据类型[] 数组名 = {元素1,元素2,元素3...}

例子 int[] array = {1,2,3};

数组地址值的含义 [I@6e8cf4c6

[表示是一个数组,I表示数组元素数据类型为int,@是分隔符号,其余为十六进制内存地址

IDEA如何快速写出for(int i = 0 ;i < n ; i ++)
答: n.fori+Enter

遍历数组: for(int i = 0 ; i < array.lenth ; i ++)
快速遍历数组(IDEA): 数组名.fori

8.2.2 动态初始化

简介:初始化时只指定数组长度,不指定数值,数值为系统分配的默认值。

格式:数据类型[] 数组名 = new 数据类型[长度]

例1: int[] array = new int[5];
例2:String[] names = new String[50]

默认初始化值

整数类型: 0
浮点类型:0.0
字符类型:‘/u0000’ $\triangleq 空格 $
布尔类型:false
引用数据类型: null

8.2.3 Java内存分配
内存空间的类型

​ 栈: 方法运行时使用的内存

​ 堆: 存储对象或者数组,new创建的

​ 方法区:存储可以运行的class文件(字节码文件)

​ 本地方法栈: JVM使用操作系统功能时使用

​ 寄存器:给CPU使用

运行时内存空间的分配(栈和堆)

个人理解: 从方法和变量两个角度来看。从方法的角度,程序运行的过程中,按照方法的执行顺序,调用方法时在栈空间的底部创建方法的内存空间(入栈),方法执行结束,方法的内存空间在栈空间的顶部消除(出栈)。从变量的角度,首先,任何变量的变量名即变量的内存地址都是存在栈空间中的。对于非new变量,在栈空间中为其分配内。new 创建变量,数据的内存空间在堆空间中分配。
在这里插入图片描述

8.3 二维数组初始化

8.3.1 静态初始化

完整格式: 数据类型[][] 数组名 = new 数据类型[][]{{1,2},{3,4}};

简化格式: 数据类型[][] 数组名 = {{},{}}

8.3.2 动态初始化

格式: 数据类型[][] 数组名 = new 数据类型[n][m];

特殊情况
int[][] arr = new int[2][];
int[] arr1 = new int[3];
int[] arr2 = new int[4];
arr[0]=arr1;
arr[1]=arr2;
8.3.3 注意点
  1. Java二维数组的内存和C++不同,整个二维数组的内存不是连续的内存.每行是连续的,但是不同行之间不是连续的

9. 方法

9.1 方法的定义与调用

格式:

public static 返回类型 方法名(参数){
    方法体;
    return 返回值
}

例子(参数为数组):

public static void main(String[] args){
    int arr[]={11,22,33,44,55};
    arrPrint(arr);
}

public static void arrPrint(int[] arr){
    for(int i = 0; i < arr.lenth ; i ++) 
        System.out.print(arr[i]+"");
}

```1
### 9.2 方法的重载

含义:同一个类中的同名方法,但是参数类型或个数不同。

#### 注意点:返回值类型不同不能说明构成重载关系
### 9.3 基本数据类型和引用数据类型

整数类型、浮点类型、字符类型、布尔类型是基本数据类型,其他是引用数据类型。

从内存管理的角度:

​	基本数据类型的变量的内存空间中存的是真实数据,而引用数据类型变量存储的是数据在堆空间的地址

### 10. 综合练习的细节

1. String 可以通过+拼接char类型

```java
String str = "";
str += 'c';
  1. 随机数类的使用
Random rd= new Random();
rd.nextInt(n); //在[0,n)中随机挑选一个整数返回

IDEA快捷操作总结

  1. IDEA如何快速写出for(int i = 0 ;i < n ; i ++)
    答: n.fori+Enter

  2. 遍历数组: for(int i = 0 ; i < array.lenth ; i ++)
    快速遍历数组(IDEA): 数组名.fori+Enter

  3. 快速打出System.out.println();
    sout+Enter

参考资料 :

https://www.bilibili.com/video/BV17F411T7Ao/?spm_id_from=333.1387.homepage.video_card.click

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值