一、 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型数组,默认初始化为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("\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

Java基础(1)IntelliJ IDEA入门、常用快捷键和数组操作的更多相关文章

  1. 【IntelliJ Idea】常用快捷键

    [IntelliJ Idea]常用快捷键 转载:https://www.cnblogs.com/yangchongxing/p/10654018.html ============= 调试 ===== ...

  2. Java基础复习笔记系列 五 常用类

    Java基础复习笔记系列之 常用类 1.String类介绍. 首先看类所属的包:java.lang.String类. 再看它的构造方法: 2. String s1 = “hello”: String ...

  3. Java基础-考察JVM内部结构的常用工具介绍

    Java基础-考察JVM内部结构的常用工具介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 我们可以通过jvisualvm.exe考察jvm内部结构.而jvisualvm.exe ...

  4. 第二十九节:Java基础知识-类,多态,Object,数组和字符串

    前言 Java基础知识-类,多态,Object,数组和字符串,回顾,继承,类的多态性,多态,向上转型和向下转型,Object,数组,多维数组,字符串,字符串比较. 回顾 类的定义格式: [类的修饰符] ...

  5. IntelliJ IDEA 工具常用快捷键

    IntelliJ IDEA是java语言开发的集成环境,IntelliJ在业界被公认为最好的java开发工具之一,尤其在智能代码助手.代码自动提示.重构.J2EE支持.各类版本工具(git.svn.g ...

  6. Intellij Idea 2018常用快捷键总结

    快捷键列表Alt+回车 导入包,自动修正Ctrl+N 查找类Ctrl+Shift+N 查找文件Ctrl+Alt+L 格式化代码 Ctrl+Alt+O 优化导入的类和包Alt+Insert 生成代码(如 ...

  7. c#基础学习(0625)之vs常用快捷键、基础数据类型、命名规范

    vs常用快捷键 Ctrl+K+D:快速对齐代码 Ctrl+z:撤销 Ctrl+S:保存 Ctrl+J:快速弹出只能提示 Shift+End:从行首快速选中整行 Shift+Home:从行未快速选中整行 ...

  8. 【IntelliJ IDEA】 常用快捷键列表

    1.常用Shortcut F2 或Shift+F2 高亮错误或警告快速定位 Ctrl+Up/Down 光标跳转到第一行或最后一行下 Ctrl+B 快速打开光标处的类或方法  CTRL+ALT+B  找 ...

  9. Intellij IDEA个人常用快捷键

    分享一下个人常用快捷键. 说明:字母排序规则遵循字母表(a->z) 快捷键 介绍 ctrl+b 快速打开当前光标处的类或方法 ctrl+d 复制当前光标所在行至下一行 ctrl+e 打开最近的文 ...

随机推荐

  1. Web Services的学习一

    1.Web Services可以将应用程序转换成为网络应用程序,也就是说可以通过Web Services,应用程序可以向全世界发布信息,或者提供功能. 而且通过Web Services发布的,可以被其 ...

  2. js 获取数组重复的元素

    //获取数组重复的元素 function refrain(arr) { var tmp = []; if(Array.isArray(arr)) { arr.concat().sort().sort( ...

  3. JDBC、JNDI和DBCP的区别

    JDBC:Java DataBase Connectivity,java连接数据库和执行SQL语句的API. 数据源:Data Source.就是将IP.数据库.用户名.密码封装起来对外只提供一个JN ...

  4. 把旧系统迁移到.Net Core 2.0 日记(3) - 详解依赖注入 (转)

    关于DI 依赖注入, 转载这篇文章, 写得很好的. ----------------------------- DI在.NET Core里面被提到了一个非常重要的位置, 这篇文章主要再给大家普及一下关 ...

  5. codeigniter在nginx下返回404 not found

    codeigniter框架需要path_info的支持,Apache默认支持path_info,但是nginx默认不支持,我们需要设置nginx,使得nginx支持path_info 网上试了好多方法 ...

  6. Java IO流01-总叙

     Java IO包体系结构图: 1.流式部分――IO的主体部分: 2.非流式部分——主要包含一些辅助流式部分的类,如:File类.RandomAccessFile类和FileDescriptor等类: ...

  7. 【转】java提高篇(二)-----理解java的三大特性之继承

    [转]java提高篇(二)-----理解java的三大特性之继承 原文地址:http://www.cnblogs.com/chenssy/p/3354884.html 在<Think in ja ...

  8. EtherCAT(扒自百度百科)

    EtherCAT(以太网控制自动化技术)是一个开放架构,以以太网为基础的现场总线系统,其名称的CAT为控制自动化技术(Control Automation Technology)字首的缩写.Ether ...

  9. 这本小书的目的是引导你进入 React 和 Webpack 的世界。他们两个都是非常有用的技术,如果同时使用他们,前端开发会更加有趣。

    https://fakefish.github.io/react-webpack-cookbook/index.html

  10. hdu1693

    题解: 还是插头dp 代码: #include<cstdio> #include<cstring> #include<algorithm> #include< ...