java面试知识点

本文总结了Java面试中的重要知识点,包括Java的基础特性、框架如Spring、SpringMVC、MyBatis,以及微服务架构的相关概念。内容涵盖Java的多态、异常处理、线程、集合类、JDBC、事务管理、Spring的IoC和AOP、SpringMVC的工作原理、MyBatis的使用等,是Java开发者面试的必备参考资料。
摘要由CSDN通过智能技术生成

总结java面试知识点

Java

一门面向对象编程语言 功能强大 简单易用
继承: 子继承父
封装:就是隐藏一切可隐藏的东西,只向外界提供最简单的编程接口
多态:允许不同子类型的对象对同一消息作出不同的响应 用同样的对象引用调用同样的方法但是做了不同的事情
方法重载实现的就是编译时的多态
方法重写实现的是运行时的多态
四大特性 就加上抽象

goto 和 const 是目前无法使用的关键字

==与equals的区别
最大的区别就是一个是方法 一个是运算符
基础数据类型 ==比较的是数值是否相等
引用类型 ==比较的是对象的地址值是否相等
equals 用来比较方法两个对象的内容是否相等

break 和 continue都是用来控制循环的语句
break 用于完全结束一个循环 跳出循环体执行循环后面的语句
continue 用于跳出本次循环 执行下次循环

空指针异常 下标越界异常 安全异常 算术异常 类转换异常 非法参数异常

error 和 exception 父类都是throwable类

throw 语句在方法体内 表示抛出异常 由方法体内的语法处理
throws 语句在方法声明后面 表示抛出异常 由该方法的调用者来进行异常的处理

final 修饰的类不可继承
finally 异常处理语句结构的一部分 表示总是执行
finalize 方法

String 的length方法 与编码有关

获取时间
Calendar
get(Calendar.year)

获取从 1970 年 1 月 1 日 0 时 0 分 0 秒到现在的毫秒数
Calendar.getInstance().getTimeInMillis()
String 是引用类型,底层是char数组实现

String类的常用方法
length 获取字符串长度
indexof 查找第一次出现的位置
lastindexof 查找最后一次出现的位置
trim 返回去除前后空格的字符串
equals 将该字符串与指定对象比较 返回true或false
toLowerCase 大写
toUpperCase 小写
charAt 获取字符串指定位置的字符
split 割为子字符串 返回字符串数组

ArrayList 内部是用object[]实现的
Array 数组 固定大小
ArrayList 底层结构是数组 访问快 增删慢 可动态扩容
LinkedList 底层结构是链表型 增删块 访问慢
Voctor 底层结构是数组 线程安全的 增删慢 查询慢

如何实现 Array 和 List 之间的转换?
Array 转 List: Arrays. asList(array) ;
List 转 Array:List 的 toArray() 方法。

HashMap 是线程不安全 是一个接口 Map的一个子接口
是将键映射到值的对象,不允许键值重复 允许空键和空值
由于非线程安全 HashMap的效率要比HashTable的效率高一些

HashTable 是线程安全的一个集合
不允许null 值作为一个key值或者Value值

间接相互制约可以称为互斥 直接相互制约可以称为同步

线程池 事先将多个线程对象放到一个容器中 当使用的时候就不用new线程 而是去池中拿线程即可
节省开辟子线程的时间 提高代码执行效率

启动一个线程是调用start()方法 run()方法是线程启动后要进行回调的方法

多线程
实现一
继承 Thread类
start()启动方法
多线程中 main方法和 Thread类的run方法同时运行互补影响

实现二
实现Runnable接口
重写run方法

.currentThread方法 //获取当前run方法的线程
.getName方法 //获取当前线程的名称

wait()和sleep()方法的本质区别:
1、sleep是Thread类的方法,wait是Object类中定义的方法,两个方法都会影响线程的执行行为,但是本质上是有区别的
2、wait():当线程等待状态为真,其他程序申请线程时,该线程会释放线程锁;如果该线程调用notify()方法,本线程会进入对象锁定池准备,获取对象锁进入运行状态。
3、.sleep();程序暂停执行指定的时间,释放cpu资源,在调用sleep()方法的过程中,线程不会释放对象锁。当指定时间到了,就会自动恢复运行状态。
4、sleep()方法可以在任何地方使用;wait()方法则只能在同步方法或同步块中使用;

控制线程 sleep(long m

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值