学习java对应的问题总结与解答

本文详细介绍了Java编程中的基础知识,包括方法重载并不局限于同一类,而是在继承关系中同样适用。final关键字不能修饰构造方法和代码块,因为它们无法被继承。讲解了装箱和拆箱的概念,以及在-128至127之间的基本类型会使用常量池。深入探讨了Java中的静态方法、抽象类、接口、异常处理、线程创建、IO流、同步锁和Lock,以及网络模型。此外,还涵盖了字符串对象与StringBuilder、StringBuffer的区别,以及集合中的Set接口,特别是TreeSet的排序机制和HashMap的特点。最后,总结了TCP的三次握手和四次挥手过程。

1、问题1:方法重载只能出现在同类中吗?还是也可以出现在继承关系中

解答:首先要重载的条件:

  • 1.方法名相同
    2.参数列表不同(类型、个数)
    3.与返回值无关

重载只能在同一个类中只是一个伪概念,方法重载在继承关系中我也可以认为是在同一类中。

2、 问题2:final不能修饰构造方法和代码块为什么?

因为构造方法和final本身就不能够被继承,所以不存在被修改的可能,用final修饰属于多余操作,并且也会报错

3、装箱预拆箱

Long l1 = 127L;
Long l2 = 127L;
System.out.println(l1==l2);【false】

Byte,Short,Integer,Long,Character,Boolean 5种 ,在 -128 ~ 127中用到常量池,会自动拆箱装箱,其余数字范围则会新建实例
参考

4、第一阶段提问

  • 1 1.基本数据类型

    • 整形:int、byte、long、short
    • 字符型:char
    • 浮点型:double、float
    • 布尔型:boolean
  • 2 2.方法的重载与重写

    • 重写
      • 是什么:父类方法满足不了子类需求,子类重写父类的方法
      • 特点:
        • 必须发生在继承关系中
        • .方法名必须相同
        • .参数列表必须一致
        • 返回值类型必须与父类一致
        • 子类重写的方法访问修饰符权限必须与父类的一致或者比父类的更大
    • 重载
      • 是什么:
  • 3.数组的特点

    • 数据类型必须一致
    • 有索引
    • 长度固定
  • 4.面面对象的三太特性

    • 封装
      • 将 方法 和 属性 写到同一个类中,并将属性 私有化,生成 get set方法,
      • 外部访问属性需要通过get和set方法,内部可以直接访问属性,这样的一个类我们认为它完成了封装。
    • 继承
      • 子类继承父类,
      • 子类实例可以调用父类除private修饰以外的所有属性和方法,一个子类只能继承一个父类,但是可以多重继承,
      • 一个父类可以拥有多个子类。
    • 多态
      • 父类的引用指向子类的实例,多个子类继承同一个父类实现了这些类共通的方法,每一个子类实现的结果都不同。引用参考
  • 6.static
    引用参考 - 可以修饰什么
    - 属性、方法、内部类、代码块

    • 静态变量
      • 特点
        • 所有对象共享
        • 在类被载入时创建,只要类存在,static变量就存在
      • 两种方式访问
        • 直接访问:类名.属性;
        • 实例化后访问:对象名.属性;
    • 静态方法

  • 7.final

    • 可以修饰什么
      • 方法、属性、类
    • 有什么特点
      • 1.final 修饰属性为常量,存在常量池 必须要手动初始化,属性名都为大写 与 static 一起使用为静态常量,一般当做状态值使用
      • 2.final 修饰方法,无法被重写
      • 3.final 无法修饰构造方法、构造代码块
      • 4.final 修饰的类没有子类,不能被继承
  • 8.抽象类与接==和equals()
    - ==
    - 若是基本数据类型,则直接比较其存储的 “值”是否相等; 若是引用类型,则比较的是所指向的对象的地址
    - equals
    - 是判断两个变量或者实例指向同一个内存空间的值是不是相同,对于自定义对象的比较,需要重写equals

  • 10.String,StringBuffer, stringBuild

    • String: string是字符串常量,不可改变的对象
    • StringBuffer :线程安全的可变字符序列、速度慢
    • stringBuild::线程不安全的可变字符序列,不过速度快
  • 12.set

    • 特点:无序不可重复
    • 常见的Set实现的接口类
      • TreeSet
        • 特点
          • 无序可排序,不可重复
          • 不能存储 null 对象的集合底层是红黑树(平衡二叉树)
          • TreeSet 存储的对象必须实现自然排序或者在创建 TreeSet 对象的时候传递比较器
        • 自然排序:存储进 TreeSet 集合的对象类必须实现 Comparable 接口,重写compareTo() 方法
        • 比较器:
          • Comparator 接口,重写 compare()
          • TreeSet 集合对象的时候,通过构造方法传递比较器对象
      • HashMap
        • 特点:底层是
  • 13.Map

    • 特点:
      • 每次是以key-value的形式操作对象
      • HashMap:key是无序不可重复 value可重复
      • 当 key 相同的时候,value 会覆盖
      • 存储自定义对象,key 需要重写 hashCode() 和 equals()
  • 14.异常的外理

  • 15.线程创建方式

  • 16.Io流

  • 17、同步锁和lock

  • 18.注解和元注解

  • 19.网络模型

  • 21.三次握丢和四次挥手

    • 三次握手:

第一次握手:客户端给服务端发一个 SYN 报文,并指明客户端的初始化序列号 ISN。此时客户端处于 SYN_SENT 状态。
首部的同步位SYN=1,初始序号seq=x,SYN=1的报文段不能携带数据,但要消耗掉一个序号。
第二次握手:服务器收到客户端的 SYN 报文之后,会以自己的 SYN 报文作为应答,并且也是指定了自己的初始化序列号 ISN(s)。同时会把客户端的 ISN + 1 作为ACK 的值,表示自己已经收到了客户端的 SYN,此时服务器处于 SYN_RCVD 的状态。
在确认报文段中SYN=1,ACK=1,确认号ack=x+1,初始序号seq=y。
第三次握手:客户端收到 SYN 报文之后,会发送一个 ACK 报文,当然,也是一样把服务器的 ISN + 1 作为 ACK 的值,表示已经收到了服务端的 SYN 报文,此时客户端处于 ESTABLISHED 状态。服务器收到 ACK 报文之后,也处于 ESTABLISHED 状态,此时,双方已建立起了连接。

-  四次挥手:
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值