• Java基础(1)IntelliJ IDEA入门、常用快捷键和数组操作


    一、 IntelliJ IDEA入门

    1 快捷键和技巧

    智能补全代码,比如只写首字母按回车:

    •   psvm+Enter :public stactic void main(String[] args)
    •   sout+Enter:System.out.println();

    快捷键:

    • Alt+4:调出运行框
    • Alt+enter:代码修复,比如导包
    • Ctrl+Y:删除光标所在行
    • Ctrl+D:复制所在行,并插入下一行
    • Ctrl+Alt+L:格式化代码,对齐
    • Ctrl+/:单行注释,再按取消注释
    • Ctrl+Shift+/:注释选中的代码,多行注释,再按取消注释
    • Alt+Insert:自动生成代码,比如toString,get,set方法
    • Alt+Shift+上下箭头:移动代码
    • Shift+F6:替换所选

    2 IDEA 常用设置

    filesettingseditor可以设置字体

    filesettingskeymapcodecompletion设置快捷键,比如设置自动补全代码,更换为alt+/

    03 idea模块module的导入

    fileproject structure

    二、 java基础

    1 .java和.class文件

    .java文件是源文件,也就是我们自己写的代码。

    .class文件是虚拟机编译得到的,虚拟机需要把我们写的.java文件编译成它可执行的字节码文件

    projectnamesrc文件夹下是.java文件

    projectnameout文件夹下是.class文件

    javac.exe是JDK的编译器;java.exe是解释器

    HelloWorld.java源代码文件:

    public class HelloWorld{  }  //文件名和类名需要保持一致

    2 方法重载

    方法重载:方法的名称一样,参数列表不一样。

    如原来的方法int sum(int a,int b)

    相关:参数个数int sum(int a,int b,int c);参数类型int sum(int a,double b);参数的多类型顺序int sum(double a, int b)。

    无关:参数的名称无关int sum(int x, int y);与返回值类型无关double sum(int a),因为在方法单独调用时,如sum(10,20),不知道该去调用int sum(int a,int b)还是double sum(int a,int b)

    3 数组

     数组的定义-初始化

    动态初始化(指定长度):

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

    int[] arrayA = new int[30];  //定义一个int型数组,默认初始化为0
    String[] arrayB = new String[20]; //定义一个String型数组

    可以拆分为两个步骤:

    int arrayB[];
    arrayB = new int[30]; //定义一个int型数组

    静态初始化(指定内容):

    格式:  数据类型[ ] 数组名 = new 数据类型[数组长度]{元素1,元素2,... }

    int [] arrayA = new int[]{5,15,20}
    String [] arrayB = new String[]{"Hello","World"}

    可以拆分为两个步骤:

    int arrayB[];
    arrayB = new int[]{10,20,30};

    下面是错误写法:
    int arrayB[]; arrayB[] = new int[]{10,20,30};

    省略的静态初始化:

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

    int [] arrayA = {5,15,20}

    不能拆分成两个步骤:

    int arrayB[];
    arrayB = {10,20,30};//错误写法

     

    4 数组的内存分析

    首先是java的内存分析:

    注意:

    数组名称是一个局部变量,如int[] array是放在栈中的。

    new出来的对象都放在堆中。

    数组的内存分析:

    //地址赋值
    public static void main(String[] args) {
    int[] arrayA = new int[3];
    arrayA[0]=10;
    System.out.println(arrayA[0]);
    System.out.println("=========");

    int[] arrayB= arrayA;// arrayB存放的地址与arrayA相同,可以通过修改arrayB的值修改arrayA的值。即arrayB是arrayA的引用
    arrayB[0]=100;

    System.out.println(arrayA);
    System.out.println(arrayA[0]);
    System.out.println(arrayB);
    System.out.println(arrayB[0]);
    }
    //输出

    10
    =========
    [I@1b6d3586
    100
    [I@1b6d3586
    100

    数组的名称不变,地址重新赋值:

    int[] arrayC = new int[3];
    System.out.println(arrayC);//0x666
    arrayC = new int[5];//新new了一个数组,地址为0x999,仍然命名为arrayC。
    System.out.println(arrayC);//0x999
    //堆中有了两个实体对象

    5 对数组的常见操作方法

    //遍历
    int[] arrayD = new int[]{1,2,3,4}; for(int i=0;i<arrayD.length;i++) //在idea中快捷输入的方式:array.fori回车 System.out.println(arrayD[i]); // 1 2 3 4
    //求最大值
    public static void main(String[] args) { int[] array = new int[]{1,2,5,8}; int max = array[0]; for(int i= 1;i<array.length;i++){ if(array[i]>max) max=array[i]; } System.out.print("max="+max); }
    //
    max=8
    //反转数组
    public static void main(String[] args) { int[] array = {2, 4, 6, 8, 10}; System.out.println("before reverse:"); for (int i = 0; i < array.length; i++) { System.out.print(array[i]); System.out.print(" "); } for (int min = 0, max = array.length - 1; min < max; min++, max--) { int temp = array[min]; array[min] = array[max]; array[max] = temp; } System.out.println(" after reverse:"); for (int i = 0; i < array.length; i++) { System.out.print(array[i]); System.out.print(" "); } }

    //

    before reverse:
    2 4 6 8 10 
    after reverse:
    10 8 6 4 2

    //数组作为参数传递给方法
    public class Demo01ArrayParam {
        public static void main(String[] args) {
            int[] array = {10, 20, 30};
            printArray(array);
            int[] array1 = {10*2, 20*2, 30*2};
            printArray(array1);
        }
    
        public static void printArray(int[] a) {
            for (int i = 0; i < a.length; i++)
                System.out.println(a[i]);
        }
    }

    //输出结果

    10
    20
    30
    20
    40
    60

    //数组作为方法的返回值,返回的其实是数组的地址值
    public class Demo01ArrayReturn {
    public static void main(String[] args) {
    int[] result = calculate(10,20,30);
    System.out.println("main方法返回值的地址是"+ result);
    System.out.println("总和="+ result[0]);
    System.out.println("平均数="+ result[1]);
    }

    public static int[] calculate(int a, int b,int c) {
    int sum = a+b+c;
    int avg = sum/3;
    int[] array = {sum,avg};
    System.out.println("calculate数组的地址是"+ array);
    return array;
    }
    }
    //

    calculate数组的地址是[I@1b6d3586
    main方法返回值的地址是[I@1b6d3586
    总和=60
    平均数=20

  • 相关阅读:
    集合的代数运算
    集合的代数运算
    poj1639 Picnic Planning,K度限制生成树
    C/C++学习站点资源
    Mustache 使用心得总结
    PostgreSQL服务端监听设置及client连接方法
    【线性规划与网络流24题】汽车加油行驶问题 分层图
    linux系统下信号具体解释2
    【数据结构】栈-数组的实现
    EJB究竟是什么,真的那么神奇吗??
  • 原文地址:https://www.cnblogs.com/JohnTeslaaa/p/9598338.html
Copyright © 2020-2023  润新知