【Java】每日一点Java小知识 --- day6
每日一点Java基础小知识 — day6
欢迎来到叮当猫学编程的Java基础小知识系列~在这里,你将会看到叮当猫每日关于Java的基础知识总结,欢迎大家的点赞关注喔
方法重载:
- 被重载的方法必须改变参数列表(参数个数或类型或顺序不一样)
- 被重载的方法可以改变返回类型
- 被重载的方法可以改变访问修饰符
- 被重载的方法可以声明新的或更广的检查异常
- 方法能够在同一个类中或者在一个子类中被重载
- 无法以返回值类型作为重载函数的区分标准
方法重写:
- 参数列表必须完全与被重写方法的相同
- 返回类型必须完全与被重写方法的返回类型相同
- 方法名相同
- 访问权限不能比父类中被重写的方法的访问权限更低。例如:如果父类的一个方法被声明为public,那么在子类中重写该方法就不能声明为protected
- 重写的方法能够抛出任何非强制异常,无论被重写的方法是否抛出异常。但是,重写的方法不能抛出新的强制性异常,或者比被重写方法声明的更广泛的强制性异常,反之则可以
关于Javaweb目录问题:
/WEB-INF/web.xml
是部署描述文件/WEB-INF/classes
用来放置应用程序用到的自定义类(.class),必须包括包(package)结构/WEB-INF/lib
用来放置应用程序用到的JAR文件
解决哈希冲突常用的两种方法是:开放定址法和链地址法
- 开放定址法:当冲突发生时,使用某种探查(亦称探测)技术在散列表中形成一个探查(测)序列。沿此序列逐个单元地查找,直到找到给定 的关键字,或者碰到一个开放的地址(即该地址单元为空)为止(若要插入,在探查到开放的地址,则可将待插入的新结点存人该地址单元)。查找时探查到开放的 地址则表明表中无待查的关键字,即查找失败
- 链地址法:将所有关键字为同义词的结点链接在同一个单链表中。若选定的散列表长度为m,则可将散列表定义为一个由m个头指针组成的指针数组T[0…m-1]。凡是散列地址为i的结点,均插入到以T[i]为头指针的单链表中。T中各分量的初值均应为空指针
关于构造方法:
- 在类内部用户可以使用关键字**this.构造方法名()**调用(参数决定调用的是本类对应的构造方法)
- 在子类中用户可以通过**关键字super.父类构造方法名()**调用(参数决定调用的是父类对应的构造方法)
- 反射机制对于任意一个类,都能够知道这个类的所有属性和方法,包括类的构造方法,反射机制
try{} catch() {} finally {}
finally不管是否有异常都会执行,而且,try可以和catch和finally中的一个搭配使用,但是catch和finally不能单独使用
关于线程:
定义线程:扩展
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()或者别的方法
对于final关键字:
- final变量:如果是基本数据类型,则其数值一旦初始化后就不能被改变。如果是引用类型的变量,则对其初始化后,便不能再指向另一个对象,但是其里面的值是可以改变的。引用变量所指向的对象中的内容是可以改变的
- final方法:类中的 final 方法可以被子类继承,但是不能被子类修改。声明 final 方法的主要目的是防止该方法的内容被修改
- final类:final 类不能被继承,没有类能够继承 final 类的任何特性
非静态变量不能够被静态方法访问,只能被该类的实例化访问
public class Test {public int x; // 非静态变量public static void main(String []args) {System. out. println("Value is" + x); // 编译出错,因为静态方法先行执行,此时类中的非静态变量还没有初始化,所以编译出错} }
子类继承的是父类的所有成员,并不只是非私有方法和状态,利用反射可以看出子类是继承了父类的私有方法的(不管是否是final),只是直接调用父类的私有方法是不可以的,但是利用反射的方式可以调用。字段同理
两个数值进行二元操作时,会有如下的转换操作:
- 如果两个操作数其中有一个是double类型,另一个操作就会转换为double类型
- 否则,如果其中一个操作数是float类型,另一个将会转换为float类型
- 否则,如果其中一个操作数是long类型,另一个会转换为long类型
- 否则,两个操作数都转换为int类型
关于尖括号问题:
- 只看尖括号里边的!!明确点和范围两个概念
- 如果尖括号里的是一个类,那么尖括号里的就是一个点,比如
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相关推荐
- 安卓期末作品小项目_每日一个财务小知识——洞悉洞晰财务报告第一季
财务报告 洞悉洞晰财务报告 目录 01/账务报告概述 02/资产负债表 03/利润表 04/现金流量表 05/所有者权益变动表 06/附注 一.财务报告概述 (一)财务报告及其目标 财务报告是指企业对 ...
- 邮箱每日发送上限小知识,告诉你各大邮箱每天最高发信数量
是不是每天都发超多邮件,那你知道邮件其实也是有上限的么?今天就给你科普一下这一类的邮箱小知识吧! 为什么限制邮箱每日发送上限? 首先是为了防止有的人发送垃圾邮件,所以对邮箱每天的发送量做了限制,如果超 ...
- Java的一些基础小知识之JVM与GC (转)
一.JVM是什么 Java虚拟机(英语:Java Virtual Machine,缩写为JVM),又名爪哇虚拟器,一种能够运行Java bytecode的虚拟机,以堆栈结构机器来进行实做.最早由太阳微 ...
- java 注解方式_小知识~~javaSE注解(超详细)
第一节 反射应用:完善DBUtil,提取select() 1.1 认识ResultSetMetaData 利用ResultSet的getMetaData的方法可以获得ResultSetMeta对象,而 ...
- oracle 每日归档量,小知识:统计Oracle的日归档量
首先这对于Oracle DBA来说是个初级问题,即使不熟悉的初级DBA也可以快速在网上搜索到现成的SQL语句. 网上搜到的查询SQL基本类似这样的逻辑: select trunc(completion ...
- ISO OSI IOS 傻傻分不清楚【每日打卡小知识】
ISO:国际标准化组织 OSI:开放系统互联模型 IOS:苹果操作系统(在计算机网络中,IOS是互联网操作系统,是思科公司为其网络设备开发的操作系统维护系统) OSI七层模型:(写信) 应用层 APD ...
- android小知识(1)
1.Android名称的由来. 大家可能不知道,Android一词的本义原指"机器人",它也是谷歌于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操 ...
- zbrush建模小知识,10年建模师都在用
全网只此一篇,收藏不迷路✅ 每日更新建模小知识 1⃣clay笔刷参数详解 alpha:白色方片(alpha28) 焦点衰减:-30→0都可,根据个人要求调节 z强度:1→50(强度越高,雕刻越立体,根 ...
- java 快速从树节点找到数据_14期每日分享Java程序员分享超全哈希相关的知识
什么是每日分享? 饥人谷每天为大家带来一篇程序员分享!内容都来自于热爱编程.热爱生活的小伙伴们!分享的话题与编程.生活.兴趣.爱好.运动等相关! 想要每天都进步一点点的小伙伴们快点下关注吧! 今天的分 ...
最新文章
- mysql的proxy机制_MySQL Proxy工作机制浅析
- iphone 文件保存策略
- 正则高级用法-分组group+替换
- phpcmsV9 关键词keywords删除、替换与修改
- java量_Java 2. 量与常量
- 数字图像处理(四)——图像编码技术(一)
- spring容器_Spring 容器的启动过程探秘
- 《Linux内核设计与实现》读书笔记 - 目录 (完结)【转】
- ORA-01795: 列表中的最大表达式数为1000的解决方法
- Windows XP 所提供的键盘快捷键
- go之树型结构深度理解
- 自然语言处理(1)——绪论与概述
- 2020年安卓各大应用市场份额占比分析,Android自定义View详解
- TCP/IP第四章笔记ARP协议
- WiCloud 商业Wi-Fi管理平台
- 什么是Cookie?怎样设置和读取Cookie?
- Linux云计算的文件管理和用户管理(01)
- 关于HML要玩物联网这件事 之 CC3200 TCP Client
- 使用ENVI软件中的SARSCAP工具对RADARSAT数据进预处理
- matlab变步长龙格库塔法,matlab龙格库塔法变步长龙格库塔法.doc-资源下载在线文库www.lddoc.cn...
热门文章
- 计算机常用英语单词对照
- 【计算机图形学】OpenGL递归实现光线追踪
- 谷歌地图谷歌地图_如何有效使用Google地图
- 天津大学计算机软件技术基础试题答案,天津大学网络学院计算机软件技术基础-1试题b卷.doc...
- Design Compiler工具学习笔记(5)
- 1526: 小L的项链切割
- php vox转码,Audio Track Convert Tool(音轨转码工具)
- Apollo(阿波罗)(一)环境搭建
- android PMU
- AcrelCloud-9500电瓶车充电桩收费平台在公共场所中的应用