栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JAVA 小记(1)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JAVA 小记(1)

抽象方法:
使用abstract修饰的方法,没有方法体,只有声明。包含抽象方法的类叫做抽象类
1)抽象类不能实例化,即不能用new来实例化抽象类,但可以包含属性、方法、构造方法。
2)抽象类只能用来继承
3)抽象方法必须被子类实现
4)抽象类存在的意义就是为子类提供模板

接口
1)比抽象还抽象的类,实现了规范与模板的分离
2)格式:interface 接口名[extends 父接口1,父接口2……]{
      常量定义  //不能定义变量
     方法定义}
3)常量:接口中的属性只能是常量,总是 public static fianl 修饰,不写也是
4)方法:接口中的方法只能是abstract final ,省略的话也是
5)子类通过implements来实现接口中的规范
6)接口不能创建实例,但是可以用于声明引用变量类型
7)一个类实现了接口,必修实现接口中的所有方法,而且这些方法都是public

 内部类(成员内部类、匿名内部类、局部内部类//很少遇到///)
@@@成员内部类(类当作内部成员)
可以使用private default procted public进行任意修饰
1)非静态内部类
##外部类中使用非静态内部类和平时使用其他类没有什么区别
##可以直接访问外部类成员,但外部类不能直接访问非静态内部类成员
##class outer{
      ……
     int age;
     class Inner{
      public void show(){
           System.out.println("outer.this.age");
        }//如何访问外部类

 
##必须寄存在一个外部类的对象里
public class TestInner {
    public static void main(String[] args) {
        //创建内部类的对象!!!注意格式
        outer.Inner i=new outer().new Inner();
        i.show();}   
}
 ##普通内部类不能加static属性的方法和成员变量
2.静态内部类
##可以看作外部类的一个静态成员
## public class TestInner {
    public static void main(String[] args) {
        //创建静态内部类的对象!!!注意格式
        outer.Inner i=new.oute.Inner();
        i.show();}   
}
3.匿名内部类
##适合只用一次的类
##用的很少
局部内部类(在方法内部定义的类)
##作用域仅限于此方法
##很少用

Sring类(位与java.lang包)
不可变、不可继、只能被初始化一次

 

  @@@常用方法 

attention:字符串比较、常量池

API阅读(相当于一个可以查询方法的词典)

数组的拷贝
System类里也包含了一个static void arraycopy(object src,int srcpos,object dest, int destpos,int length)方法,
!!!该方法可以将src数组里的元素值赋给dest数组的元素,其中srcpos指定从src数组的第几个元素开始赋值,length参数指定将src数组的多少个元素赋给dest数组的元素


 

 

 Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException  //此错误原因为数组越界

arrys 工具类

JDK提供的java.util.Arrays类,包含了常用的数组操作,方便我们日常开发。Arrays类包含了:排序、查找、填充、打印内容等常见的操作。

@@打印数组 : Array.toString(a)

 @@数组元素排序

attention:此处的Arrays.toString()方法是Arrays类的静态方法,不是前面讲的Object的toString()方法

 @@@二分法查找

 @@@数组填充

 多维数组

多维数组可以看成以数组为元素的数组。可以有二维、三维、甚至更多维数组,但是实际开发中用的非常少。最多到二维数组(学习容器后,我们一般使用容器,二维数组用的都很少)。

 用二维数组存储表格

 冒泡排序(很重要!!!)

1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。

2. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。

 3. 针对所有的元素重复以上的步骤,除了最后一个。

4. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

优化步骤5.判断每一趟是否发生了数组元素的交换,如果没有发生,则说明此时数组已经有序,无需再进行后续趟数的比较了。此时可以中止比较。

 二分法查找(折半查找)

1)数组中的元素从小到大有序地存放在数组(array)中

2)首先将给定值key与数组中间位置上元素的关键码(key)比较,如果相等,则检索成功;

 3)否则,若key小,则在数组前半部分中继续进行二分法检索;

 4)若key大,则在数组后半部分中继续进行二分法检索。 这样,经过一次比较就缩小一半的检索区间,如此进行下去,直到检索成功或检索失败。

 代码如下:

 

注:本篇文章部分图片来自尚学堂 JAVA 高淇 java 300 集大型基础课程_哔哩哔哩_bilibili

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/888288.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号