无题
不能,定义抽象类就是让其他类继承的,如果定义为 final 该类就不能被继承,这样彼此就会产生矛盾,所以 final 不能修饰抽象类,
无题
实现:抽象类的子类使用 extends 来继承;接口必须使用 implements 来实现接口。
构造函数:抽象类可以有构造函数;接口不能有。
实现数量:类可以实现很多个接口;但是只能继承一个抽象类。
访问修饰符:接口中的方法默认使用 public 修饰;抽象类中的方法可以是任意访问修饰符。
无题
Files. exists():检测文件路径是否存在。
Files. createFile():创建文件。
Files. createDirectory():创建文件夹。
Files. delete():删除一个文件或目录。
Files. copy():复制文件。
Files. move():移动文件。
Files. size():查看文件个数。
Files. read():读取文件。
Files. write():写入文件。
无题
equals与 ==的区别?
==
基本类型:比较的是值是否相同;(byte,short,char,int,long,float,double,boolean等基本类型)
引用类型:比较的是在内存中的存放地址是否相同;
equals
引用类型:默认情况下,比较的是内存地址值。
只不过 String 和 Integer 等重写了 equals 方法,把它变成了值比较。
String类中被复写的equals()方法其实是比较两个字符串的内容。
请解释字符串比较之中“==”和equals()的区别?
==:比较的是两个字符串内存地址(堆内存)的数值是否相等,属于数值比较;
equals():比较的是两个字符串的内容,属于内容比较。
无题
String被关键字final修饰,所以不能被继承。
String是JAVA用于处理字符串的类, 我们平常双引号包含的字符串例如”abc”,其实就是一个String的实例。String是一个常量,一旦创建它的值就不能被修改, 是immutable只读类。 语法上定义为final的类, 就是不允许被有子类去修改String的值。 那为什么要定义String为不可变化的类呢?
1.字符串常量池的实现, 我们在代码中定义的”abc”等字符串很可能在常量池中存在, 每个String引用指向同一个字符串实现重用。如果String引用能修改字符串的值, 常量池设计无法实现。
2.安全和易用性的考虑, 在我们应用中,字符串是用得最多的类,我们经常需要在不同的类,方法间传递String, 甚至在多线程中操作String, 很多场景下是希望字符串能创建就不修改,安全简单的使用,所以String作为这个常见的一个字符串封装做了写保护,就好像C语言里面的字符串指针指向字符串常量,指针则是无法修改字符串的值的。
3.类似String的不可变类还有java.lang.Integer,Long,Double等wr ...
无题
不需要,抽象类不一定非要有抽象方法。
示例代码:
12345abstract class Dog { public static void sayHi() { System. out. println("hi~"); }}
上面代码,抽象类并没有抽象方法但完全可以正常运行。
无题
Java中多态以及原理
无题
dubbo框架
Dubbo的服务请求失败怎么处理
dubbo的负载均衡有几种算法?(随机,轮询,最少活跃请求数,一致性hash)
Dubbo 和 Spring Cloud 有什么区别?
dubbo都支持什么协议,推荐用哪种?
画一画服务注册与发现的流程图
Dubbo默认使用什么注册中心,还有别的选择吗?
在 Provider 上可以配置的 Consumer 端的属性有哪些?
Dubbo启动时如果依赖的服务不可用会怎样?
Dubbo推荐使用什么序列化框架,你知道的还有哪些?
Dubbo默认使用的是什么通信框架,还有别的选择吗?
服务上线怎么兼容旧版本?
Dubbo服务之间的调用是阻塞的吗?
Dubbo telnet 命令能做什么?
Dubbo如何一条链接并发多个调用。
Dubbo 的使用场景有哪些?
Dubbo 核心功能有哪些?
Dubbo 核心组件有哪些?
Dubbo 服务器注册于发现的流程?
Dubbo 支持哪些协议,它们的优缺点有哪些?
Dubbo 的注册中心集群挂掉,发布者和订阅者之间还能通信么?
Dubbo源码使用了哪些设计模式
Dubbo集群提供了哪些负载均衡策略?
Dubb ...
1-80题答案解析
前言前几天,在茫茫的互联网海洋中寻寻觅觅,我收藏了800道Java基础经典面试题,有小伙伴私聊我要答案。所以感觉没有答案的面试题是没有灵魂的,于是今天先整理基础篇的前80道答案出来~
所有的Java面试题已经上传github,答案也上传了一部分~
https://github.com/whx123/JavaHome/tree/master/Java%E9%9D%A2%E8%AF%95%E9%A2%98%E9%9B%86%E7%BB%93%E5%8F%B7
Java 基础1. equals与==的区别==
如果是基本类型,==表示判断它们值是否相等;
如果是引用对象,==表示判断两个对象指向的内存地址是否相同。
equals
如果是字符串,表示判断字符串内容是否相同;
如果是object对象的方法,比较的也是引用的内存地址值;
如果自己的类重写equals方法,可以自定义两个对象是否相等。
2. final, finally, finalize 的区别
final 用于修饰属性,方法和类, 分别表 ...
无题
前言个人珍藏的80道Java多线程/并发经典面试题,现在给出11-20的答案解析哈,并且上传github哈~
https://github.com/whx123/JavaHome
个人珍藏的80道多线程并发面试题(1-10答案解析)
11、为什么要用线程池?Java的线程池内部机制,参数作用,几种工作阻塞队列,线程池类型以及使用场景回答这些点:
为什么要用线程池?
Java的线程池原理
线程池核心参数
几种工作阻塞队列
线程池使用不当的问题
线程池类型以及使用场景
为什么要用线程池?线程池:一个管理线程的池子。
管理线程,避免增加创建线程和销毁线程的资源损耗。
提高响应速度。
重复利用。
Java的线程池执行原理为了形象描述线程池执行,打个比喻:
核心线程比作公司正式员工
非核心线程比作外包员工
阻塞队列比作需求池
提交任务比作提需求
线程池核心参数123456public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit uni ...