每日晨考

晨考题

  1. 软件开发生命周期

    问题定义

    可行性分析

    总体描述

    系统设计(架构设计+数据库设计)

    编码

    调试和测试

    验收与运行

    (维护升级或废弃阶段)

  2. 数据库三大范式

    1第一范式(确保每列保持原子性),如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库表满足了第一范式

    2第二范式(确保表中的每列都和主键相关)第二范式需要确保数据库表中的每一列都和主键相关

    3第三范式(确保每列都和主键列直接相关,而不是间接相关)第三范式需要确保数据表中的每一列数据都和主键直接相关,而不能间接相关。

  3. 描述数据库常用公共字段

    答:

    • 主键ID:用于标识列唯一 标识
    • createdate:创建时间,
    • updatedate:更新时间
    • createuser:创建者
    • updateuser:更新者
    • status:状态字段
    • sortnum:排序字段
  4. PO VO DTO概述和区别

    答:

    • po:持久化层对象,对象的属性和数据库表的字段一一对应,也可以不是

    • vo:表现层对象,对象的属性和页面展示的数据名称一一对应,即前端后台交互时需要封装对象

    • dto:数据传输对象(为了传输数据所创建的一个对象),

      用在需要跨进程或远程传输时,它不应该包含业务逻辑

  5. 序列化作用、描述序列化和反序列化

    答:

    • 序列化:将对象 转化成 字节序列 的过程

    • 反序列化:将 字节序列 恢复成 对象的过程

    • 序列化ID:决定着是否能够成功反序列化。java的序列化机制是通过在运行时判断类的serialVersionUID来验证版本一致性的。在进行反序列化时,JVM会把传来的字节流中的serialVersionUID与本地实体类中的serialVersionUID进行比较,如果相同则认为是一致的,便可以进行反序列化,否则就会报序列化版本不一致的异常

  6. 描述常用编码规范(阿里巴巴)(至少5点)

    1. 命名风格
    • 代码命名

      • 代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束
      • 类名使用 UpperCamelCase 风格,必须遵从驼峰形式
      • 包名统一使用小写,点分隔符之间有且仅有一个自然语义的英语单词
      • 中括号是数组类型的一部分,数组定义如下: String[] args;
      • POJO 类中布尔类型的变量,都不要加 is,否则部分框架解析会引起序列化错误
    • 常量命名全部大写,单词间用下划线隔开,力求语义表达完整清楚,不要嫌名字长

  7. 描述数据库编码规范

    1. 建表规约
      • 表明,字段名必须使用小写字母或者数字,禁止出现数字开头,禁止两个下划线中间出现数字
      • 表明不使用复数名词
      • 禁用保留字
      • 小数类型使用decimal ,禁止使用float 和double 存在精度损失问题
      • varchar 是可变长字符串,不预先分配存储空间,长度不要超过 5000,如果存储长
        度大于此值,定义字段类型为 text,独立出来一张表,用主键来对应,避免影响其它字段索引效率。
      • 表必备三字段: id, gmt_create, gmt_modified。
      • 库名与应用名称尽量一致。
  8. JAVA的缺点(至少3条)

    答:

    角度一:
    优点:简单、安全、稳定、跨平台
    缺点:需要运行环境、不适合开发桌面应用程序
    应用:BS结构的ERP系统、金融系统、电子商务系统、网站等
    几乎所有的银行系统和银行网站都是基于Java平台的,你可以访问看看。

    角度二:
    优势:
    (1)一次编写,到处运行。
    (2)系统的多平台支持。
    (3)强大的可伸缩性。
    (4)多样化和功能强大的开发工具支持。
    劣势:
    (1) 与ASP一样,Java的一些优势正是它致命的问题所在。正是由于为了跨平台的功能,为了极度的伸缩能力,所以极大的增加了产品的复杂性。
    (2) Java的运行速度是用class常驻内存来完成的,所以它在一些情况下所使用的内存比起用户数量来说确实是“最低性能价格比”了。从另一方面,它还需要硬盘空间来储存一系列的。java文件和.class文件,以及对应的版本文件。

    角度三:
    1、跨平台性,虽然是很好的优势,可以让JAVA在任何的系统中运行,但是前提是该系统要安装JAVA虚拟机,这样导致一些JAVA编写的桌面程序无法在一般的用户(没有安装JAVA虚拟机的用户)上使用
    2、JAVA的身后是SUN公司,提供及时的API更新,但是过多的版本导致JAVA的向下兼容性很差。而SUN公司在J2EE上的标准定义的并不是完美,导致在J2EE的开发中多数使用开源框架,开源框架是好东西,但是更新速度并不快。
    3、都说面向对象的语言先进与面向过程,JAVA是OOP语言,但是它适合的是BS系统,在WEB项目中JAVA的实力毋庸置疑,但是转到了底层的程序却无法同C++抗衡
    4、个人认为JAVA的最大优点是开源,但是这往往也成了最大的缺陷了,无法定义一个好

posted @ 2020-12-21 21:40  左岸小镇_梦归  阅读(85)  评论(0)    收藏  举报