摘要:
1.求集合的最大最小值 List<Integer> list = new ArrayList<>(); list.add(1); list.add(2); list.add(3); 最大值: Integer max = list .stream().reduce(Integer::max).get( 阅读全文
摘要:
原文链接:https://www.cnblogs.com/dennyzhangdd/p/6722445.html 一、十大新特性 1.Lambda表达式 2.Stream函数式操作流元素集合 3.接口新增:默认方法与静态方法 4.方法引用,与Lambda表达式联合使用 5.引入重复注解 6.类型注解 阅读全文
摘要:
一. Hashmap的原理 源码分析参考文章:http://www.cnblogs.com/xwdreamer/archive/2012/06/03/2532832.html 题目参考文章:http://www.importnew.com/7099.html 总结: HashMap基于hashing 阅读全文
摘要:
一、三次握手简单例子 A:客户端 B:服务端 第一次握手: A给B打电话说,你可以听到我说话吗? 第二次握手: B收到了A的信息,然后对A说: 我可以听得到你说话啊,你能听得到我说话吗? 第三次握手: A收到了B的信息,然后说我能听到你说话,我要给你发信息啦! 图文说明: 第一次握手:客户端通过调用 阅读全文
摘要:
怎样提高算法能力: 刷题是可以锻炼的,千万不要让算法成为自己的短板。 1. 刷题是没有技巧的,就是多做题多练多总结,对于很多新手不要去想是不是还有最优解什么的,你做的就是暴力法求解,刷题是很枯燥的,你需要给自己一点鼓励,当把题目解决以后再去考虑其他的,在你不能很快的解决问题的时候,可是试着写点伪代码 阅读全文
摘要:
一. Queue(队列) 1. 什么是队列 队列是数据结构中比较重要的一种类型,它支持 FIFO,尾部添加、头部删除(先进队列的元素先出队列),队列结构与日常生活中排队等候服务的模型是一致的,像火车站买票,早排队进入队列的人,早买到票并最先离开(出队);后到来的人只能排在队列的后,后得到服务并后离开 阅读全文
摘要:
一、Mysql 1. 各个数据库存储引擎区别 mysql的存储引擎是针对表进行设置的,一个库的不同表可以设置不同的存储引擎,mysql默认支持多种存储引擎,以适用不同领域的数据库应用需要,主要的几个数据库引擎如下:MyISAM存储引擎: 5.5之前默认的存储引擎,不支持事务、不支持外键,表级锁,内存 阅读全文
摘要:
一、架构设计相关 0. 什么是微服务?什么是分布式系统?什么是集群? 微服务:构建分布式系统的一种架构方式, 核心思路是:去中心化。 分布式系统: 一件事情,多系统协同完成。 集群:多机器做同一件事情。比如在淘宝买东西,会有一个商品展示的系统,看到合适的商品了就会下单这是会有一个订单系统,下单完成了 阅读全文
摘要:
一、 Spring 1) Spring有哪些特点? 应用解耦,简化开发(注解),IOC,AOP,事物管理 2) 使用Spring有什么好处? 1 应用解耦 2 依赖注入 3 AOP 4 事务管理 5 MVC 6 集成开发 3) Spring应用程序看起来像什么? 一些接口及其实现 一些POJO类 一 阅读全文
摘要:
1. 什么是线程? 线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。程序员可以通过它进行多处理器编程,你可以使用多线程对运算密集型任务提速。比如,如果一个线程完成一个任务要100毫秒,那么用十个线程完成改任务只需10毫秒。 2. 线程和进程有什么区别? 线程是进 阅读全文
摘要:
一、面向对象 1、面向对象和面向过程的区别 面向对象关注于一个功能实现的行为,将一些行为封装为一个对象来统一调用。 面向过程关注于一个功能实现的步骤,按步骤编程实现功能。 面向对象是以对象为中心的编程思想。 面向过程是一种事件为中心的编程思想。就是分析出解决问题所需的步骤,然后用函数把这些步骤实现, 阅读全文
摘要:
一、需求分析 1、Mybatis是什么? 一个半自动化的orm框架(Object Relation Mapping)。 2、Mybatis完成什么工作? 在面向对象编程中,我们操作的都是对象,Mybatis框架是一个数据访问层的框架,帮我们完成对象在数据库中的存、取工作。 为什么称为半自动化? 关系 阅读全文
摘要:
一、Spring事务管理的特点 Spring框架为事务管理提供一套统一的抽象,带来的好处有:1. 跨不同事务API的统一的编程模型,无论你使用的是jdbc、jta、jpa、hibernate。2. 支持声明式事务3. 简单的事务管理API4. 能与Spring的数据访问抽象层完美集成 说明:Spri 阅读全文
摘要:
一、AOP的核心概念回顾 https://docs.spring.io/spring/docs/5.1.3.RELEASE/spring-framework-reference/core.html#aop 我们先来看一下下面的这张图 说明: 程序运行时会调用很多方法,调用的很多方法就叫做Join p 阅读全文
摘要:
一、依赖注入DI 学习目标1)搞清楚构造参数依赖注入的过程及类2)搞清楚注解方式的属性依赖注入在哪里完成的。学习思路1)思考我们手写时是如何做的2)读 spring 源码对比看它的实现3)Spring 源码解读 1. 构造参数依赖注入 org.springframework.beans.factor 阅读全文
摘要:
目录:一、搞清楚ApplicationContext实例化Bean的过程二、搞清楚这个过程中涉及的核心类三、搞清楚IOC容器提供的扩展点有哪些,学会扩展四、学会IOC容器这里使用的设计模式五、搞清楚不同创建方式的bean的创建过程 一、ApplicationContext实例化bean的过程 1. 阅读全文
摘要:
一、BeanDefinition 1. bean定义都定义了什么? 2、BeanDefinition的继承体系 父类: AttributeAccessor: 可以在xml的bean定义里面加上DTD文件里面没有的属性,如 BeanMetadataElement : 定义bean定义来源于哪里,在Be 阅读全文
摘要:
Spring 源码学习过程: 一、搞明白IOC能做什么,是怎么做的 1. 搞明白IOC能做什么? IOC是用为用户创建、管理实例对象的。用户需要实例对象时只需要向IOC容器获取就行了,不用自己去创建,从而达到与具体类解耦。 2. IOC是怎么做到的,即它的实现步骤是怎么样的? 2.1 用户配置bea 阅读全文
摘要:
一. 学习源码的目的 1. 为了扩展和调优:掌握框架的工作流程和原理 2. 为了提升自己的编程技能:学习他人的设计思想、编程技巧 二. 学习源码的方法 方法一: 1)掌握研究的对象和研究对象的核心概念:搞明白框架都能做什么,是怎么做的。 比如我们要研究Spring的源码,那么研究的对象就是Sprin 阅读全文
摘要:
一、为什么要提供配置的方法 经过前面的手写Spring IOC、手写Spring DI、手写Spring AOP,我们知道要创建一个bean对象,需要用户先定义好bean,然后注册到bean工厂才能创建一个bean对象。代码如下: 那么如果我们上面的过程换成配置的方式会是什么样的呢? 经过上面的创建 阅读全文