一.JAVA基础
1.JDK:包含JVM,JRE以及自己的文件
2.JRE:JAVA运行环境
3.JVM :虚拟机
4.运行java文件 javac 文件名
后执行java class文件名
5.注意文件名与类名一致
二.基础语法
文档注释
/**
* 中间可以写参数 作者,时间,方法...
*/
三.数据类型
1.分为两类
(1)基本类型
1>数值型
<1>整型:byte,short,long,int
<2>浮点型:float:离散,大约,接近值但不等于,double
<3>字符串:char
2>布尔型: boolean: true,false
3>进制: 二进制0b开头;八进制0开头;十六进制0x
[由低到高]byte,short,char,int,long,float,double
问题:由低到高自动转换,由高到低强制转换;注意计算式按照高的计算
(2)引用类型
四.变量 常量
static:类变量,可以不用new对象直接使用;方便调用
final:常量, 一般用大写表示
五.运算符
a++:先赋值后自增
++a:先自增后赋值
&(与)同为1得1
|(或)有1得1
~(非)按位取反
^(异或)同为0,不同为1
<<(左移)*2
>>(右移)/2
六.包机制
实质:文件夹
命名时:域名倒置,例如:com.hei.xxx
七.javaDoc
@author:作者
@version:版本
@since:指明jdk最早的版本号
@param:参数
@return:返回值
@throws:抛出异常
生成文档命令:javadoc -encoding UTF-8 -charset UTF-8 java文件;
八.Scanner对象
Scanner s=new Scanner(System.in)
next遇到空格结束;
nextLine遇到enter结束
九.Java方法
1.java是值传递
2.方法重载
*函数名相同
*参数不同(个数,类型)
3.可变参数
*(int ...i)
十.数组
1.一位数组
int[] a=new int[10];
2.多维数据
int [][]a=new int[10][10];
3.稀疏数组
存储有效数据,根据下标标注分别是 [0]位行列值总的数据,其余值为对应的行列值
十一.Java内存
1.堆
*存放new的对象和数组
*可以被所有的线程共享,不会存放别的对象引用
2.栈
*存放基本变量类型(变量具体的值)
*引用对象的变量类型
十二.类和对象
1.类(所有的类都继承obj类):类是一个模板(抽象的),对象是一个具体的实例
2.对象:oop,本质:以类的方式组织代码,以对象的组织(封装)数据
3.构造器(alt+insert):
1>构造器必须与类名一致,无返回值
2>new 本质是在调用构造器;初始化对象的值
注意:如果定义了有参构造,如果想使用无参构造。必须显示无参数的构造方法
十三.Java的特性
1.封装:高内聚,低耦合(该露的露;属性私有化get,set)
特点:提高程序的安全性,保护数据;隐藏代码的实现细节
2.继承:关键字extends;私有的属性不能被继承(通过get方法获取)
super:调用父类中的构造方法,必须在第一个;super只能出现在子类的构造方法中;super和this不能同时调用构造方法
3.多态:同一方法可以根据发送的对象不同而采用多种不同的行为方式
存在条件:
有继承关系;子类重写父类方法(方法名同);父类引用指向子类对象
注意:多态是方法的多态,不是属性的多态;方法重写后父类执行子类中的方法
(1)重写(@Override):需要有继承关系,子类重写父类的方法
1>方法名必须相同
2>参数列表必须相同
3>修饰符:范围可以变大,但不可以缩小,private<default<protected<public
4>抛出异常,可以被缩小,不能扩大
十四.instanceof 类型装换
父类想要引用子类中的方法需要进行强制转换
eg:Person obj=new Student();
((Student).obj).run();
十五.static关键字
1.可以静态导入包,可以直接执行包中的方法;
2.先执行static代码块(只执行一次),在执行匿名代码块,在执行构造方法;
十六.抽象类 abstract
1.抽象方法:只有方法的名字,没有方法的实现;
eg:public abstract void doSomeThing();
*抽象类的所有方法,继承了它的子类,都必须实现它的方法,除非子类也是抽象的。
注意:不能new这个抽象类,只能靠子类去实现它;约束。
抽象类可以写普通方法
抽象方法必须在抽象类中
十六.接口 interface通过implements来实现
1.接口的本质是契约
2.接口中所有定义方法,其实都是抽象的public abstract; 数值是public static final
3.接口不能被实例化,接口中没有构造方法
4.implements可以实现多个接口
5.必须要重写接口中的方法
十七.N种内部类
成员内部类 class内的class
静态内部类 static
局部内部类 方法中写class
匿名内部类 不定义变量接收
十八.异常(ctrl+alt+t)
1.关键字:try catch finally throw throws
2.自定义异常
定义异常的类方法继承Exception
自定义异常: