Java基础

先安装jdk8,再安装IDEA:

Java基础_第1张图片Java基础_第2张图片

解决IDEA运行时卡顿的问题:把数值改大一点

Java基础_第3张图片  Java基础_第4张图片

相关概念:

  • Java三大版本:JavaSE,JavaME,JavaEE
  • JDK:Java Development Kit(Java开发者工具)
  • JRE:Java Runtime environment(运行库,属于JDK)
  • JVM:Java Virtual Machine(虚拟机)

包:

  • package:用于指明当前类所在的包,必须位于最上面。一般使用公司的域名倒置作为包名,如com.baidu.www是一个三层的包(如果src右键建包时,输入com.baidu.www生成的包如下图所示,将标黄位置的对勾取消)
  • import:导入包
  •  Java基础_第5张图片 

Java doc:文档注释

Java基础_第6张图片

1. 用命令行生成文档:

  • 在左栏选中当前类,如下图右键打开文件夹

Java基础_第7张图片 Java基础_第8张图片

  • 在文件夹里shift+右键打开cmd执行如下命令,文件夹内生成一堆文档

Java基础_第9张图片

Java基础_第10张图片  Java基础_第11张图片

2. 用IDEA生成java.doc文档

Java基础_第12张图片  Java基础_第13张图片

java程序执行方法:

1. 对于单个文件:

Java基础_第14张图片

2. 有包的情况:

两条命令需要在不同的文件夹下执行,第二条命令的标黄位置是传给main()的参数,通过args[]可以取出

Java基础_第15张图片

                                               

用scanner对象接收用户输入:

  • scanner.hasnext():判断本次有没有输入
  • scanner.next():接收输入,将空格作为结束符
  • scanner.nextLine():接收输入,将Enter作为结束符

Java基础_第16张图片Java基础_第17张图片Java基础_第18张图片

同理对于其它数据类型还有对应的方法:如scanner.hasNextInt(),scanner.nextInt()

查看内置类的具体定义:

  按住ctrl点击类名,再点击左侧可以查看列表

Java基础_第19张图片

Debug断点:

先设置断点,再点击瓢虫,之后每次点击图三标记

Java基础_第20张图片Java基础_第21张图片

可变数据参数:

  • 适用情况:函数原型作用域的形参中,同一类型的参数不确定有几个时
  • j.length获取长度,操作类似于数组
  • 该可变参数只能在形参表的最后一项
  • 传参时,可以传一串数字,也可以像图二传一个数组

Java基础_第22张图片

数组:

1. 一维数组:

int[] 看做是数据类型,在传参时类型都是int[]形式的

Java基础_第23张图片

2. 多维数组:

3. Array类:

类名.方法名(数组名)

重点:

1. 构造函数:

  • 新建对象,要用new构造器,其中Person()是构造函数(c++中,Person person(参数))
  • 一旦定义有参构造函数,无参构造函数必须显式定义
  • alt+insert快捷生成构造函数constructor
  • 实例化子类,会默认自动调用父类的构造方法再调用子类
  • 在子类构造方法中手动调用父类构造方法super(),且必须写在子类构造方法的第一行
  • 在子类构造方法中手动调用自身构造方法this(),也必须写在子类构造方法的第一行,所以super()和this()不能同时出现
  • 在子类中super代表上一级父对象

2. 继承:子类 extends 父类

  • Java只支持单继承(只有一个父亲),C++支持多继承(要设置虚基类以保证父类方法在程序中只有一份拷贝,虚基类的方法不一定是虚函数)     

        

  • 所有类都默认继承Object类
  • 在子类中访问父类,用super作为父类对象(多层继承怎么办)
  • ctrl+H 快捷键可以立即查看当前类的继承关系
  • 如果父类用了final关键字,就不允许继承了

3.栈和堆:

  • main方法在栈的最底部,当main() 弹出,程序结束
  • 栈中是存储调用的方法和引用,如数组名、对象名
  • 堆中存储完整的对象和数组元素;堆中包含方法区:存放类定义,String对象(String对象是不能修改的)和静态方法等

4. 多态和重写:

  • 父指针指向的子对象可以访问子类重写的方法
  • C++:把父类的方法声明为虚函数,可以实现多态。
  • 重写的快捷键也是alt+insert
  • static、final、private类型的方法是不可以重写的

5. instanceof和父子类型转换:

Java基础_第24张图片

6. 抽象:public abstract 类名{}

  • 抽象类里面可以有抽象方法(没有方法体,public abstract),也可以有普通方法。
  • 抽象方法必须在抽象类中,所以子类必须实现全部的抽象方法,除非子类也是抽象类
  • 不能实例化

7. 接口:public interface 接口名{}

  • 接口里全是抽象方法,所以public abstract可以省略
  • 接口里的属性都是常量,所以不建议写
  • 接口中的方法在接口类中必须全部实现:public class 类名 implements 接口名1,接口名2{}

8. 异常:

  • 选中一段代码,Ctrl+alt+t可以自动包裹进异常

Java基础_第25张图片 Java基础_第26张图片Java基础_第27张图片Java基础_第28张图片

 

9. 注意:

main()里面可以定义变量,和普通类的成员函数不同

 用不太到的东西:

1. 静态导入包:

对于系统内置类,本来是内置类.方法(参数),如果在导入包的语句中加入static,并且在后面加.方法名,调用时就可以直接写方法名(参数)

2. 内部类:

Java基础_第29张图片

3. 匿名代码块{},静态代码块static{}

实例化对象时会执行,执行顺序:静态代码块(只执行一次),匿名代码块,构造函数

4. 自定义异常:

不想学了

 

你可能感兴趣的:(Java,java)