一文搞定java面试相近词的辨析
##程序、进程和线程
- 程序是静态代码
- 进程是运行中程序,进程包括多个线程
- 线程是进程中的一个子任务
##精度和粒度
- 基本数据类型double,小数部分+指数部分,无法精确表示一个数
- 锁的粒度,行锁,分段锁,表锁
##抽象类和接口
- 相同点
抽象类和接口都不能实例化自身
抽象类:抽象方法必须全部被子类实现,若不能全部实现,那子类必须也是抽象类
接口:方法也必须全部被子类实现,如果子类不能实现那么子类必须是抽象类。
- 不同点
抽象类:对一类事物抽象,定义属性和方法(可写方法)
接口:对一系列行为抽象,定义方法(可写default),仅仅约束行为
类都单继承
接口可多继承
抽象级别:接口>抽象类>实现类
- 如何选择
男人、女人两个类,抽象类是人。他们都是人。
人可以吃东西,狗也可以吃东西,“吃东西”定义成一个接口,类去实现它
当你关注事物的本质的时候,用抽象类;
当你关注行为的时候,用接口。
Collection和Collections
**Collection:**集合接口,有List和Set
**Collections:**集合操作的工具类,操作Collection和Map的工具类,排序和二分查找
int与Integer 的区别?
int是Java八种原始数据类型之一,默认值为0,值传递
Integer是Java为int提供的包装类,默认值为null,引用传递
容器里存整数,无法直接存int,而将int类型转换为Integer存放
throw和throws区别
throw | throws |
---|---|
函数,抛出一个异常的动作 | 状态,方法可能有异常抛出 |
方法实现中 | 方法声明中 |
抛出异常对象 | 声明会抛出多个异常 |
URL和URI区别?
URI是uniform resource identifier,统一资源标识符,用来唯一的标识一个资源
web资源如HTML文档、图像、视频片段、程序等都是URI
URL是uniform resource locator,统一资源定位器,URL可标识一个特定资源
而且还指明了如何locate这个资源,URL是Internet上用来描述信息资源的字符串
URL一般由三部组成:
1协议
2存有该资源的主机IP地址(或包括端口号)
3主机资源的具体地址。如目录和文件名等
final finally finalize 的区别?
final
类 不能继承
String、String和System类方法 不能重写
Object中的getClass()变量 不能修改
属性,可显示初始化/代码块初始化/构造器初始化只赋值一次
局部变量,使用前必须赋值对象,指的是引用地址,指向内容可修改
String、StringBuffer、ArrayList、HashSet、HashMap等
反射可以改变final性质
finally
try/catch/finally语句块,无论如何被执行,除了几种特殊情况
关闭资源,释放锁finalize()
定义在java.lang.object中方法
垃圾回收前调用,对象回收前释放资源,重写finalize()方法没什么鸟用
重载和重写
**重写Override:**子继承父 子重写覆盖父
**重载Overload:**相同方法名,有不同参数列表
- 不能通过方法的访问权限,返回值类型和抛出的异常来进行重写
- 对于继承类,若父类方法的是private(默认final),子类不能重写,如子类定义一个同名方法,这是一个新的方法
重写与重载之间的区别:
- 重写是垂直关系,重载是水平关系
- 重写方法一对一关系,子对父,两个类关系;重载多个方法间关系,一个类内部关系
- 重写要求参数类表相同,重载要求参数列表不同
- 重写关系中,调用方法体是根据对象的类型(对象对应的存储空间类型)来决定的;而重载关系是根据调用时的实际参数与形参列表来选择方法体的。
- 重写不能改变返回值的类型,重载是可以改变返回值的类型
- 子类的重写方法所抛出的异常,必须和父类方法所抛出的异常一致或者是他的子类。
Comparator、Comparable
Comparable是接口,包含int compareTo(T o)方法,让元素自身具备可比较性,很多常用类都实现了这个接口,例:基础数据类型的包装类
Comparator是接口,重写int compare(T o1,T o2)方法,提供一个比较器,集合调用比较器来比较集合中两个元素。
排序规则
数值的大小排序
Character 按字符转换的Unicode数值进行排序。
Boolean 中 true 大于false
String 按字符串转化成的Unicode数值进行排序
Date Time 后面的时间比前面的时间大
synchronized和lock的区别?
- synchronized关键字,修饰类、方法或代码块,同时只能被一个线程拥有,指定上锁对象
- lock是一个接口,五个方法,主要是ReentrantLock,靠方法上锁和解锁,可主动解锁
一文搞定java面试相近词的辨析相关推荐
- 谈谈java面向对象之抽象,手把手带你搞定java面试之面向对象
计算机语言晦涩难懂,打算利用通俗易懂的文字带领大家学习java基础.如果文中有什么错误的地方,欢迎大家在评论区指正,免得我误人子弟. Question:当面试JAVA开发岗位的时候,面试官最爱问的问题 ...
- 一文搞定Java热更新
Java热更新 在持续交付的时代,重新部署一个新的版本只需要点击一下按钮.但在有的情况下,重新部署过程可能比较复杂,停机是不被允许的.所以JVM提供了另外一种选择:在不重启应用的前提下进行小幅改动,又 ...
- reactor线程模型_面试一文搞定JAVA的网络IO模型
1,最原始的BIO模型 该模型的整体思路是有一个独立的Acceptor线程负责监听客户端的链接,它接收到客户端链接请求之后为每个客户端创建一个新的线程进行链路处理,处理完成之后,通过输出流返回应答给客 ...
- 一文搞定Java集合类,你还在为Java集合类而烦恼吗?
导读:你还在为集合类而烦恼吗?别担心,我花了几天时间整理了一下集合类,文章通俗易懂,看完这篇文章保证让你茅塞顿开.内容很全,所以文章有点长,建议收藏再看. 文章目录 1.什么是集合,要她作甚? 2.集 ...
- java mybatis狂神说sql_帮你搞定Java面试,不要再错过了
前言: 最近几年公司的大小招聘,社招.校招都有参与,遇到过许多厉害的,也遇到过很多职场小白.看着有些同学基础浮夸.做着重复的项目也没有任何总结沉淀,自我介绍完全不知道在说啥等等诸如此类的现状,如果你还 ...
- 一文搞定繁体字预处理和词云生成(wordcloud)
1. 使用的是ckiptagger的分词包(不用jieba的原因是这个的准确度更高): 具体下载和使用可以查看ckiptagger的GitHub链接 from ckiptagger import da ...
- 决策树 随机森林 xgboost_一文搞定XGboost 面试常见问题
本文主要介绍xgboost常见的面试问题,主要回答如下几个问题: 1.GBDT的原理,且介绍与xgboost的区别. 2.决策树节点分裂时如何选择特征. 3.分类树和回归树的区别. 4.与Random ...
- java+输出流++空值_一文搞定Java的输入输出流等常见流
点赞再看,养成习惯,常用流,多看多练准没错!文章较长,建议收藏再看! 1.IO流分析 什么是IO? I:Input O:Output 通过IO可以完成对硬盘的读和写. IO流的分类. 有多种分类方式: ...
- 一文搞定 JVM 面试,教你吊打面试官~
1.什么是类加载?类加载的过程? 类的加载指的是将类的class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个此类的对象,通过这个对象可以访问到方法区对应的类信息. ...
- 搞定java面试系列--jvm3 gc垃圾回收
1.明确什么是垃圾 答案:在进行gc操作时候没有存活的对象. 那么怎么去判断对象是否存活: 老的方式-引用计数:每个对象有一个引用计数属性,新增一个引用时计数加1,引用释放时计数减1,计数为0时可以回 ...
最新文章
- 比目前世界上最快的超级计算机快 4 倍,英伟达这波玩大了!
- 用g++编译生成动态连接库*.so的方法及连接(dlopen() dlsym() dlclose())
- 【项目管理】认识项目相关方(干系人)管理
- SpringBoot注解大全
- centos6安装composer
- 坏消息!FCC默许美国ISP在未经批准之情况下出售用户数据!
- HDOJ--1596--find the safest road
- 设计模式-第四篇之代理模式
- Unity自定义Editor简明教程
- UE4 C++头文件
- redis的hscan命令
- unity 创建中文自定义字体
- Pangolin-最好的SQL注入工具
- x86 x64 IA64的关系和区别
- 数据库建模-概念模型建模(E-R图)
- 2021-06-16 解决MDK5使用STLINK下载不进去程序报错的问题
- Splunk健康检查orphaned searches
- 柿饼UI入门课程第一周作业
- 8个免费在线编程游戏网站,让每个人都可以学习编程
- js三座大山----(第二座山)