开发基础
开发基础笔记
mybatis-plus通用的service方法
通过jenkins配置前后端自动打包及发布
mybatis-plus实现分页的方式
Java极客技术公众号PDF
狂神说SpringBoot
Hashids java 版使用
SpringBoot
1、Web快速开发
2、结果集的封装
3、集成MyBatis实现数据库操作
4、Springboot @Validated参数校验
5、SpringBoot全局异常处理
6、拦截器HandlerInterceptor
7、集成Swagger实现API自动生成
8、集成knife4j实现API自动生成
9、Springboot集成MyBatis-Plus快速入门
10、springboot自定义注解及AOP切面使用
11、使用Shiro实现登陆和权限认证,基于MyBatis
12、集成SpringSecurity实现授权认证
13、SpringBoot集成EasyExcel实现数据导入与导出
14、Spring Task定时任务的实现
15、Quartz快速上手与实践
16、如何用代码实现Spring IOC
17、SpringBoot集成JWT,实现接口的鉴权交互
SpringCloud
Nacos作为服务注册中心
seata1.6.1 结合springcloud实现分布锁的技术笔记
一些技术博客推荐
前端面试相关
看这一篇就够了
java.util包常用的类和接口
CountDownLatch介绍与使用
Common-lang3使用入门
Hutool简单使用入门
lombok 介绍及基本使用方法
git项目统计成员代码行数和提交的次数
mysql 逗号分隔的数据 like查询
使用sonar进行代码质量检查
线上使用jmeter进行压测的时候,使用Arthas诊断工具排查响应慢的接口
php结合phpstudy8、vscode开启xdebug进行代码调试
node-red使用入门
分享两个好用的vba宏,用于批量处理word中的表格
本文档使用 MrDoc 发布
-
+
首页
Java极客技术公众号PDF
## 一 RPC框架的简单的介绍 由RPC框架,延申出 动态代码的实现方式,mybatis也是使用了动态代理。 如果想搭建一个简易的RPC框架,有4个点: 1、代理问题 2、服务实例化问题 3、序列化问题 4、通信问题 ## 二 mapstruct组件的推荐 为啥不用BeanUtils的CopyProperties方法?? 因为CopyProperties是个大老粗,只有的属性相同的情况下才能映射 成功,所以可映射的属性非常的少。 ## 三 内存结构与垃圾回收算法 方法区 堆 栈 计数器 新生代和老年代的简单的介绍 ,新生代里死的对象多,存活的对象少,所以使用 复制算法比较经济高效,老年代里 存活的对象非常多, 使用 标记删除 标记压缩的算法, 什么样的情况会让一个对象从新生代 进入老年代? 有些对象点用内存太大了,直接就会进入老年代。存活时间太久的对象也会进入老年代。移动次数太多的对象也会进入老年代。 ## Optional 不用再写空指标检查了 经典判空的写法: ~~~java if(obj!=null){ dosomething() } ~~~ 让代码变的越来越臃肿。 Optional本质是一个容器。 构造方法是private,通过静态方法进行创建。 三个创建方法如下: 1. Optional.of(obj) 如果对象为null,会抛出NPE 2. Optional.ofNullable(obj) 如果对象是null,将会创建不包含值的empty Optional对象实例 3. Optional.empty() 和上面的2相同 Optional.isPresent 来判断对象内部是否存在对象实例。 filter map ifPresent orElse orElseThrow 等方法的使用。 ## 异常 异常分为 Error 和 exception Error 包括 OutOfMemoryError NoClassDefFoundError exception 包括 IOException RuntimeException 异常处理的原则 : 1. 尽量捕获具体的异常,而不是 Exception 2. 不要打印堆栈后再抛出异常。 3. 不要用异常去代替判断 4. 不要盲目过早的去捕获异常。 ## JAVA8 核心特性 * Lambda * 使用函数式接口 ## JAVA字符串是不可变的 对象和对象引用。 对象存在堆中,对象引用存在 栈中。 ## for 循环删除的问题 for-each 效率会更高。 foreach的坏处有哪些? ## 工厂模式 * 简单工厂 适应的场景: 1、创建对象需要大量重复代码。 2、客户端(应用层)不依赖于产品实例如何被创建等细节 3、一个类通过其子类来指定创建哪个对象。 工厂方法的缺点: 1、类的个数 变多,增加复杂度 2、增加了系统 的抽象属和理解 难度。 * 抽象工厂模式 ## HashMap中红黑树的实现原理 java8中,当冲突的链表长度超过8个的时候,链表结构就会转为红黑树结构! 红黑树是一种近似于 平衡的二叉查找 树,主要的优点就是平衡!平衡!平衡! 时间复杂度 log(n) 红黑树的特性有哪些,调整方式:左旋 右旋。 ## JAVA IO * 基于字节操作的I/O接口:InputStream OutStream * 基于字符操作的接口:Writer Reader * 基于磁盘操作的接口:File * 基于网络操作的接口:Socket 字节和字符的转化 IO的工作方式,传输数据有三种工作方式: BIO NIO AIO 先回复习一下几个老的概念: 同步和异步 阻塞和非阻塞 * BIO 同步阻塞 * NIO 同步非阻塞 * AIO 异步非阻塞 ## HashMap Map的种类 HashMAP LinkedHashMap TreeMap HashTable 等 源码的解析: 5个关键的参数: threshold 容器所能容纳的key-value极限 loadFactor 负载因子 modCount: 记录修改的次数 size 实际存在的键值对的数量 table 一个哈希桶数组 ,键值对就存放在这个里面 resize动态扩容的过程了解一下。 1.7 和 1.8版本是不一样的。 remove 删除元素 ## NIO2.0 了解一下 基石:Path 处理目录 处理目录树 文件的删除、复制、移动、 快速读写文件 异步IO操作。 ## 深入浅出分析Collection中的List接口。 ArrayList LinkedList Vector Stack ## Serializable 明明就是一个空接口 对象可以补序列化的一个标识,不参与序列化 static和transient修改的字段不会被序列化。 另一个序列化的接口:Externalizable,新增了两个方法 必须要实现。 因子,保存序列化和反序列化的时候是同一个对象实例。 private static final long serialVersionUID = 1L; ## 面试的经验分享
superadmin
2023年9月18日 18:02
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码