zoukankan      html  css  js  c++  java
  • javaoo总结二

    51、awt和swing有什么区别?
    awt是利用操作系统的风格定义组件的风格,所以跨平台时,组件显示可能不一致。swing有自己独立的显示功能,跨平台时,显示风格一致。swing是在awt基础上扩展的

    52、如何进行事件的添加?;
    1、确定事件源;2、书写监听器,实现监听接口;3、注册,建立事件源和监听器的联系。
    53、流按照输入输出方向分有几种?相对于什么而言?
    输入流和输出流
    以内存为参照物,如果从数据源中将数据读取到内存,那么就是输入流,也叫读取流。如果从内存中,将数据写入数据源,那就是输出流,也叫写入流。
    54、流按照传输内容分有几种?各自的父类是什么?
    三种:字节流、字符流、对象流。但是无论是哪种流,底层部分都是以字节传输的,所以本质都是字节流。只不过,为了方便对字符数据和对象数据进行操作,所以在字节流基础上进行了一层封装,形成字符流和对象流
    字节流的父类:InputStream、OutputStream
    字符流的父类:Reader、Writer

    55、操作流时,如果文件不存在会出现什么情况?如果流不关闭会出现什么情况?
    写入流时,但文件不存在时,会创建新文件,但前提是文件所在目录必须存在,否则会抛出FileNotFoundException。
    如果流不关闭,不但浪费资源,而且写入流有可能写不进数据。
    56、如何判断一个文件是否存在?如何创建一个目录?如何知道一个目录中有多少文件?
    判断文件是否存在:File对象.exists();
    创建目录:File对象.mkdir();
    得到文件列表:File对象.listFiles();

    57、静态块在什么时候执行?
    静态块在类加载时执行,只执行一次。
    58、什么是关系型数据库?
    关系型数据库是以表作为实体,以主键和外键作为表间联系的数据库结构。
    59、什么是一对一、一对多、多对多?
    1、一对一:一条主表记录对应一条从表记录,同时一条从表记录也对应一条主表记录。
    2、一对多:一条主表记录对应多条从表记录,同时一条从表记录对应一条主表记录。
    3、多对多:一条主表记录对应多条从表记录,同时一条从表记录对应多条主表记录。多对多一般有中间表描述这样的关系
    60、数据库完整性有哪些?
    1、实体完整性。保证一行数据是有效的。表中的一行数据如果与它所代表的实体完全一致,则具备实体完整性。
    保证每行所代表的实体能相互区别,不能存在两条一摸一样的记录。
    实现方法:--主键约束。主键不能为空,也不能重复,一个表中只能有一个主键
    -- 唯一约束。指定给列的所有值必须唯一,该列在表中每一行的值必须唯一。它和主键约束的唯一区别在于该列可以为空,并且可以在一张表中给多个列设置唯一约束
    2、域完整性。保证一列数据是有效的
    域完整性是指定列的输入有效性
    实现方法:--非空约束:NOT NULL
    --默认约束:Default
    --检查约束:check(MySQL不支持)
    3、引用完整性。保证引用的主键是有效的,由外键约束实现
    4、用户自定义完整性。保证自定义规则
    61、什么是主键,主键有什么特点?
    主键是一条记录在整个表中的唯一标识。可以利用主键区分不同的记录
    主键的特点:非空和不能重复
    62、什么是外键,它和外键约束有什么区别
    外键是指从表的某列与主表的主键存在依附关系
    外键约束是指在外键关联主键上强制加上一个约束,如果违反该约束则不允许该条数据的修改。
    注意:没有外键约束不表示没有外键
    63、如何添加外键约束。
    alter table 从表名 add constraint fk_1 foreign key(外键列名)references 主表名(主键名)
    64、如何删除主表记录?
    由于主表记录有可能有从表记录进行引用,所以如果直接删除删除主表记录时,由于有外键约束存在,可能无法删除。
    删除主表记录有两种方式:1、先删除主表记录对应的从表记录,再删除主表记录;2、将主表记录对应的从表记录的外键设置为null,再删除主表记录
    65、增、删、改、查的基本SQL语句
    增:insert into 表名(字段列表)values(值列表)
    删:delete from 表名 where 条件
    改:update 表名 set 列名=新值 where 条件
    查:select * from 表名
    66、DELETE和TRUNCATE的区别
    delete会记录日志,意味着删除后的数据还可以恢复,但是效率低,而且可以只删除部分数据。
    truncate不会记录日志,删除后的数据不能恢复但是效率高,只能删除全部数据。
    67、排除重复记录用什么关键字?如何限制查询数据的返回限定行数?
    排除重复记录用distinct
    限制查询数据的返回限定行数使用limit 0,3
    68、如何查询null值
    不能直接用=,要用is null 或者is not null
    69、SQL语句的聚合函数有哪些?
    count:统计行的数量
    sum:获取单个列的合计值
    avg:计算某个列的平均值
    max:计算列的最大值
    min:计算列的最小值
    70、在分组语句中,查询的列可以有哪些?
    只能是分组列和聚合函数
    71、where和having的区别
    where执行在分组之前,所以不能跟聚合函数
    having 执行在分组之后,是对分组结果的筛选,只能跟聚合函数
    72、描述SQL查询语句执行顺序
    第一步:执行from
    第二步:where条件过滤
    第三步:group by 分组
    第四步:执行select投影列
    第五步:having条件过滤
    第六步:执行order by排序
    73、内连接和外连接区别
    内联接只能查询主表和从表有对应记录的数据
    外联接可以查询一个表中的所有记录,无论这些数据是否有对应记录
    74、什么是JDBC
    JDBC是java连接数据库的一套标准,该标准提供了大量的接口,这些接口由厂商根据自身数据库的特点做实现,由用户做方法调用,用户根据接口调用方法,可以屏蔽不同数据库的差异,这样无论连接什么数据库都是一套API。
    75、JDBC开发流程
    1、加载驱动,建立连接
    2、执行SQL语句
    3、增、删、改需要更新数据库,查询需要得到结果集,并通过遍历结果集,得到查询数据。
    4、关闭连接

    76、什么是SQL注入
    SQL注入:采用字拼接符串方式,拼SQL语句时,如果值中有SQL语句的关键字或特殊字符,可能导致运行结果不正确,或SQL语句的语法错误。
    77、 Statement和PreparedStatement的区别
    statement是preparedstatement的父接口。采用statement执行SQL语句时,由于SQL语句的值一般由用户提供,所以只能采用拼接字符串的方式设置。这样随着值的不同,系统会做多次SQL语句的编译操作,所以效率低,而且容易引起SQL注入
    preparedstatement提供占位符机制,将需要设置值的地方都用占位符表示,这样无论什么值都是一个SQL语句。不会进行多次编译操作,效率高。而且无论什么值,都会做字符串处理,不会引起SQL注入。
    78、什么是三层架构
    1、表现层:作为数据的展示和数据的提供
    采用MVC模式。
    M:表示模型。也就是实现类。作为数据存储和传输的介质
    V:表示视图,也就是GUI 窗体。作为数据展示和收集的平台
    C:表示控制。也就是事件处理。负责调用业务组件完成业务处理
    2、业务层:业务逻辑处理。
    采用事务脚本模式。将一次请求中所有的业务操作封装成一个方法。保证这些业务操作中,数据库更新操作同时成功,同时失败。不允许出现部分成功部分失败,这样引起数据混乱的操作。
    3、持久层:主要目的是完成内存数据和磁盘数据的转换。
    采用DAO模式。建立实体类和数据库表做映射,也就是哪个表对应哪个类,哪个列对应哪个属性,而持久性的目的就是完成对象数据和关系数据的转换。

    79、项目开发的流程:
    可行性分析--需求分析--设计--编码--测试--维护
    80、什么是反射?
    反射:在编译时并不知道应该加载哪个类,类的加载是在运行期间进行的。通过反射可以对类进行加载、探知、自审。

    81、如何得到Class对象?如何利用Class对象产生该类的对象?
    1、类名.class;
    2、对象.getClass();
    3、Class.forName("类全路径");
    Class对象.newInstance();调用该类无参构造方法产生对象
    82、线程和进程的区别?
    进程是指一种“自包容”的运行程序,由操作系统直接管理,直接运行,有自己的地址空间,每个进程一开启都会消耗内存。
    线程是进程内部单一的顺序控制流。一个进程拥有多个线程。多个线程共享一个进程的内存空间。
    基于进程的特点是允许计算机同时运行两个或更多的程序
    基于线程的多任务处理环境中,线程是最小的处理单位
    83、创建线程有几种方式?如何启动线程?调用start()和调用run()的区别?
    创建和启动线程
    通过两种方法创建Thread对象:
    --声明一个Thread类的子类,并覆盖run()方法
    class myThread extends Thread{
    public void run();//覆盖该方法
    }
    -- 声明一个实现Runnable接口的类,并实现run()方法
    class myThread implement Runnable{
    public void run();//实现该方法
    }
    启动线程,调用start();

    start()方法是启动线程的方法,会在主线程基础上开启一个子线程,两个线程同时执行。线程启动后会调用run()。
    而直接调用run(),不会在主线程之外创建新的子线程,是普通方法调用


    84、线程有几种状态?
    新建-就绪-运行-死亡
    休眠、挂起、等待、阻塞
    85、什么是线程优先级?分为几级?
    当两个或两个以上的线程同时处于就绪状态时,优先级高的线程,会优先执行
    分为10级,数字越大,优先级越高
    86、什么是线程同步?同步会造成什么结果?

    线程同步(线程安全):当两个或两个以上的线程,同时访问一个对象时,为了避免数据混乱,同一时间只允许一个线程进行访问。另外线程进行等待。

    同步带来的后果:
    1、数据安全;2、效率低下。
    87、什么是XML?XML声明是怎样的?XML注释是怎样的?
    XML可扩展的标记语言,以标记和子标记方式描述对象数据
    注释:<!-- 注释 --> 注释不能嵌套
    声明:<?xml version="1.0" encoding="UTF-8" ?>

    88、一个格式良好的XML有哪些规定?
    -- 必须有XML声明语句<?xml version="1.0" encoding="utf-8"?>
    -- 必须有且仅有一个根元素
    -- 标记大小写敏感
    -- 属性值用引号
    -- 标记成对
    -- 空标记关闭<a/> <a> </a>
    -- 元素正确嵌套
    89、格式良好的XML和有效的XML有什么区别?
    有效的XML除了满足XML规范外,还要满足相应DTD和Schema定义的元素规则
    有效的XML一定是格式良好的,但格式良好的XML不一定是有效的
    90、DOM和SAX有什么区别?
    DOM和SAX是解析XML的两种方式
    DOM解析:1、基于树状结构的API。2、可读取、可写入。3、随机访问元素。4、大型文档则会造成内存紧张。
    SAX解析:1、基于事件模型的API。2、占用内存小。3、只能读取不能写入。4、文档只能遍历一次,也不能随机访问元素

    91、TCP/IP协议分为几层?
    4层。应用层、传输层、网络互联层、网络接口层
    92、什么是端口?常见端口有哪些?
    端口:就是应用程序用于数据交互的通道,用于实现程序间的通信。每个应用程序都有固定的端口。如果两个应用程序端口一样会造成端口冲突。
    常用的端口:
    1、协议:Telnet协议tel 端口:23
    2、协议:简单邮件传输协议smtp 端口:25
    3、协议:文件传输协议 ftp 端口:21
    4、协议:超文本传输协议http 端口:80
    93、TCP和UDP的区别是什么?
    TCP协议:
    1、较可靠的双向流协议
    2、三次握手机制
    3、提供消息确认、错误检测和错误恢复等服务。如果数据在传输过程中有损耗,有遗失,会要求发送方重新发送。从而保证数据的完整性。
    UDP协议:比较不可靠。如果数据在传输中有损耗,不会要求重新发,优点是速度快。

  • 相关阅读:
    Redis 学习目录
    Knockout 官网学习文档目录
    C# 知识点回忆..
    爬虫-HtmlAgilityPack
    net core 3.1 知识累积
    共享文件夹(局域网)报错:The username or password is incorrect
    使用 Beyond Compare 工具比较合并 TFS 管理的代码
    创建索引,SQL优化
    LINQ SelectMany代替for循环赋值,把联合查询的值赋值给第1个集合
    判断文件编码
  • 原文地址:https://www.cnblogs.com/zzyytt/p/6006378.html
Copyright © 2011-2022 走看看