java基础(1)IntelliJ IDEA入门和数组操作 解决idea启动速度慢

Wesley13
• 阅读 490

一、 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 常用设置

file\settings\editor可以设置字体

file\settings\keymap\code\completion设置快捷键,比如设置自动补全代码,更换为alt+/

03 idea模块module的导入

file\project structure

二、 java基础

1 .java和.class文件

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

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

projectname\src文件夹下是.java文件

projectname\out文件夹下是.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型数组,默认初始化为0String[] 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的内存分析:

java基础(1)IntelliJ IDEA入门和数组操作 解决idea启动速度慢

注意:

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

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

数组的内存分析:

java基础(1)IntelliJ IDEA入门和数组操作 解决idea启动速度慢

//地址赋值

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//堆中有了两个实体对象

java基础(1)IntelliJ IDEA入门和数组操作 解决idea启动速度慢

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("\nafter 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

每次启动idea超级慢,大概需要2分钟。最近看了jvm相关的东西,有博客说可以通过修改jvm的配置提高运行速度。

先找到idea的安装目录:

java基础(1)IntelliJ IDEA入门和数组操作 解决idea启动速度慢

可以默认的idea中jvm的配置:

xms是Heap初始值

xmx是Heap最大值

java基础(1)IntelliJ IDEA入门和数组操作 解决idea启动速度慢

这也太小了吧.

 修改成:

-Xms1024m
-Xmx2048m
-XX:ReservedCodeCacheSize=240m
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50
-ea
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow

 重启idea,启动速度基本上在30秒以内。

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
1星期前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Wesley13 Wesley13
2年前
Java基础(1)IntelliJ IDEA入门、常用快捷键和数组操作
一、IntelliJIDEA入门1快捷键和技巧智能补全代码,比如只写首字母按回车:  psvmEnter:publicstacticvoidmain(String\\args)  soutEnter:System.out.printl
Wesley13 Wesley13
2年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
2年前
IDEA00 IDEA知识点汇总
一、从头搭建IDEA开发环境https://mp.weixin.qq.com/s/6jXHzkU8JfubhDsQJbwl8Q(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fmp.weixin.qq.com%2Fs%2F6jXHzkU8JfubhDsQJbwl8Q)1下
Wesley13 Wesley13
2年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
6个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这