zoukankan      html  css  js  c++  java
  • JAVA——面试

    面向 对象三大特征:
    你对面向对象的理解
    1:封装
    1)类: 封装的是对象的属性和行为
    2)方法:封装的是具体的逻辑功能实现
    3)访问控制修饰符:封装的是访问的权限

    所谓的封装就是将属性和方法封装到一个类中,简单的说就是,你是人,你有许多属性,比如你的姓名,年龄,身高,体重,性别这是属性;而同时你又吃饭,睡觉,学习,做事这些事方法,同时将属性和方法封装到类中去,就能很完美的描述这个类的特征了


    2:继承
    1)目的:避免代码重复,有利于代码的重用
    2)通过extends实现继承
    3)父类:所有子类所共有的属性和行为
    子类:子类所特有的属性和行为
    4)子类继承父类后,子类具有:子类+父类
    5)一个父类可以有多个子类
    一个子类只能有一个父类---单一继承
    6)传递性、单一继承以及多接口实现

    3:多态
    1)意义:行为的多态、对象的多态
    1.1) 同一类型的引用指向不同的对象时,有不同的实现;
    -------行为的多态:cut(),run()
    1.2) 同一对象被造型为不同类型时,有不同的功能;
    ---------对象的多态:我,水
    2)造型、
    1.父类引用能指向子类对象,子类引用不能指向父类对象;
    2.向上造型:父类引用指向子类对象,例如:Father f1 = new Son();
    3.向下造型:把指向子类对象的父类引用赋给子类引用,
    Father f1 = new Son();
    Son s1 = (Son)f1;
    但有运行出错的情况:需要强制转换强制类型转换、instanceof
    3)多太的表现形式:
    重写是父类和子类之间多态的表现
    重载是一个类中多态的表现

    方法的重写 :
    1) 重写需要遵循“两同两小一大”原则:一般都是一模一样
    1.1)两同:方法名称相同和参数列表相同
    1.2)两小:1.子类方法的返回值类型小于等于父类
    1.1)void和基本类型时,必须相同
    2.2)引用类型时,小于或等于
    2.子类方法跑出的异常小于或等于父类的----异常

    1.3)一大:子类方法的访问权限大于或等于父类的----访问修饰符

    重写+重载的区别
    1)重写:父子类中,方法名相同,参数列表相同,方法体不同
    遵循“运行期”绑定,根据对象的类型调用方法
    2)重载:一个类中,方法名相同,参数列表不同,方法体不同
    遵循“编译期”绑定,根据引用的类型绑定方法

    1) 泛型称为参数化类型(将当前类的属性的类型,方法参数的类型以及方法返回值得类型的定义权交给使用者) 原型是Object,定义了泛型只是编译器在做一些工作;
    当我们对泛型类型设置值时,会检查是否满足类型要求;
    当我获取一个泛型类型的值时,会自动进行类型转换;
    集合支持泛型,而泛型是用来约束集合中元素的类型

    计算机只认识二进制
    16进制作用: 计算机中用来缩写2进制
    int 最小值-最大值=1 补码 正负数 取反+1(二进制)

    编程时候凡用2进制的都用16进制缩写
    二进制运算符
    >>>逻辑右移位运算
    >>高位为1(负数)则补1,高位为0(正数)则补0
    <<逻辑左移动运算

    |

    && 与运算 二进制 计算规则两个数上下对齐,对应位数进行计算(乘法运算)
    经典用途:截取一个数据的后8位 称为掩码(mask)运算

    与掩码运算配合,将数据进行拆分

    | 或 运算 (加法运算) this:
    1.this指代当前对象,谁调指的就是谁
    2.用法:
    this.成员变量---访问成员变量
    this.方法()-----访问方法
    this()--------调构造方法

    输入 是读
    输出 是写

    synchronized 是同步锁和互斥锁
    同步锁就是synchronized修饰的是同一段代码
    互斥锁就是synchronized修饰的是不同段代码 只要他们的同步
    监视器对象相同,那么这几段代码间就是互斥关系,即:多个线程不能同时执行这些代码


    查询语句执行顺序(面试题)

    1 from子句:执行顺序为从后往前,从右到左
    数据量较少的表尽量放在后面
    2 where子句;执行顺序为自下而上、从右到左
    将能过滤掉最大数量记录的条件写在where子句的最右
    3 group by--执行顺序从左往右分组
    最好在group by钱使用where将不需要的记录在group by之前过滤掉

    4 having子句:消耗资源
    尽量避免使用 having会在检索出所有记录之后才对记过集进行过滤,需要排序等操作

    5 select子句;少用*号,尽量取字段名称
    消耗时间
    6 order by子句:执行顺序从左到有排序,消耗资源


    SQL语句翻译为执行计划,才能执行
    sql语句完全一样的情况下,会重用执行计划

  • 相关阅读:
    jqgrid content-type datatype
    github删除
    springcolud文章收藏
    springboot无法加载oracle驱动终极解决
    当多线程并发遇到Actor
    spring.boot 无法加载oracle驱动的可能原因
    MobileNet V2深入理解
    转载:从loss处理图像分割中类别极度不均衡的状况---keras
    6D姿态估计
    An overview of semantic image segmentation
  • 原文地址:https://www.cnblogs.com/Bighua123/p/7711663.html
Copyright © 2011-2022 走看看