Java 复习专栏
贝小贝貝
总是在前进的道路上迷失,这一次,想要到达终点。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java复习之 ReentrantLock 原理(CAS+AQS)
转载于三太子敖丙!!! ReentrantLock原理(CAS+AQS) CAS+AQS队列来实现 (1):先通过CAS尝试获取锁, 如果此时已经有线程占据了锁,那就加入AQS队列并且被挂起; (2):当锁被释放之后, 排在队首的线程会被唤醒CAS再次尝试获取锁, (3):如果是非公平锁, 同时还有另一个线程进来尝试获取可能会让这个线程抢到锁; (4):如果是公平锁, 会排到队尾,由队首的线程获取到锁。 AQS 原理 Node内部类构成的一个双向链表结构的同步队列,通过控制(volatile转载 2020-05-13 11:54:39 · 1680 阅读 · 0 评论 -
Java复习之JDK1.8新特性
转载于三太子敖丙!!! Lambda表达式 java也开始承认了函数式编程, 就是说函数既可以作为参数,也可以作为返回值, 大大的简化了代码的开发 default关键字 打破接口里面是只能有抽象方法,不能有任何方法的实现,接口里面也可以有方法的实现了 新时间日期APILocalDate | LocalTime | LocalDateTime 之前使用的java.util.Date月份从0开始,我们一般会+1使用,很不方便,java.time.LocalDate月份和星期都改成了enum java转载 2020-05-14 09:57:52 · 339 阅读 · 0 评论 -
Java复习之集合:collection 和 map
转载于三太子敖丙!!! 集合 java的集合框架有哪几种: 两种:collection和map,其中collection分为set和List。 List你使用过哪些 ArrayList和linkedList使用的最多,也最具代表性。 你知道vector和ArrayList和linkedList的区别嘛 ArrayList实现是一个数组,可变数组,默认初始化长度为10,也可以我们设置容量,但是没有设置的时候是默认的空数组,只有在第一步add的时候会进行扩容至10(重新创建了数组),后续扩容按照3转载 2020-05-14 09:57:38 · 244 阅读 · 0 评论 -
Java复习之网络相关内容
转载于三太子敖丙!!! TCP和UDP的比较 TCP向上层提供面向连接的可靠服务 ,UDP向上层提供无连接不可靠服务。虽然 UDP 并没有 TCP 传输来的准确,但是也能在很多实时性要求高的地方有所作为 对数据准确性要求高,速度可以相对较慢的,可以选用TCP TCP三次握手 TCP四次挥手 (1):客户端发送终止命令FIN (2):服务端收到后回复ACK,处于close_wait状态 (3):服务器将关闭前需要发送信息发送给客户端后处于last_ack状态 (4):客户端收到FIN后发送转载 2020-05-14 09:58:02 · 187 阅读 · 0 评论 -
Java复习之Redis解读
转载于三太子敖丙!!! redis单线程为什么执行速度这么快? (1):纯内存操作,避免大量访问数据库,减少直接读取磁盘数据,redis将数据储存在内存里面,读写数据的时候都不会受到硬盘 I/O 速度的限制,所以速度快 (2):单线程操作,避免了不必要的上下文切换和竞争条件,也不存在多进程或者多线程导致的切换而消耗CPU,不用去考虑各种锁的问题,不存在加锁释放锁操作,没有因为可能出现死锁而导致的性能消耗 (3):采用了非阻塞I/O多路复用机制 Redis数据结构底层实现 String: (1)转载 2020-05-14 09:57:08 · 308 阅读 · 0 评论 -
Java复习之DUBBO
转载于三太子敖丙!!! dubbo流程 (1):生产者(Provider)启动,向注册中心(Register)注册 (2):消费者(Consumer)订阅,而后注册中心通知消费者 (3):消费者从生产者进行消费 (4):监控中心(Monitor)统计生产者和消费者 Dubbo推荐使用什么序列化框架,还有哪些? 推荐使用Hessian序列化,还有Duddo、FastJson、Java自带序列化 Dubbo默认使用的是什么通信框架,还有哪些? 默认使用 Netty 框架,也是推荐的选择,另外内转载 2020-05-14 09:56:35 · 180 阅读 · 0 评论 -
Java复习之JVM
转载于三太子敖丙!!! jre、jdk、jvm的关系: jdk是最小的开发环境,由jre++java工具组成。 jre是java运行的最小环境,由jvm+核心类库组成。 jvm是虚拟机,是java字节码运行的容器,如果只有jvm是无法运行java的,因为缺少了核心类库。 JVM内存模型 (1):堆<对象,静态变量,共享 (2):方法区<存放类信息,常量池,共享>(java8移除了永久代(PermGen),替换为元空间(Metaspace)) (3):虚拟机栈<线程执行转载 2020-05-13 13:22:23 · 270 阅读 · 0 评论 -
Java: MySQL 复习
转载于三太子敖丙!!! 数据库三范式 一:确保每列的原子性 二:非主键列不存在对主键的部分依赖 (要求每个表只描述一件事情) 三:满足第二范式,并且表中的列不存在对非主键列的传递依赖 数据库主从复制原理 (1):主库db的更新事件(update、insert、delete)被写到binlog (2):主库创建一个binlog dump thread线程,把binlog的内容发送到从库 (3):从库创建一个I/O线程,读取主库传过来的binlog内容并写入到relay log. (4):从库转载 2020-05-13 13:20:50 · 213 阅读 · 0 评论 -
java复习之锁: synchronized
转载于三太子敖丙!!! synchronized实现原理 contentionList(请求锁线程队列) entryList(有资格的候选者队列) waitSet(wait方法后阻塞队列) onDeck(竞争候选者) ower(竞争到锁线程) !ower(执行成功释放锁后状态);Synchronized 是非公平锁。 Synchronized 在线程进入 ContentionList 时,等待的线程会先尝试自旋获取锁,如果获取不到就进入 ContentionList,这明显对于已经进入队列的线程是不公转载 2020-05-13 11:53:08 · 332 阅读 · 0 评论 -
JAVA基础
转载于三太子敖丙!!! AVL树与红黑树(R-B树)的区别与联系 AVL是严格的平衡树,因此在增加或者删除节点的时候,根据不同情况,旋转的次数比红黑树要多; 红黑树是用非严格的平衡来换取增删节点时候旋转次数的降低开销; 所以简单说,查询多选择AVL树,查询更新次数差不多选红黑树 AVL树顺序插入和删除时有20%左右的性能优势,红黑树随机操作15%左右优势,现实应用当然一般都是随机情况,所以红黑树得到了更广泛的应用 索引为B+树 Hashmap为红黑树 为啥redis转载 2020-05-13 11:51:27 · 200 阅读 · 0 评论 -
Zookeeper+eureka+springcloud
转载于三太子敖丙!!! SpringBoot启动流程 new springApplication对象,利用spi机制加载applicationContextInitializer, applicationLister接口实例(META-INF/spring.factories); 调run方法准备Environment,加载应用上下文(applicationContext),发布事件 很多通过lister实现 创建spring容器, refreshContext() ,实现sta转载 2020-05-13 11:49:38 · 511 阅读 · 0 评论 -
SpringMVC
springMVC流程: (1):用户请求发送给DispatcherServlet,DispatcherServlet调用HandlerMapping处理器映射器; (2):HandlerMapping根据xml或注解找到对应的处理器,生成处理器对象返回给DispatcherServlet; (3):DispatcherServlet会调用相应的HandlerAdapter; (4):HandlerAdapter经过适配调用具体的处理器去处理请求,生成ModelAndView返回给Dispatche转载 2020-05-13 11:17:35 · 339 阅读 · 0 评论 -
Spring 面试 复习
Spring框架的七大模块 Spring Core:框架的最基础部分,提供 IoC 容器,对 bean 进行管理。 Spring Context:继承BeanFactory,提供上下文信息,扩展出JNDI、EJB、电子邮件、国际化等功能。 Spring DAO:提供了JDBC的抽象层,还提供了声明性事务管理方法。 Spring ORM:提供了JPA、JDO、Hibernate、MyBatis 等ORM映射层. Spring AOP:集成了所有AOP功能 Spring Web:提供了基础的 Web转载 2020-05-13 11:07:04 · 227 阅读 · 0 评论 -
Mybatis 原理+缓存
Mybatis原理 sqlsessionFactoryBuilder生成sqlsessionFactory(单例) 工厂模式生成sqlsession执行sql以及控制事务 Mybatis通过动态代理使Mapper(sql映射器)接口能运行起来即为接口生成代理对象将sql查询到结果映射成pojo sqlSessionFactory构建过程 解析并读取配置中的xml创建Configuration对象 (单例) 使用Configruation类去创建sqlSessio转载 2020-05-13 11:45:57 · 171 阅读 · 0 评论
分享