java视频学习笔记-2-(运算符,键盘数据录入,函数,数组,内存分配)

这篇博客介绍了Java的基础知识,包括运算符的使用,如三目运算符和位运算符的区别;键盘数据录入的方法;函数的定义和调用,以及方法重载的概念;一维和二维数组的定义、初始化、遍历及数组逆序操作。同时,文章还讲解了Java内存管理,阐述了栈、堆的特点以及局部变量和new出来的对象在内存中的分配情况。
摘要由CSDN通过智能技术生成

1. 运算符

s += 1 等价于 s = (s的数据类型)(s+1) 即进行了一次强制转换
&&与& 的区别:&&只要左边false,右边就不执行,同理||和|也是如此

三目运算符:  比较表达式?表达式1:表达式2  如果是true,就把表达式1作为结果,反之把表达式2作为结果

//得出三个数中的最大值
int max = (a>b)?((a>c)?a:c):((b>c)?b:c);

2. 实现键盘数据的录入

import java.util.Scanner;

class ScannerDemo{
    public static void main(String[] args){
        //创建键盘录入对象
        Scanner sc = new Scanner(System.in);
        int x = sc.nextInt();

        Scanner scan = new Scanner(System.in);
        String str1 = scan.next();
    }
}

3. 方法(函数)

即是能完成特定功能的代码块

class FunctionDemo{
    public static void main(String[] args){
        int x=10;
        int y=10;
        int result = sum(x,y);
        System.out.println(result);
    }
    //两数求和
    public static int sum(int a,int b){
        int c = a+b;
        return c
    }
}

方法注意事项:
(1)不调用不执行
(2)方法与方法是平级关系,不能嵌套定义

方法重载:
在同一个类中,允许存在一个以上的同名方法,只要他们的参数个数或者参数类型不同即可

4. 数组

4.1 一维数组

定义格式:(效果是一样的,推荐第一种)
(1)int [] a;  定义一个int类型的数组a变量 
(2)int a[];  定义一个int类型的a数组变量

数组属性:
(1)获取数组的长度  格式:数组名.length
(2)

数组初始化:
(1)动态初始化:只指定长度,并为每个数组元素赋予值  
  格式:数据类型[] 数组名 = new 数据类型[数组长度];

int[] arr = new int[3];

(2)静态初始化:给出初始化值,由系统决定长度

int[] arr = {1,2,3};

遍历数组:

public static void printArray(int[] arr){
    for (int i=0; x<arr.length; i++){
        if (i==arr.length-1){
            System.out.println(arr[i]);
        }
        else:{
            System.out.println(arr[i]+" ");        
        }
    }
}

数组逆序:

public static void reverse(int[] arr){
    for (int start=0, end=arr.length-1; start<=end;start++,end--){
        temp = arr[start];
        arr[start] = arr[end];
        arr[end] = temp;
    }
}

4.2 二维数组

定义格式:(效果是一样的,推荐第一种)
(1)int [][] a = new int[m][n];  定义一个int类型的二维数组a变量    n可以不填,之后在动态初始
(2)int a[][] = new int[m][n];  定义一个int类型的a数组变量
(3)int [] a[] = new int [m][n]; 

二维数组的遍历:

//二维数组的length就是一维数组的个数
for(int x=0; x<arr.length; x++){
    for (int y=0; y<arr[x].length; y++){
        System.out.println(arr[x][y]+" ");
    }
    System.out.println(arr[x][y]);
}

打印杨辉三角:
(1)任何一行的第一列和最后一列都是1
(2)从第三行开始,每一个数据时它上一行的前一列和它上一行的本列之和

public static void main(String[] args){
    Scanner sc = new Scanner(System.in);
    System.out.println("请输入一个数据:");
    int n = nextInt();

    int [][] arr = new int[n][n];

    //给这个二维数组的任何一行的第一列和最后一列赋值为1
    for(int x=0; x<arr.length; x++){
        arr[x][0] = 1;
        arr[x][x] = 1;
    }

    //按规律赋值
    for (int x=2;x<arr.length;x++){
        //空出最后一列和第一列
        for (int y=1; y<=x-1; y++){
            arr[x][y] = arr[x-1][y-1] + arr[x-1][y];
        }
    }
    
    //遍历三角形
    for(int x=0; x<arr.length; x++){
        for (int y=0; y<=x; y++){
            System.out.println(arr[x][y]+"\t");
        }
    }    
}

5. java中的内存分配

(1)栈:存储局部变量(方法定义中和方法声明上的都是局部变量)
  栈内存中的数据用完(脱离作用域)就释放掉
(2)堆:存储new出来的东西

堆内存的特点:1.每一个new出来的东西都有地址值 2. 每个变量都有默认值(0, 0.0,‘\u0000’, false, null)3. 使用完毕就变成了垃圾,但是并没有立即回收,会在垃圾回收器空闲的时候回收。

(3)方法区
(4)本地方法区:和系统相关
(5)寄存器(给cpu使用)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值