java基础2

1.二分查找

定义:使用折半的形式,一次性剔除一半的无效元素,提高查找的效率,二分查找的数组必须是有序的,

public static int binsearch(int[] arr,int value){

int start=0;     int end=arr.length-1;  int mid;

while(start<=end){

mid=(end+start)/2;

if(arr[mid]==value){

return mid;

}else if(aee[mid]>value){

end=mid-1;

}else if(aee[mid]<value){

start=mid+1;

}

}

return-1;}

2.冒泡排序

定义:相邻的两个值比较,然后交换位置,每次循环都会将有效元素中最大的或者最小的移动到有效位的最后,经过多次循环后,就可以派出一个有序的数组

public static void bubbleSort(int[] arr){

for(int i=1;i<arr.length;i++){

for(int j=0;j<arr.length-i;j++){
if(arr[j]>arrr[j+1]){

int temp=arr[j];

arr[j]=arr[j+1];

arr[j+1]=temp;}

}

}

3.方法

将一段代码圈起来,便于重复使用(提高代码的复用性)

方法名:别的方法要调用当前方法,需要方法名

参数列表:当前方法运行的原材料

返回值类型:检测或者是规定能够当前返回出去的结果的类型

一.方法的分类和调用

有参有返回值,有参无返回值,无参有返回值,无参无返回值,赋值调用,单独调用,输出调用.

二.方法的重载

类中出现了方法名相同,参数列表不同的方法,这种现象我们称之为重载

参数列表不同的表现:类型不同,长度不同,顺序不同

三.方法间调用的内存原理

虚拟机开启,只会执行main方法,其他的方法都必须有main方法调用才能印出来

栈:一端开口,方法的运行区域.:栈只会执行最顶端的方法,压栈,弹栈

四.可变参数

优点:即可以接受数组,也可以接受散装数据

缺点:必须是参数列表的最后一个参数

4.面向对象

java的程序一半是运行在多工环境(同一时间有好多人使用)

为了保证代码和数据的安全性,每个人使用的类必须分开

所以,java中会造一个模板,用户使用时,通过模板早出每个人专属的对象

所以,java成员每天都在跟对象打交道,称之为面向对象编程

5.类的使用

工具

模板:成员变量和成员方法混合使用,单独使用成员变量的(javaBean)

6.对象

根据模板创建的实例,存放在堆内存中

一个类可以创建无数个对象

类名 对象名=new 类名();

7.成员变量和局部变量

书写的位置,内存中的位置,声明周期,初始化值

8.匿名对象

没名字的对象,用一次就不用了

9.private关键字

私有化,本类中的其他成员可以使用,别的类中无法使用

10.javaBean

用来存储运输数据,私有化所有的成员变量,提供getter和setter方法,提供toString方法

11.this

表示当前对象,那个对象调用这个方法,this就代表谁

12.构造方法

特性:随着创建对象而自动执行和创建对象这个动作是紧密相连的

作用:优先于成员方法执行,给方法运行时的必要成员变量赋值

构造方法的重载:所有存在的可用的构造方法都是重载关系,构造方法之间可以相互调用this()

13.类成员之间相互调用

成员变量和成员方法之间是可以相互调用的,构造方法可以调用成员变量和成员方法,构造代码块也可以调用成员变量和成员方法,成员变量和成员方法无法调用构造代码块和构造方法,构造方法和构造代码块相互无法调用

14.代码

局部代码块:写在方法内,即使释放资源

构造代码块:优先于构造方法执行,可以将构造方法中相同的代码提取出来,放到构造代码块中

静态代码块:类加载时执行,优先于对象,一般用来注册驱动

同步代码块:保证多线程的安全性

15.静态

类加载的过程中,在初始化类的时候,会将所有的静态存入静态方法区(能执行的就先执行了),独一份

优先于对象,更优先于所有的非静态

唯一的,公用的

静态的调用:静态只能调用静态,非静态可以的调用静态.因为静态存在的时候,非静态不一定存在,如果直接调用,有危险,虚拟机不允许.非静态执行时,静态一定存在,所以,可以放心使用

16.单例模式

解决一个类在内存中如何只保存只有一个对象的问题

类为什么要在内存中只有一个对象?:节省创建对象的时间和存储对象的空间,而且不会占用静态方法去的空间

私有化构造方法

定义一个四游湖的静态变量用来存放我们自己创建的对象

提供一个静态的方法,供用户获取对象

17.继承

子类类名extends父类类型

子类可以使用父类的非私有成员

提高了代码的复用性和维护性

类和类之间的关系加强了,不符合编程的理念

注意事项:父类中的私有化成员不能继承,super关键字.

构造方法,子类会默认访问父类的空餐构造,我们没写,编译器会自动加上,如果父类中没有空参构造,子类会报错,需要我们手动调用父类的空参构造,或者去父类中添加一个空参构造,super()必须是子类构造方法的第一条执行语句

18.方法的重写

子类和父类中出现了一模一样的方法,这种现象叫重写,方法名和参数列表必须一样,子类重写父类的方法,意味着,子类的方法对父类的方法形成了全遮挡

注意事项:子类的权限不能比父类低,父类中的方法如果是静态的,子类重写的时候也必须是静态的,父类的私有化方法不能重写,因为压根看不见

instanceof关键字:用来比较对象是不是属于这个类或者这个类的父类.

19.多态

子类对象可以存到父类的变量中

前提条件:子父类关系.方法重写.父类引用指向子类对象

好处:提高代码的复用性和扩展性

缺点:不能使用子类对象的特有方法

20.多态成员访问特点

编译看左,运行看左:成员变量,静态方法 

编译看左,运行看右,只要子类中重写了,一定执行子类的方法:非静态成员方法(全遮挡)

向上转型(子类转父类)

向下转型(父类转子类,有危险),转之前,要使用instanceof关键字判断一下

21.final

最终的, 无法被改变 , 只能赋值一次

修饰的特性:修饰类, 类不能被继承,修饰方法, 方法不能被重写,修饰变量, 变量只能赋值一次

修饰成员变量时,在初始化完毕之前必须要赋值,静态是类初始化完毕前,非静态是对象初始化完毕前

22.abstract关键字

制定规则,一个类中如果有抽象方法,这个类也必须是抽象类,抽象类中可以没有抽象方法,抽象不能实例化(创建对象) , 不安全, 抽象方法用不了,抽象类的子类可以是抽象类, 不用重写抽象方法,抽象类的子类可以是非抽象类, 必须重写抽象方法

23.java传递值得方式

基本数据类型传递的是值, 引用数据类型传递的是址, String稍微特殊

24. 接口

interface implements,接口中全部都是抽象方法,接口中的成员变量,都是公开的, 静态的, 最终的  public static final

作用,指定规则,思考的过程,代码的框架

我们在思考过程中, 用来记录业务逻辑.

25.类和接口之间的关系

类和类: 继承 单继承, 多层继承

类和接口: 实现, 可以多实现

接口和接口: 继承, 可以多继承




©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Win7下如何打开DOS控制台? a:开始--所有程序--附件--命令提示符 b:开始--搜索程序和文件--cmd...
    逍遥叹6阅读 5,534评论 4 12
  • 这是16年5月份编辑的一份比较杂乱适合自己观看的学习记录文档,今天18年5月份再次想写文章,发现简书还为我保存起的...
    Jenaral阅读 8,043评论 2 9
  • 一:java概述:1,JDK:Java Development Kit,java的开发和运行环境,java的开发工...
    ZaneInTheSun阅读 7,632评论 0 11
  • 面向对象笔记 一、 对象在内存中的存放方法以及被调用过程 class文件首先被加载到方法区中的class文件内容区...
    VictorBXv阅读 3,424评论 0 2
  • 今天七宝一点都不乖,上午还好,下午把我折腾的够呛! 下午给她洗完澡后,把她放小车里没半小时,就开始哭了,然后喂她,...
    看那个蓝天阅读 1,342评论 2 6

友情链接更多精彩内容