Java基础m1

1.请聊一下java的集合类,以及在实际项目中你是如何用的?

        参照java集合一章,注意说出集合体系,常用类接口实现类,加上所知道的高并发集合类,JUC
参照集合增强内容,在实际项目中引用,照实说就好了(弱化),问集合的引子... ...

2.Hashmap为什么要使用红黑树?

        在jdk1.8版本后,java对HashMap做了改进,在链表长度大于8的时候,将后面的数
据存在红黑树中,以加快检索速度
        红黑树虽然本质上是一棵二叉查找树,但它在二叉查找树的基础上增加了着色和相关的性
质使得红黑树相对平衡,从而保证了红黑树的查找、插入、删除的时间复杂度最坏为
O(log n)。加快检索速率。

3.集合类是怎么解决高并发中的问题?

        思路先说一下那些是非安全,普通的安全的集合类UC中高并发的集合类

        线程非全的集合类ArrayList LinkedList HashSet TreeSet HashMap TreeMap 实际开发中我们自己用这样的集合最多,因为一般我们自己写的业务代码中,不太设计到多线程共享同一个集合的问题
        线程安全的集合类Vector HashTable 虽然效率没有Juc 中的高性能集合高,但是也能够适应大部分环境
高性能线程安全的集合类
        1.ConcurrentHashMap
        2.ConcurrentHashMap和HashTable的区别
        3.ConcurrentHashMap线程安全的具体实现方式/底具具休实现
        4.说说CopyOnWriteArrayList

4.简述一下自定义异常的应用场景?

借助异常机制,我们可以省略很多业务逻辑上的判断处理,直接借助java的异常机制可以简
化业务逻辑判断代码的编写
1.当你不想把你的错误直接暴露给前端或者你想让前端从业务角度判断后台的异常,这个
时候自定义异常类是你的不二选择
2.虽然JAVA给我们提供了丰富的异常类型,但是在实际的业务上,还有很多情况JAVA提供
的异常类型不能准确的表述出我们业务上的含义

5.描述一下 Object类中常用的方法?

参照面向对象章节toString hashCode equals clone finalized wait notify
notifyAll .....
解释每个方法的作用

6.  1.8的新特性有了解过吗?
Lambda表达式
函数式接口
方法引用和构造器调用
Stream API
接口中的默认方法和静态方法
新时间日期API

7.简述一下Java面向对象的基本特征,继承、封装与多态,以及你自己的应用?

注意单独解释继承封装多态的概念
继承,基本概念解释,后面多态的条件
封装,基本概念解释,隐藏实现细节,公开使用方式
多态,基本概念解释,就是处理参数,提接口,打破单继承

设计模式 , 设计原则
 

8.Java中重写和重载的区别?
联系:名字相似都是多个同名方法
重载,在同一个类之中发生的
重写,继承中,子类重写父类方法
1 目的差别
2.语法差别

9.怎样声明一个类不会被继承,什么场景下会用?

final修饰的类不能有子类,大部分都是出于安全考虑
String举例

10.Java中的自增是线程安全的吗,如何实现线程安全的自增?

i++
++i
增加synchronized进行线程同步
使用lock、unlock处理Reetrantent锁进行锁定

Atomiclnteger >>> Unsafe >>>cas>>>aba
 






 



 



 


 



 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值