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

    科技2022-08-28  104

    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使用)

     

    Processed: 0.017, SQL: 9