java知识总结(详细)

1、基础语法

-- 数据类型:八大基本类型byte short int long float double char boolean / 引用类型
-- 分支结构:if(判断条件1/true){满足条件的代码1...}else if(判断条件2/true){不满足条件的代码2...}
-- 循环结构:for/while(先判断后执行)/do...while(循环体最少执行1次)
	-- for(循环的开始位置;循环条件;更改条件){循环体} 温馨提示:for循环不要设计的太深入
		--重点是:注意for循环的执行流程
-- 数组:可以存放多个  相同类型 的数据
	-- int[] a = new int[10];//a是引用类型的变量,保存的是数组在堆内存中的地址值
	-- int a[] = {1,2,3,4,5};
	-- a.length用来获取数组的长度。数组中元素都有唯一的标志也就是下标,默认从0开始,最大值是数组长度-1
	-- 遍历数组:for(int i = 0 ; i< a.length ;i++){}
		-- 如果取到了不存在的下标,会抛出异常:ArrayIndexOutOfBoundsException
-- 利用数组和嵌套for可以完成算法,比如:冒泡排序/合并排序/快速排序/二分查找算法,先预习
-- 数组工具类:
	-- Arrays.sort(任意类型[] a);//默认是从小到大排序 
	-- copyOf(原数组名,新数组长度);//根据新数组长度决定复制时是扩容还是缩容

2、OOP

-- 封装:好处就是提高程序的安全性,把细节私有化private
	-- 可以封装方法,把方法只在类的内部显示
	-- 可以封装属性,只不过封装后只能在类的内部显示,外部想修改值或者获取值,都需要访问对应的set()/get()
	-- this:代表的是本类对象的引用,如果要使用本类的成员,可以省去,创建本类对象的代码
		-- this可以用来调用本类的成员变量     
		-- 互相调用构造方法
		
-- 继承:好处是提高代码的复用性
	-- 父类:提取子类的所有共性功能
	-- 子类:只需要继承父类,就可以使用父类的所有功能(除private)
	-- 当子类需要修改继承过来的方法业务时,发生了方法重写的现象
		-- 重写Override要求:子类的方法声明和父类一样,而且,子类要有重写的权限
		-- 完成重写后,从此使用的方法体都是重写后的也就是使用的是子类的方法体
	-- super :代表的是父类对象的引用,如果要在子类中使父类的成员,可以省去在子类中创建父类对象的代码
		-- super 可以在子类中调用父类的功能
		-- TODO 在子类中调用父类的构造方法

-- 多态:前提有两个 继承+重写,目的是 统一调用标准(父类)
	-- 口诀: 父类引用 指向 子类对象   +  编译看左边,运行看右边(方法重写现象)
	-- 好处:不关心具体的子类类型,会把子类都当做父类来看,写出通用代码
		-- catch 异常的父类类型Exception
		-- public void eat(Object o){}

-- 抽象类:是抽象层
	-- 如果不需要提供方法体时就称为抽象方法,类里如果有抽象方法这个类就是抽象类
	-- 把父类修饰设计成抽象类,可以包含抽象方法或者普通方法
	-- abstract class B{  public void eat(){}     abstract public void sleep() ;  }
	-- class A extends B{  }
		-- 如果B是抽象类,对于A的要求:必须重写所有抽象方法sleep(),否则A就是抽象类
		-- 如果B是普通类,对于A的要求:哪个方法的业务发生了改变,我们就重写哪个,没有必须的要求
	-- 体现了程序的灵活性:如果需要方法体就提供,不需要就不提供

-- 接口:是抽象层
	-- 接口是一个特殊的抽象类,特殊在接口里都是抽象方法
	-- 使用时非常灵活,可以降低程序间的耦合性!!!
	-- 接口突破了java的单继承的局限性,因为接口可以多继承还能多实现
	-- 继承关系:
		-- 子类和父类:子类继承父类后,就拥有了父类的功能----单继承
		-- 子接口和父接口:子接口继承了父接口后,子接口也同样拥有父接口的功能----可以单继承也可以多继承
	--	实现关系:
		-- 实现类 和 接口 :可以单实现也可以多实现,要求实现类要重写接口的所有抽象方法,否则实现类就是个抽象的实现类
	-- interface A { void save();   void get(); }
	-- class AImpl implements A { //可以把所有抽象方法都重写,也可以啥都不干变成一个抽象的实现类    }
		-- 创建对象测试:A a = new AImpl();
					-- new AImpl();调用了实现类自己的无参构造,而且无参构造里第一行隐藏着super(),这时想去当前的父类也就是接口里找无参构造,但是接口里根本就没有构造方法,那这时找谁去要的无参构造呢?--其实会去找Object要无参构造。
	
-- 其他:静态内存/代码块/构造方法
发布了36 篇原创文章 · 获赞 13 · 访问量 1069

猜你喜欢

转载自blog.csdn.net/weixin_44598691/article/details/104764923