每日一点Java基础小知识 — day6

欢迎来到叮当猫学编程的Java基础小知识系列~在这里,你将会看到叮当猫每日关于Java的基础知识总结,欢迎大家的点赞关注喔

  1. 方法重载:

    • 被重载的方法必须改变参数列表(参数个数或类型或顺序不一样)
    • 被重载的方法可以改变返回类型
    • 被重载的方法可以改变访问修饰符
    • 被重载的方法可以声明新的或更广的检查异常
    • 方法能够在同一个类中或者在一个子类中被重载
    • 无法以返回值类型作为重载函数的区分标准
  2. 方法重写:

    • 参数列表必须完全与被重写方法的相同
    • 返回类型必须完全与被重写方法的返回类型相同
    • 方法名相同
    • 访问权限不能比父类中被重写的方法的访问权限更低。例如:如果父类的一个方法被声明为public,那么在子类中重写该方法就不能声明为protected
    • 重写的方法能够抛出任何非强制异常,无论被重写的方法是否抛出异常。但是,重写的方法不能抛出新的强制性异常,或者比被重写方法声明的更广泛的强制性异常,反之则可以
  3. 关于Javaweb目录问题:

    • /WEB-INF/web.xml 是部署描述文件
    • /WEB-INF/classes 用来放置应用程序用到的自定义类(.class),必须包括包(package)结构
    • /WEB-INF/lib 用来放置应用程序用到的JAR文件
  4. 解决哈希冲突常用的两种方法是:开放定址法和链地址法

    • 开放定址法:当冲突发生时,使用某种探查(亦称探测)技术在散列表中形成一个探查(测)序列。沿此序列逐个单元地查找,直到找到给定 的关键字,或者碰到一个开放的地址(即该地址单元为空)为止(若要插入,在探查到开放的地址,则可将待插入的新结点存人该地址单元)。查找时探查到开放的 地址则表明表中无待查的关键字,即查找失败
    • 链地址法:将所有关键字为同义词的结点链接在同一个单链表中。若选定的散列表长度为m,则可将散列表定义为一个由m个头指针组成的指针数组T[0…m-1]。凡是散列地址为i的结点,均插入到以T[i]为头指针的单链表中。T中各分量的初值均应为空指针
  5. 关于构造方法:

    • 在类内部用户可以使用关键字**this.构造方法名()**调用(参数决定调用的是本类对应的构造方法)
    • 在子类中用户可以通过**关键字super.父类构造方法名()**调用(参数决定调用的是父类对应的构造方法)
    • 反射机制对于任意一个类,都能够知道这个类的所有属性和方法,包括类的构造方法,反射机制
  6. try{} catch() {} finally {}
    

    finally不管是否有异常都会执行,而且,try可以和catch和finally中的一个搭配使用,但是catch和finally不能单独使用

  7. 关于线程:

    • 定义线程:扩展 java.lang.Thread 类、实现 java.lang.Runnable 接口

    • 实例化线程:

      • 如果是扩展java.lang.Thread类的线程,则直接new即可

      • 如果是实现了java.lang.Runnable接口的类,则用Thread的构造方法

        Thread(Runnable target)
        Thread(Runnable target, String name)
        Thread(ThreadGroup group, Runnable target)
        Thread(ThreadGroup group, Runnable target, String name)
        Thread(ThreadGroup group, Runnable target, String name, long stackSize)
        
    • 启动线程:在线程的Thread对象上调用start()方法,而不是run()或者别的方法

  8. 对于final关键字:

    • final变量:如果是基本数据类型,则其数值一旦初始化后就不能被改变。如果是引用类型的变量,则对其初始化后,便不能再指向另一个对象,但是其里面的值是可以改变的。引用变量所指向的对象中的内容是可以改变的
    • final方法:类中的 final 方法可以被子类继承,但是不能被子类修改。声明 final 方法的主要目的是防止该方法的内容被修改
    • final类:final 类不能被继承,没有类能够继承 final 类的任何特性
  9. 非静态变量不能够被静态方法访问,只能被该类的实例化访问

    public class Test {public int x;  // 非静态变量public static void main(String []args) {System. out. println("Value is" + x);  // 编译出错,因为静态方法先行执行,此时类中的非静态变量还没有初始化,所以编译出错}
    }
    
  10. 子类继承的是父类的所有成员,并不只是非私有方法和状态,利用反射可以看出子类是继承了父类的私有方法的(不管是否是final),只是直接调用父类的私有方法是不可以的,但是利用反射的方式可以调用。字段同理

  11. 两个数值进行二元操作时,会有如下的转换操作:

    • 如果两个操作数其中有一个是double类型,另一个操作就会转换为double类型
    • 否则,如果其中一个操作数是float类型,另一个将会转换为float类型
    • 否则,如果其中一个操作数是long类型,另一个会转换为long类型
    • 否则,两个操作数都转换为int类型
  12. 关于尖括号问题:

    • 只看尖括号里边的!!明确点和范围两个概念
    • 如果尖括号里的是一个类,那么尖括号里的就是一个点,比如 List<A>List<B>List<Object>
    • 如果尖括号里面带有问号,那么代表一个范围,<? extends A> 代表小于等于A的范围,<? super A> 代表大于等于A的范围,<?> 代表全部范围
    • 尖括号里的所有点之间互相赋值都是错的,除非是俩相同的点
    • 尖括号小范围赋值给大范围,对,大范围赋值给小范围,错
    • 如果某点包含在某个范围里,那么可以赋值,否则,不能赋值
    • List<?> 和 List 是相等的,都代表最大范围
    • 补充:List既是点也是范围,当表示范围时,表示最大范围

    参考牛客Java专项题中的讲解,原题如下:

    class A {}
    class B extends A {}
    class C extends A {}
    class D extends B {}
    下面的哪4个语句是正确的?A. The type List<A>is assignable to List.
    B. The type List<B>is assignable to List<A>.
    C. The type List<Object>is assignable to List<?>.
    D. The type List<D>is assignable to List<?extends B>.
    E. The type List<?extends A>is assignable to List<A>.
    F. The type List<Object>is assignable to any List reference.
    G. The type List<?extends B>is assignable to List<?extends A>.
    
    public static void main(String[] args) {List<A> a;List list;list = a;   //A对,因为List就是List<?>,代表最大的范围,A只是其中的一个点,肯定被包含在内List<B> b;a = b;      //B错,点之间不能相互赋值List<?> qm;List<Object> o;qm = o;     //C对,List<?>代表最大的范围,List<Object>只是一个点,肯定被包含在内List<D> d;List<? extends B> downB;downB = d;  //D对,List<? extends B>代表小于等于B的范围,List<D>是一个点,在其中List<?extends A> downA;a = downA;  //E错,范围不能赋值给点a = o;      //F错,List<Object>只是一个点downA = downB;  //G对,小于等于A的范围包含小于等于B的范围,因为B本来就比A小,B时A的子类嘛
    }
    

【Java】每日一点Java小知识 --- day6相关推荐

  1. 安卓期末作品小项目_每日一个财务小知识——洞悉洞晰财务报告第一季

    财务报告 洞悉洞晰财务报告 目录 01/账务报告概述 02/资产负债表 03/利润表 04/现金流量表 05/所有者权益变动表 06/附注 一.财务报告概述 (一)财务报告及其目标 财务报告是指企业对 ...

  2. 邮箱每日发送上限小知识,告诉你各大邮箱每天最高发信数量

    是不是每天都发超多邮件,那你知道邮件其实也是有上限的么?今天就给你科普一下这一类的邮箱小知识吧! 为什么限制邮箱每日发送上限? 首先是为了防止有的人发送垃圾邮件,所以对邮箱每天的发送量做了限制,如果超 ...

  3. Java的一些基础小知识之JVM与GC (转)

    一.JVM是什么 Java虚拟机(英语:Java Virtual Machine,缩写为JVM),又名爪哇虚拟器,一种能够运行Java bytecode的虚拟机,以堆栈结构机器来进行实做.最早由太阳微 ...

  4. java 注解方式_小知识~~javaSE注解(超详细)

    第一节 反射应用:完善DBUtil,提取select() 1.1 认识ResultSetMetaData 利用ResultSet的getMetaData的方法可以获得ResultSetMeta对象,而 ...

  5. oracle 每日归档量,小知识:统计Oracle的日归档量

    首先这对于Oracle DBA来说是个初级问题,即使不熟悉的初级DBA也可以快速在网上搜索到现成的SQL语句. 网上搜到的查询SQL基本类似这样的逻辑: select trunc(completion ...

  6. ISO OSI IOS 傻傻分不清楚【每日打卡小知识】

    ISO:国际标准化组织 OSI:开放系统互联模型 IOS:苹果操作系统(在计算机网络中,IOS是互联网操作系统,是思科公司为其网络设备开发的操作系统维护系统) OSI七层模型:(写信) 应用层 APD ...

  7. android小知识(1)

    1.Android名称的由来. 大家可能不知道,Android一词的本义原指"机器人",它也是谷歌于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操 ...

  8. zbrush建模小知识,10年建模师都在用

    全网只此一篇,收藏不迷路✅ 每日更新建模小知识 1⃣clay笔刷参数详解 alpha:白色方片(alpha28) 焦点衰减:-30→0都可,根据个人要求调节 z强度:1→50(强度越高,雕刻越立体,根 ...

  9. java 快速从树节点找到数据_14期每日分享Java程序员分享超全哈希相关的知识

    什么是每日分享? 饥人谷每天为大家带来一篇程序员分享!内容都来自于热爱编程.热爱生活的小伙伴们!分享的话题与编程.生活.兴趣.爱好.运动等相关! 想要每天都进步一点点的小伙伴们快点下关注吧! 今天的分 ...

最新文章

  1. mysql的proxy机制_MySQL Proxy工作机制浅析
  2. iphone 文件保存策略
  3. 正则高级用法-分组group+替换
  4. phpcmsV9 关键词keywords删除、替换与修改
  5. java量_Java 2. 量与常量
  6. 数字图像处理(四)——图像编码技术(一)
  7. spring容器_Spring 容器的启动过程探秘
  8. 《Linux内核设计与实现》读书笔记 - 目录 (完结)【转】
  9. ORA-01795: 列表中的最大表达式数为1000的解决方法
  10. Windows XP 所提供的键盘快捷键
  11. go之树型结构深度理解
  12. 自然语言处理(1)——绪论与概述
  13. 2020年安卓各大应用市场份额占比分析,Android自定义View详解
  14. TCP/IP第四章笔记ARP协议
  15. WiCloud 商业Wi-Fi管理平台
  16. 什么是Cookie?怎样设置和读取Cookie?
  17. Linux云计算的文件管理和用户管理(01)
  18. 关于HML要玩物联网这件事 之 CC3200 TCP Client
  19. 使用ENVI软件中的SARSCAP工具对RADARSAT数据进预处理
  20. matlab变步长龙格库塔法,matlab龙格库塔法变步长龙格库塔法.doc-资源下载在线文库www.lddoc.cn...

热门文章

  1. 计算机常用英语单词对照
  2. 【计算机图形学】OpenGL递归实现光线追踪
  3. 谷歌地图谷歌地图_如何有效使用Google地图
  4. 天津大学计算机软件技术基础试题答案,天津大学网络学院计算机软件技术基础-1试题b卷.doc...
  5. Design Compiler工具学习笔记(5)
  6. 1526: 小L的项链切割
  7. php vox转码,Audio Track Convert Tool(音轨转码工具)
  8. Apollo(阿波罗)(一)环境搭建
  9. android PMU
  10. AcrelCloud-9500电瓶车充电桩收费平台在公共场所中的应用