大数据预科班9

大数据预科班9

复习:

static

  • static--变量、方法、代码块、内部类
  • 静态变量--放于静态区,被所有对象所共享
  • 静态方法--放于方法区中的静态区,在栈内存中执行(代码块+方法)
  • 所有的非静态属性和非静态方法必须由对象来调用
  • 静态不属于对象,属于整个类;
  • 静态代码块,存储在静态区,在本类创建对象或者调用方法的时候被调用,终其一生只执行一次
  • 程序启动时,先加载好核心类库到方法区(有静态属性或静态方法存放在静态区),其次是主函数所在的类,类在第一次使用的时候才会加载,类一旦加载到方法区,就不会在移除

final

  • 修饰变量--常量,基本类型值不可变;引用数据类型中地址不可变,属性值可变
  • 修饰函数--最终方法,可重载,不可重写
  • 修饰类--最终类,不可继承

抽象类

  • abstract
  • 有构造函数,但不能创建对象
  • 抽象方法不能用static、final、private修饰

接口

  • 接口不是类,没有构造函数
  • 所有方法都是抽象方法(JDK1.8以前)--public abstract修饰
  • 属性public static final
  • 模板作用:规范化
  • 接口可以声明对象,但不能创建对象

内部类

  • 含义:定义在类内部的类
  • 作用:封装的第三种形式
  • 方法内部类

1. 定义在方法内的类
2. 举例
    class Outer{
        public void m(){
            class Inner1{
                public void m(){
                    System.out.println("inner");
                }
            }

            System.out.println("outer");
        }   
    }
3. 不能在方法外使用
4. 作用:封装
5. 不能定义静态变量和静态方法,可以定义静态常量
6. 外部类不能调用,但是属于外部类
7. 不能使用当前方法的变量,可以使用常量
8. 内部类可以使用外部类的东西(先后出现顺序)
9. 内部类可以继承其他类,实现接口
  • 成员内部类

1. 定义在类内方法外
2. 举例
    class A{
        class B{

        }
    }
3. 创建内部类对象
    A a=new A();
    A.B b=a.new B();

    new A().new B();
4. 不能定义静态变量和静态方法,可以定义静态常量
5. 可以继承其他类,实现接口
  • 静态内部类

1. 用static修饰的成员内部类
2. 与成员内部类差别很大
3. eg
    class A{
        static class B{

        }
    }
4. 创建
    A.B b=new A.B();
5. 可以定义静态方法和静态方法
6. 静态内部类和普通类基本一致
7. A.B.m();//驼峰命名法和源代码判断是内部类还是对象(System.out.print())

1. 判断是不是内部类看 $.class中是否有$(A$B.class存在内部类)
所以一般不用$符号命名类,容易引起歧义
2. 判断是不是方法内部类看$后面是否有数字(方法中的类按照顺序依次填数字1,2,3,4...)(A$1B)

  • 匿名内部类

1. 没有名字,只能调用一次
2. eg
    A a=new A(){

    };
3. 本质:继承类和实现接口
4. {}匿名内部类;习惯上认为eg中的全部
5. 普通类也可以写匿名内部类(本质:继承和实现)
6. 类:相当于继承类
7. 接口:相当于实现接口
8. 当匿名内部类定义在方法中时,与方法内部类类似,不能手动定义构造函数(匿名类没有名字)
9. 定义在类内方法外与成员内部类类似
10. 匿名内部类自定义的方法没啥用,几乎不会定义,除非在其中的方法调用它   

扩展:内部接口

  • 定义在类内的接口或定义在接口中的接口
  • 类内的接口默认是静态的(必须为静态的,要不获取不到)、
  • 接口中允许定义成员内部类,且默认为static
  • 类与接口之间可以互相定义

  • package
  • 导包 import(默认不用导包java.lang核心类库--一个java程序执行之前会自动把这个包下的类自动加载进来)
  • 导包:同一包下所有类,但是不包括子包下的所有类import java.util.*;
  • java.util工具包
  • java.io传输数据
  • java.net网络通讯
  • javax扩展包
  • java.nio并发

垃圾回收机制

  • 针对堆内存的(因为栈中用完就释放了;)
  • 当调用构造函数时,会创建一个对象,因为java中对每种数据类型都明确的给定了大小。
  • 创建对象的时候,会自动计算大小分配内存。所以在内存回收和释放的时候也是由java自己管理
  • C语言(析构函数)
  • String最终成为String数组
  • 一个对象创建的时候是放到新生代的伊甸园区,如果栈中没有引用,那么会在扫描的时候被解析,释放内存;如果经过一次依然释放内存,将会移入新生代的幸存区,幸存区的扫描频率略低于伊甸园区;如果幸存区多次扫描依然没有被释放,会被放入老生代,老生代的扫描频率远远低于新生代,老生代的对象一旦被回收,可能造成程序的卡顿或崩溃。
  • 初代回收--新生代的回收minor GC
  • 完全回收--老生代的回收full GC

类加载器

  • 启动类加载器/引导类加载器
  • 扩展类加载器
  • 系统类加载器(比较活跃)
  • 双亲委派机制

API(Application //Programing Interface)

  • Object
  • String/StringBuilder/StringBuffer
  • Pattern正则表达式
  • 包装类
  • 数学类
  • 日期类
  • 异常
  • 集合/泛型/Comparator/Iterator
  • Map
  • File
  • IO装饰者模式
  • 线程
  • 套接字
  • Juint测试
  • JDk5静态导入、可变参数局、枚举、反射
  • JDK8
  • XML

Object

  • 是所有类的顶级父类(超类)
  • 唯一没有父类的类
  • 重要方法

1. clone克隆并产生一个新对象,地址不一样,属性值一样(protected、需要强转、抛出异常CloneNotSupportedException--所对应的类必须实现Cloneable接口--没有任何的方法和属性,只是标识这个类可被克隆)
2. equals判断两个对象是否一致(相等),判断的是直接值(地址);
   手动重写equals
//先判断两个对象的地址(==)    
//判断对象是否为null
//判断类型是否一致(对象.getClass)
//判断属性值(注:String比较时比较地址和内容)

注:==判断的是对应的直接值(地址)
3. fanilize通知垃圾回收器回收垃圾对象,但是垃圾回收器不一定执行
    System.gc();//底层用fanilize写的
4. getClass获取当前对象的实际类型
5. hashCode(native称之为本地方法:c语言实现)(散列算法得到一个值,每个对象产生的哈希码是唯一的)(每一个对象的唯一特征)
    重写hashCode方法时,当equals值为true时,要求hash码一致,反过来不成立。
6. toString方法:当打印一个对象的时候,默认调用的是toString
7. wait
8. notify

进制

进制缩写全称
二进制BinBinary
八进制OctOctal
十进制DecDecimal
十六进制hexHexagondecimal

eclipse快捷键

名称快捷键
单行注释与取消ctrl+/
多行注释ctrl+shift+/
多行注释取消ctrl+shift+\
调整代码格式alt+shift+f
快速导包ctrl+shift+o
错误提示键ctrl+1
复制ctrl+alt+up
上移alt+up
下移alt+down
删除ctrl+d
......
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乘风御浪云帆之上

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值