憧憬的专栏

Stay hungry, Stay foolish.
私信 关注
春天的早晨
码龄10年

https://github.com/Allenmcc

  • 533,256
    被访问量
  • 46
    原创文章
  • 16,255
    作者排名
  • 80
    粉丝数量
  • 于 2011-07-23 加入CSDN
获得成就
  • 获得180次点赞
  • 内容获得48次评论
  • 获得335次收藏
荣誉勋章
TA的专栏
  • java
    67篇
  • 算法
    13篇
  • 分布式系统
    3篇
  • HTTP
    12篇
  • 面试
    31篇
  • 数据库
    22篇
  • tomcat
  • 读书
    4篇
  • Spring
    24篇
  • 中间件
    1篇
  • 设计模式
    1篇
  • object C
    10篇
  • JavaScript
    3篇
  • Intellij
    4篇
  • Git
    1篇
  • hive
    2篇
  • UML
    4篇
  • Linux
    3篇
  • web-xml
    4篇
  • 感悟
    2篇
  • guava
    2篇
  • redis
    3篇
  • java 工具类
    1篇
  • 网络
    2篇
  • 最近
  • 文章
  • 资源
  • 问答
  • 课程
  • 帖子
  • 收藏
  • 关注/订阅

MySQL四舍五入

文章目录一、MySQL四舍五入函数ROUND(x)二、MySQL四舍五入函数ROUND(x,y)三、MySQL四舍五入函数TRUNCATE(x,y)一、MySQL四舍五入函数ROUND(x)ROUND(x)函数返回最接近于参数x的整数,对x值进行四舍五入。实例:使用ROUND(x)函数对操作数进行四舍五入操作。SQL语句如下:mysql>SELECT ROUND(-2.34),ROUND(-4.56),ROUND(2.34),ROUND(4.56)进行四舍五入处理以后,只保留了各个值的整数
原创
16阅读
0评论
0点赞
发布博客于 2 月前

decimal精度

select cast(322.3 as decimal(5, 2)) as num ; //322.30select cast(322.3 as decimal(4, 2)) as num ; //99.99 超出精度(精度是4位),右边固定先取2个,剩余2位不够了。decimal(18,0) 18是定点精度,0是小数位数。decimal(a,b) a指定指定小数点左边和右边可以存储的十进制数字的最大个数,最大精度38。b指定小数点右边可以存储的十进制数字的最大个数。小数位数必须是从 0 到
原创
91阅读
0评论
0点赞
发布博客于 2 月前

Mybatis 缓存Cache

一、什么是缓存(Cache)Cache是高速缓冲存储器 一种特殊的存储器子系统,其中复制了频繁使用的数据以利于快速访问。在Java中简单的理解缓存就是实现数据的拷贝,提高系统性能,减少数据库压力。二、为什么要用缓存(Cache)因为如果使用了缓存,在缓存中有需要的数据,就不用从数据库中获取转而从缓存中获取,这样就大大提高了系统性能。三、一级缓存Mybatis的一级缓存不需要任何配置,在每一个 SqlSession 当中都有一个一级缓存区,作用范围是 SqlSession 。(一)原理Myb
转载
35阅读
0评论
0点赞
发布博客于 3 月前

Java 之 Serializable 序列化和反序列化

文章目录1. 序列化和反序列化的概念2.什么情况下需要序列化3.如何实现序列化第一种:transient不序列化第二种:静态属性不能被序列化第三种:serialVersionUID 的作用和用法serialVersionUID 的值怎么设置jdk api 文档里关于接口 Serializable 的描述关于 serialVersionUID 的描述遇到这个 Java Serializable 序列化这个接口,我们可能会有如下的问题a,什么叫序列化和反序列化b,作用。为啥要实现这个 Serializab
转载
74阅读
0评论
0点赞
发布博客于 6 月前

JDBC

概述java database connectivity ,java 和数据库的连接技术,sun公司推出的一套java应用程序访问数据库的技术规范。规范:抽象类或者接口在java中,数据库存取技术可以分为如下几类JDBC直接访问数据库JDO技术(Java Data Object)第三方O/R工具,如Hibernate,Mybatis等JDBC是java访问数据库的基石,JDO,Hi...
转载
77阅读
0评论
0点赞
发布博客于 10 月前

mysql中delete和truncate区别

文章目录一、灵活性二、效率三、事务四、触发器一、灵活性delete可以条件删除数据,而truncate只能删除表的所有数据;delete from table_test where ... truncate table table_test 二、效率delete效率低于truncate,delete是一行一行地删除,truncate会重建表结构,三、事务truncate是DDL...
转载
153阅读
0评论
0点赞
发布博客于 10 月前

查询截取分析

文章目录查询慢查询是否开启 地址开启慢查询日志慢查询时间 10s不加global 当前窗口有效查看进程关闭进程查询慢查询是否开启 地址show variables like ‘%slow_query_log%’;开启慢查询日志set global slow_query_log = 1;慢查询时间 10sshow variables like ‘%long_query_time%’;...
原创
68阅读
0评论
0点赞
发布博客于 10 月前

STRAIGHT_JOIN

TRAIGHT_JOIN,在数据量大的联表查询中灵活运用的话,能大大缩短查询时间。首先来解释下STRAIGHT_JOIN到底是用做什么的:STRAIGHT_JOIN is similar to JOIN, except that the left table is always read before the right table. This can be used for those (...
转载
504阅读
0评论
0点赞
发布博客于 10 月前

Mysql优化_ORDER BY和GROUP BY (单路排序和双路排序)

文章目录什么是双路排序和单路排序?什么情况下会导致单路排序失效呢?提高ORDER BY速度的技巧为排序使用索引GROUP BY的优化ORDER BY 子句尽量使用Index方式排序,避免使用FileSort方式排序,尽可能在索引列上外城排序操作,遵照索引键的最佳左前缀。如果不在索引列上,FileSort有两种算法,Mysql就要启动双路排序和单路排序。什么是双路排序和单路排序?双路排序:My...
转载
338阅读
0评论
0点赞
发布博客于 10 月前

第3章 如何构建金字塔

文章目录要点自上而下法适用场景构建步骤自下而上法适用场景总结初学者注意事项要点主要介绍构建2种构建金字塔方法:自上而下法和自下而上法的适用场景、构建步骤以及对初学者的几条注意事项。自上而下法适用场景适用于在作者已确定文章的主题和已确定读者对该主题的了解情况的场景构建步骤第1步:画出主题方框方框是你文章金字塔结构最顶部的方框。在方框中填入要讨论的主题。主题一般为一个包含主语和谓语...
原创
316阅读
0评论
0点赞
发布博客于 2 年前

第2章 金字塔内部的结构

1.中心思想:梳理要表达的思想,需要了解金字塔的内部结构——“大多是人刚坐下写作时,可能对自己想表达的思想还只有模糊的想法,甚至不知道从哪里下笔。在不得不用词汇或句子将思想呈现出来之前,你很可能难以准确地把握自己的思想;因此不要幻想一坐下来就开始将思想组成金字塔,必须要梳理你想要表达的思想”2.金字塔的内部结构纵向-主题与子主题之间的纵向关系;横向-各子主题之间的横向关系;序言-序言的...
原创
287阅读
0评论
0点赞
发布博客于 2 年前

第一章-为什么要用金字塔结构

金字塔的应用场景项目需求复杂(多个)项目纬度1.复杂项目拆分子项目过程2.多个项目优先级排序过程单个项目维度1.结果指标和过程指标间的对应关系2.设计目标和设计手段额对应关系工作汇报周会月报项目总结大脑会将具有共性的任何事物组织在一起大脑的短期记忆无法一次容纳约7个以上的记忆项目。当大脑发现需要处理的项目超过4/5个的时候,就会开始归类行为。找出项目之间的逻辑关系,...
原创
320阅读
0评论
0点赞
发布博客于 2 年前

富兰克林的十三个习惯

1.节制:食不过饱,饮不过量,不因为饮酒而误事。2.缄默:讲话要利人利己,避免浪费时间的琐碎闲读。3.秩序:把所有的日常用品都整理得井井有条,把每天需要做的事排出时间表,办公桌上永远都不零乱。4.决断:决心履行你要做的事,必须准确无误地履行你所下定的决心,无论什么事情都不要改变初衷。5.节约:除非是对别人或是对自己有什么特殊的好处,否则不要乱花钱,不要养成浪费的习惯。6.勤奋:不要荒废时...
原创
735阅读
0评论
0点赞
发布博客于 2 年前

漫谈分布式一致性问题

文章目录一.序言二.分布式一致性问题一.序言见过很多同学(也包括我)在学习分布式一致性的时候,喜欢直接去撸Paxos和raft这种强一致协议。然后往往会有下面这些结果:1.看不懂2.(以为)看懂了,过两天忘了3.看懂了,理解了,但是不知道怎么用起来4.看懂了,用起来了,还是出现了不一致的情况(典型的比如用ZK做master选举,脑裂了),迷茫了到底什么是分布式一致性问题?二.分布式...
转载
93阅读
0评论
0点赞
发布博客于 2 年前

Kafka为啥快

文章目录生产者(写入数据)顺序写入Memory Mapped Files(mmap)消费者(读取数据)Kafka是如何耍赖的总结生产者(写入数据)生产者(producer)是负责向Kafka提交数据的,我们先分析这一部分。Kafka会把收到的消息都写入到硬盘中,它绝对不会丢失数据。为了优化写入速度Kafka采用了两个技术,顺序写入和MMFile。顺序写入因为硬盘是机械结构,每次读写都会寻...
转载
302阅读
0评论
1点赞
发布博客于 2 年前

tomcat的连接数与线程池

文章目录前言一、Nio、Bio、APR1、Connector的protocol2、如何指定protocol3、BIO/NIO有何不同二、3个参数:acceptCount、maxConnections、maxThreads1、acceptCount2、maxConnections3、maxThreads4、参数设置三、线程池Executor四、查看当前状态1、连接数2、线程前言在使用tomcat...
转载
107阅读
0评论
1点赞
发布博客于 2 年前

索引下推(5.6版本+)

索引下推有了索引下推优化,可以在有like条件查询的情况下,减少回表次数。对于user_table表,我们现在有(username,age)联合索引如果现在有一个需求,查出名称中以“张”开头且年龄小于等于10的用户信息,语句如下:select * from user_table where username like '张%' and age > 10语句有两种执行可能:根据...
转载
9439阅读
5评论
8点赞
发布博客于 2 年前

CMS垃圾回收机制

文章目录什么是CMS使用场景缺点实现机制周期性Old GC触发条件晋升担保失败周期性Old GC过程1. InitialMarking(初始化标记,整个过程STW)2. Marking(并发标记)3. Precleaning(预清理)4. AbortablePreclean(可中断的预清理)5. FinalMarking(并发重新标记,STW过程)主动Old GC什么是CMSCMS全称 Con...
转载
419阅读
0评论
0点赞
发布博客于 2 年前

Redis Hash数据结构的底层实现

文章目录前言1.hash数据结构2.hash数据结构图3.渐进式hash说明4.创建hash表5.添加元素6.查找元素7.删除元素hash命令前言redis是KV型的内存数据库, 数据库存储的核心就是Hash表, 我们执行select命令选择一个存储的db之后, 所有的操作都是以hash表为基础的, 下面会分析下redis的hash数据结构和实现.1.hash数据结构/*Hash表一个节点...
转载
6213阅读
0评论
2点赞
发布博客于 2 年前

《Spring AOP面向切面编程》(下)

文章目录3.Spring AOP的实现原理3.2 链式调用#3.2.1 职责链模式3.2.1.1 V13.2.1.2 V23.2.2 Spring内部实现1)拦截器链是如何生成的2)拦截器链是如何链式调用的3)Spring使用职责链模式实现拦截器链链式调用3.Spring AOP的实现原理3.2 链式调用多个AOP 切面是如何叠加起作用的?public class Proxy implem...
原创
128阅读
0评论
0点赞
发布博客于 2 年前

Java-JDK动态代理实现原理

文章目录JDK动态代理使用实例JDK动态代理实现原理分析Proxy.newProxyInstance()getProxyClass0()ProxyClassFactory.apply()ProxyGenerator.generateProxyClass()生成的代理对象的.class文件JDK动态代理使用实例代理模式的类图如上。关于静态代理的示例网上有很多,在这里就不讲了。因为本篇讲述要点...
原创
263阅读
0评论
0点赞
发布博客于 2 年前

《Spring AOP面向切面编程》(上)

文章目录1.AOP概览2.Spring AOP的使用举例PointCut切入点Advice通知3.Spring AOP的实现原理3.1运行时织入3.1.1代理模式3.1.2 JDK动态代理3.1.3 cglib动态代理3.1.4 Spring如何创建代理beanProxyFactoryBean的getObject()方法getSingletonInstance()方法createAopProxy(...
原创
79阅读
0评论
0点赞
发布博客于 2 年前

java Collections.sort排序原理

事实上Collections.sort方法底层就是调用的Arrays.sort方法,而Arrays.sort使用了两种排序方法,快速排序和优化的归并排序。快速排序主要是对那些基本类型数据(int,short,long等)排序, 而归并排序用于对Object类型进行排序。使用不同类型的排序算法主要是由于快速排序是不稳定的,而归并排序是稳定的。这里的稳定是指比较相等的数据在排序之后仍然按照排序之前...
转载
7609阅读
0评论
2点赞
发布博客于 2 年前

ssl 原理和建立连接过程

ssl 与http关系ssl (“Secure Sockets Layer”)加密原理 和https的关系https = http + sslssl 位置:SSL握手证书主要作用是在SSL握手中,我们来看一下SSL的握手过程客户端提交https请求服务器响应客户,并把证书公钥发给客户端客户端验证证书公钥的有效性有效后,会生成一个会话密钥用证书公钥加密这个会话密钥后,发送给服...
转载
1209阅读
0评论
0点赞
发布博客于 2 年前

TCP连接、Http连接与Socket连接的区别

文章目录HTTP、Socket、TCP的区别Socket(套接字)Socket长连接什么时候用长连接,短连接TCP连接和HTTP连接的区别TCP连接与Socket连接的区别HTTP连接与Socket连接的区别常见问题什么时候该用HTTP,什么时候该用socket ?浏览器在与服务器建立了一个 TCP 连接后是否会在一个 HTTP 请求完成后断开?什么情况下会断开?一个TCP 连接可以发多少个 HT...
转载
6163阅读
7评论
16点赞
发布博客于 2 年前

volatile和synchronized的区别

文章目录一、volatile二、synchronized三、区别一、volatile它所修饰的变量不保留拷贝,直接访问主内存中的。在Java内存模型中,有main memory,每个线程也有自己的memory (例如寄存器)。为了性能,一个线程会在自己的memory中保持要访问的变量的副本。这样就会出现同一个变量在某个瞬间,在一个线程的memory中的值可能与另外一个线程memory中的值,...
转载
7174阅读
0评论
6点赞
发布博客于 2 年前

web接口安全性设计

接口的安全性主要围绕Token、Timestamp和Sign三个机制展开设计,保证接口的数据不会被篡改和重复调用,下面具体来看Token授权机制用户使用用户名密码登录后服务器给客户端返回一个Token(通常是UUID),并将Token-UserId以键值对的形式存放在缓存服务器中。服务端接收到请求后进行Token验证,如果Token不存在,说明请求无效。Token是客户端访问服务端的凭证。登...
转载
546阅读
0评论
0点赞
发布博客于 2 年前

redis大Key多Key分拆方案

文章目录背景单个简单的key存储的value很大该对象需要每次都整存整取该对象每次只需要存取部分数据hash、 set、zset、list 中存储过多的元素一个集群存储了上亿的keykey 本身就有很强的相关性key 本身没有相关性背景业务场景中经常会有各种大key多key的情况, 比如:1: 单个简单的key存储的value很大2: hash, set,zset,list 中存储过多的元...
原创
4504阅读
0评论
0点赞
发布博客于 2 年前

JVM调优

堆大小设置JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。我在Windows Server 2003 系统,3.5G物理内存,JDK5.0下测试,最大可设置为1478m。典型设置:java -Xmx3550m -Xms3550m -X...
转载
39阅读
0评论
0点赞
发布博客于 2 年前

Thread中start()和run()的区别

文章目录多线程原理start()run()start() 和 run()的区别说明start() 和 run()的区别示例多线程原理相当于玩游戏机,只有一个游戏机(cpu),可是有很多人要玩,于是,start是排队!等CPU选中你就是轮到你,你就run(),当CPU的运行的时间片执行完,这个线程就继续排队,等待下一次的run()。调用start()后,线程会被放到等待队列,等待CPU调度,并...
转载
1543阅读
0评论
1点赞
发布博客于 2 年前

5种IO模型

文章目录概念5种IO模型1. A Story2. 5种IO模型1. 阻塞IO2.非阻塞IO3. IO复用/多路转接IO4. 信号驱动IO5. 异步IO3. 区别与联系为什么epoll,kqueue比select高级?概念IO叫做输入输出,我们可以将IO理解为两步:等待IO事件就绪数据就绪后进行真正意义上的IO(真正的数据搬迁)所以,IO的过程一是等,然后才是输入输出。进而,我们可以...
转载
55阅读
0评论
0点赞
发布博客于 2 年前

分布式锁的几种使用方式(redis、zookeeper、数据库)

问题Q:一个业务服务器,一个数据库,操作:查询用户当前余额,扣除当前余额的3%作为手续费synchronizedlockdb lockQ:两个业务服务器,一个数据库,操作:查询用户当前余额,扣除当前余额的3%作为手续费分布式锁我们需要怎么样的分布式锁?可以保证在分布式部署的应用集群中,同一个方法在同一时间只能被一台机器上的一个线程执行。这把锁要是一把可重入锁(避免死锁)这把锁...
转载
337阅读
0评论
0点赞
发布博客于 2 年前

99线、999线TP99、TP999

接口性能的参数常说的999 线就是TP999概念TP=Top Percentile,Top百分数,是一个统计学里的术语,与平均数、中位数都是一类。TP50、TP90和TP99等指标常用于系统性能监控场景,指高于50%、90%、99%等百分线的情况。例子有四次请求耗时分别为:10ms,1000ms,100ms,2ms那么我们可以这样计算TP99:4次请求中,99%的请求数为4*0.99...
转载
6614阅读
0评论
1点赞
发布博客于 2 年前

redis for mac 安装

brew安装redis(4.0.6)brew install redis安装的目录启动redis使用redis关闭redis-cli 客户端关闭redis关闭客户端redis-cli和redis-server不在客户端交互模式下关闭查看redis的运行情况运行后自动在后台运行,关闭后也会继续运行。可以使用端口检测命令来查看。测试redis-server是否启动...
原创
3305阅读
0评论
0点赞
发布博客于 2 年前

静态代理和动态代理

文章目录什么是代理静态代理动态代理第一步:生成TimeProxy源码第二步:编译TimeProxy源码第三步:加载到内存中并创建对象第四步:增加InvocationHandler接口测试代码生成的TimeProxy.java源码MyInvocationHandler.java如何使用JDK实现揭秘Proxy.javaInvocationHandler答疑解惑invoke方法的第一个参数proxy到...
转载
144阅读
0评论
0点赞
发布博客于 2 年前

布隆过滤器

文章目录什么是布隆过滤器场景实现原理HashMap 的问题布隆过滤器数据结构支持删除么如何选择哈希函数个数和布隆过滤器长度最佳实践实现什么是布隆过滤器本质上布隆过滤器是一种数据结构,比较巧妙的概率型数据结构(probabilistic data structure),特点是高效地插入和查询,可以用来告诉你 “某样东西一定不存在或者可能存在”。相比于传统的 List、Set、Map 等数据结构...
转载
103阅读
0评论
0点赞
发布博客于 2 年前

数据库连接池

文章目录什么是连接池为什么要使用连接池传统的连接机制与数据库连接池的运行机制区别不使用连接池流程优点缺点使用连接池流程使用数据库连接池的步骤优点数据库连接池的工作原理连接池主要参数连接池需要注意的点并发问题事务处理连接池的分配与释放连接池的配置与维护数据库对比总结什么是连接池数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个。为什么要...
转载
98阅读
0评论
0点赞
发布博客于 2 年前

一致性Hash原理

文章目录前言一致性Hash概述一致性hash的特性虚拟节点均匀一致性hash总结前言在解决分布式系统中负载均衡的问题时候可以使用Hash算法让固定的一部分请求落到同一台服务器上,这样每台服务器固定处理一部分请求(并维护这些请求的信息),起到负载均衡的作用。但是普通的余数hash(hash(比如用户id)%服务器机器数)算法伸缩性很差,当新增或者下线服务器机器时候,用户id与服务器的映射关系会...
转载
1563阅读
0评论
5点赞
发布博客于 2 年前

Java中Volatile关键字

基本概念先补充一下概念:Java 内存模型中的可见性、原子性和有序性。可见性可见性是一种复杂的属性,因为可见性中的错误总是会违背我们的直觉。通常,我们无法确保执行读操作的线程能适时地看到其他线程写入的值,有时甚至是根本不可能的事情。为了确保多个线程之间对内存写入操作的可见性,必须使用同步机制。可见性,是指线程之间的可见性,一个线程修改的状态对另一个线程是可见的。也就是一个线程修改的结果。另...
转载
77阅读
0评论
0点赞
发布博客于 2 年前

Java中的String、StringBuilder以及StringBuffer

文章目录String类深入理解String、StringBuffer、StringBuilderString str="hello world"和String str=new String("hello world")的区别String、StringBuffer以及StringBuilder的区别不同场景下三个类的性能测试常见的关于String、StringBuffer的面试题String类S...
转载
191阅读
0评论
0点赞
发布博客于 2 年前

Redis 总结

单线程的redis为什么这么快分析:这个问题其实是对redis内部机制的一个考察。其实根据博主的面试经验,很多人其实都不知道redis是单线程工作模型。回答:主要是以下三点(一)纯内存操作(二)单线程操作,避免了频繁的上下文切换(三)采用了非阻塞I/O多路复用机制经营方式一客户每送来一份快递,小曲就让一个快递员盯着,然后快递员开车去送快递。慢慢的小曲就发现了这种经营方式存在下述问题...
转载
76阅读
0评论
0点赞
发布博客于 2 年前

MySql 索引 下

文章目录索引并发场景选择MyISAMInnoDB为什么MyISAM会比Innodb 的查询速度快mysql性能讨论MyISAM索引实现InnoDB索引实现总结索引InnoDB(索引组织表)使用的聚簇索引、索引就是数据,顺序存储,因此能缓存索引,也能缓存数据。MyISAM(堆组织表)使用的是非聚簇索引、索引和文件分开,随机存储,只能缓存索引。并发MyISAM读写互相阻塞:不仅会在写入的时候...
转载
109阅读
0评论
0点赞
发布博客于 2 年前

HashMap,ConcurrentHashMap常见问题

文章目录原理Put方法的原理Get方法的原理HashMap默认初始长度并发情况下死锁java8对hashMap做了什么优化原理众所周知,HashMap是一个用于存储Key-Value键值对的集合,每一个键值对也叫做Entry。这些个键值对(Entry)分散存储在一个数组当中,这个数组就是HashMap的主干。HashMap数组每一个元素的初始值都是Null。对于HashMap,我们最常使...
转载
1067阅读
2评论
0点赞
发布博客于 2 年前

Spring IOC和DI的理解

文章目录分享Iteye的开涛对Ioc的精彩讲解IoC是什么IoC能做什么分享Bromon的blog上对IoC与DI浅显易懂的讲解IoC(控制反转)DI(依赖注入)我对IoC(控制反转)和DI(依赖注入)的理解分享Iteye的开涛对Ioc的精彩讲解IoC是什么Ioc—Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想。在Java开发中,Ioc意味着将你设计...
转载
385阅读
0评论
5点赞
发布博客于 2 年前

并发,并行,异步,多线程

例子一你吃饭吃到一半,电话来了,你一直到吃完了以后才去接,这就说明你不支持并发也不支持并行。你吃饭吃到一半,电话来了,你停了下来接了电话,接完后继续吃饭,这说明你支持并发。 (不一定是同时的)你吃饭吃到一半,电话来了,你一边打电话一边吃饭,这说明你支持并行。例子二并发是两个队列,使用一台咖啡机,并行是两个队列,使用两台咖啡机。如果串行,一个队列使用一台咖啡机,那么哪怕前面那个人便秘了去...
转载
1723阅读
1评论
6点赞
发布博客于 2 年前

架构设计-五视图

1.什么是架构设计我们要成为架构设计师我们需要了解什么是架构设计。简单一点,架构设计就是一个系统的草图,描述了构成系统的抽象组件,以及各个组件之间的是如何进行通讯的,这些组件在实现过程中可以被细化为实际的组件比如类或者对象。在面向对象领域中,组件之间的联通通常面向于接口实现的。2.架构设计为了解决什么问题开发之初逻辑设计阶段要确定系统如何开发,整个系统融合为一个系统开发还是从业务角度将系统拆...
转载
2676阅读
0评论
3点赞
发布博客于 3 年前

UML-交互图-序列图和协作图

文章目录1.是交互图2.序列图(Sequence Diagram)/协作图(Collaboration Diagram)3. 序列图构成3.1object(对象)3.2 lifeline(生命线)3.3 message(消息)4.协作图构成4.1 object(对象)4.2 message(消息)4.3 link(链)5.序列图/协作图实例汽车租赁序列图--机房收费系统一般用户上机操作员注册协作图...
转载
4791阅读
0评论
2点赞
发布博客于 3 年前

java 接口做实参

文章目录题目实现题目利用接口做参数,写个计算器,能完成±*/运算(1)定义一个接口Compute含有一个方法int computer(int n,int m);(2)设计四个类分别实现此接口,完成±*/运算(3)设计一个类UseCompute,含有方法:public void useCom(Compute com, int one, int two)此方法要求能够:用传递过来的对...
转载
258阅读
0评论
0点赞
发布博客于 3 年前

Guava之Ordering比较器

文章目录简介常见的静态方法使用natural()reverse()usingToString()from()应用简介Ordering是Guava类库提供的一个犀利强大的比较器工具,Guava的Ordering和JDK Comparator相比功能更强。它非常容易扩展,可以轻松构造复杂的comparator,然后用在容器的比较、排序等操作中。本质上来说,Ordering 实例无非就是一个特殊的...
转载
215阅读
0评论
0点赞
发布博客于 3 年前

BeanUtil 工具类

@Log4jpublic class BeanUtil { /** * 封装{@link org.apache.commons.collections.CollectionUtils#collect}方法和{@link org.springframework.beans.BeanUtils#copyProperties}方法,常用与批量将Bean转换为DTO * ...
原创
1025阅读
0评论
0点赞
发布博客于 3 年前

SSO 单点登录

简介SSO英文全称Single Sign On 单点登录是一种控制多个相关但彼此独立的系统访问权限的机制, 拥有这一权限的用户 可以使用单一的ID和密码访问某个或多个系统从而避免使用不同的用户名或密码,或者通过某种配置无缝地登录每个系统,它是目前比较流行的企业业务整合的解决方案之一,例如我们使用mis号登陆过公司的一个系统后,再登陆其他系统不用再次输入用户名和密码 单系统登录...
原创
9071阅读
0评论
6点赞
发布博客于 3 年前

java 继承创建父类对象

代码public class A { int a=1; double d=2.0; void show(){ System.out.println("Class A: a="+a +"\td="+d); }}public class B extends A{ float a=3.0f; String d="Jav...
原创
2888阅读
0评论
2点赞
发布博客于 3 年前

ajax请求、response失效

今天在写项目的时候,想加一个切换用户,需要清除session并且跳转到登录页面,发起一个ajax请求后,执行完发现无法跳转。原因Ajax只是利用脚本访问对应url获取数据而已,不能做除了获取返回数据以外的其它动作了。所以浏览器端是不会发起重定向的。 1)正常的http url请求,只有浏览器和服务器两个参与者。浏览器端发起一个http请求,服务器端处理后发起一个重定向,浏览器端从r...
转载
2831阅读
1评论
0点赞
发布博客于 3 年前

Java静态变量的初始化(static块的本质)

public class Test { static { _i = 20; } public static int _i = 10; public static void main(String[] args) { System.out.println(_i); } } 上述代码会打印出...
转载
5285阅读
0评论
5点赞
发布博客于 3 年前

Java反射机制详解 及 Method.invoke

JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。 Java反射机制主要提供了以下功能: 在运行时判断任意一个对象所属的类;在运行时构造任意一个类的对象;在运行时判断任意一个类所具有的成员变量和方法;在运行时调用任意一个对象的方法;生成动态代理。...
转载
220阅读
0评论
0点赞
发布博客于 3 年前

java 泛型

概述泛型在java中有很重要的地位,在面向对象编程及各种设计模式中有非常广泛的应用。什么是泛型?为什么要使用泛型?泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(...
转载
121阅读
0评论
0点赞
发布博客于 3 年前

Java内部类及内部接口

public class ParcellA {//外部类 private int pMember;//声明一个私有成员 private static int pstMember;//声明一个私有静态成员 private final int pfMember=9;//常量值 private final static int pfsMember=0;//常量静态成员...
转载
6200阅读
4评论
1点赞
发布博客于 3 年前

HTTP 1.0、HTTP 1.1与HTTP2.0的比较

一个WEB站点每天可能要接收到上百万的用户请求,为了提高系统的效率,HTTP 1.0规定浏览器与服务器只保持短暂的连接,浏览器的每次请求都需要与服务器建立一个TCP连接,服务器完成请求处理后立即断开TCP连接,服务器不跟踪每个客户也不记录过去的请求。但是,这也造成了一些性能上的缺陷,例如,一个包含有许多图像的网页文件中并没有包含真正的图像数据内容,而只是指明了这些图像的URL地址,当WEB浏览器访...
转载
129阅读
0评论
0点赞
发布博客于 3 年前

mac 下brew安装redis(4.0.6)

brew安装redisbrew install redis 安装的目录 启动redis使用redis关闭redis-cli 客户端关闭redis 关闭客户端redis-cli和redis-server 不在客户端交互模式下关闭 查看redis的运行情况运行后自动在后台运行,关闭后也会继续运行。可以使用端口检测命令来查看。
原创
5538阅读
0评论
0点赞
发布博客于 3 年前

JUnit的各种断言

为什么需要单元测试在开发软件的过程中,用户需要实际运行所编写的代码以确保程序的正确性。当软件变得越来越大,再去添加新的功能或做一些新的改动时,就很容易带来新的问题,甚至会使程序无法正常运行。然而要手动的运行代码,测试代码的可行性也是非常枯燥以及非常耗费时间的事情。 为了减少这种手动测试,可以通过创建单元测试来自动完成测试的工作。当修改代码或者添加新功能后,可以执行单元测试来保证代码运行无误。所有测
转载
335阅读
0评论
0点赞
发布博客于 4 年前

guava实现内存缓存

guava缓存google guava中有cache包,此包提供内存缓存功能。内存缓存需要考虑很多问题,包括并发问题,缓存失效机制,内存不够用时缓存释放,缓存的命中率,缓存的移除等等。 当然这些东西guava都考虑到了。guava中使用缓存需要先声明一个CacheBuilder对象,并设置缓存的相关参数,然后调用其build方法获得一个Cache接口的实例。请看下面的代码和注释,注意在注释中指定了C
转载
778阅读
0评论
0点赞
发布博客于 4 年前

HttpServletRequest中读取HTTP请求的body

背景Spring MVC 等框架用久了之后,发现对于POST请求里面如果不使用@RequestBody 好像很难获得POST的body。HTTP请求中的是字符串数据字符串读取void charReader(HttpServletRequest request) { BufferedReader br = request.getReader(); String str, wholeStr
转载
36796阅读
1评论
2点赞
发布博客于 4 年前

<mvc:annotation-driven/>

AnnotationDrivenBeanDefinitionParser通常如果我们希望通过注解的方式来进行SpringMVC开发,我们都会在*-servlet.xml中加入标签来告诉spring我们的目的。但是我们为什么这么做呢?这个标签是什么意思呢?它做了什么呢?同样为了弄清楚这些问题, 像标签一样,我们先找到它的解析类。第一篇文章中说过了,所有的自定义命名空间(像mvc,contex
转载
3497阅读
0评论
0点赞
发布博客于 4 年前

Field获取java类中的成员变量名

利用反射机制获取成员变量的变量名 PartnerDto partnerDto; Map<String,Object> partnerCustomerMap = partnerDto.getCustomData(); Field[] fields = partnerDto.getClass().getDeclaredFields(); if(fields != null
转载
13671阅读
0评论
0点赞
发布博客于 4 年前

使用javassist生成新类

javassistjavassist是一个开源的分析、编辑和创建Java字节码的类库。不需要了解虚拟机指令,就能动态生成类或者改变类的结构。ClassPoolClassPool是缓存CtClass对象的容器,所有的CtClass对象都在ClassPool中。所以,CtClass对象很多时,ClassPool会消耗很大的内存,为了避免内存的消耗,创建ClassPool对象时可以使用单例模
转载
1083阅读
0评论
0点赞
发布博客于 4 年前

ETL的经验总结

ETL的考虑 做数据仓库系统,ETL是关键的一环。说大了,ETL是数据整合解决方案,说小了,就是倒数据的工具。回忆一下工作这么些年来,处理数据迁移、转换的工作倒还真的不少。但是那些工作基本上是一次性工作或者很小数据量,使用access、DTS或是自己编个小程序搞定。可是在数据仓库系统中,ETL上升到了一定的理论高度,和原来小打小闹的工具使用不同了。究竟什么不同,从名字上就可以看到,人家已经将倒
转载
3428阅读
0评论
0点赞
发布博客于 4 年前

Spring AOP 及动态代理和静态代理

AOP是Aspect Oriented Programing的简称,面向切面编程。AOP适合于那些具有横切逻辑的应用:如性能监测,访问控制,事务管理、缓存、对象池管理以及日志记录。AOP将这些分散在各个业务逻辑中的代码通过横向切割的方式抽取到一个独立的模块中。AOP 实现的关键就在于 AOP 框架自动创建的 AOP 代理,AOP 代理则可分为静态代理和动态代理两大类,其中静态代理是指使用 AOP 框
原创
426阅读
0评论
0点赞
发布博客于 4 年前

UML-用例图

概念用例图主要用来描述 用户、需求、系统功能单元 之间的关系。它展示了一个外部用户能够观察到的系统功能模型图。 【用途】:帮助开发团队以一种可视化的方式理解系统的功能需求。组成用例图所包含的元素如下:参与者(Actor)表示与您的应用程序或系统进行交互的用户、组织或外部系统。用一个小人表示。 用例(Use Case)用例就是外部可见的系统功能,对系统提供的服务进行描述。 用椭圆表示 子系统(
转载
498阅读
0评论
0点赞
发布博客于 4 年前

UML-类图

在UML类图中,常见的有以下几种关系:泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)泛化(Generalization)【泛化关系】:是一种继承关系,它指定了子类如何特化父类的所有特征和行为例如:老虎是动物的一种. 【箭头指向】:带三角箭头的实线,
转载
222阅读
0评论
0点赞
发布博客于 4 年前

JVM性能调优监控工具jps、jstack、jmap、jhat、jstat、hprof

现实企业级Java开发中,有时候我们会碰到下面这些问题:OutOfMemoryError,内存不足内存泄露线程死锁锁争用(Lock Contention)Java进程消耗CPU过高……这些问题在日常开发中可能被很多人忽视(比如有的人遇到上面的问题只是重启服务器或者调大内存,而不会深究问题根源),但能够理解并解决这些问题是Java程序员进阶的必备要求。本文将对一些常用的JVM性能调优监控工
转载
596阅读
0评论
0点赞
发布博客于 4 年前

ps命令详解

使用权限:所有使用者 使用方式:ps [options] [–help] 说明:显示瞬间行程 (process status) 的动态,进程的状态 参数:ps的参数非常多, 在此仅列出几个常用的参数并大略介绍含义 -A 列出所有的进程 -w 显示加宽可以显示较多的资讯 -au 显示较详细的资讯 -aux 显示所有包含其他使用者的行程常用参数:-A 显示所有进程(
转载
1751阅读
0评论
0点赞
发布博客于 4 年前

OC中UIImage三种创建方式

直接使用imageNamed进行创建 1 UIImage * image = [UIImage imageNamed:@"1.jpg"]; 简单说一下这种方式的优缺点:优点:代码量少,一行代码就可以搞定。当程序中多次加载这张图片时,系统会指向同一块内存,这样可以提升效率。缺点:系统每次会将图片缓存到计算机的内存中去,如果图片非常大,非常多,会消耗很大的计算机内存,会出现卡顿的现象。将本地图片转换成N
转载
2576阅读
0评论
1点赞
发布博客于 4 年前

UIImagePickerController在ios10环境一打开就crash的问题

在之前的系统环境下,UIImagePickerController都可以顺利打开。但是自从手机升级了ios10以后,每次打开相机和照片库都会直接崩溃。通过google搜索找到StackOverflow的帖子,简单讲就是从ios10开始,调用用户相机和访问照片库都需要先获取使用权限。具体的方法就是在info.plist文件中添加以下两项内容:获取相机权限<key>NSCameraUsageDescri
转载
793阅读
0评论
0点赞
发布博客于 4 年前

mysql explain

explain显示了MySQL如何使用索引来处理select语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句。 先看一个例子: mysql> explain select * from t_order; | id | select_type | table | type | possible_keys | key | key_len | ref | rows | E
转载
832阅读
0评论
0点赞
发布博客于 4 年前

Java 浮点数 float和double类型的表示范围和精度

隐约记得,浮点数判断大小好像有陷阱,因为底层的二进制数不能精确表示所有的小数。有时候会产生让人觉得莫名其妙的事情。 如在Java中, 0.99999999f==1f //true 0.9f==1f //false 要明白这些,首先要搞清楚float和double在内存结构1.内存结构float和double的范围是由指数的位数来决定的。 float的指数位
转载
865阅读
0评论
0点赞
发布博客于 4 年前

spring AspectJ的Execution表达式

在使用spring框架配置AOP的时候,不管是通过XML配置文件还是注解的方式都需要定义pointcut”切入点”例如定义切入点表达式 execution (* com.sample.service.impl..*.*(..))execution()是最常用的切点函数,其语法如下所示:整个表达式可以分为五个部分:execution(): 表达式主体。第一个号:表示返回类型,号
转载
251阅读
0评论
0点赞
发布博客于 4 年前

maven dependency中scope=compile 和 provided区别

问题再现上次这边朋友问我一个问题,就是他们在pom.xml中的dependency中,看到有一些是provided的情况,比如如下:<dependency> <groupId>com.liferay.portal</groupId> <artifactId>portal-impl</artifactId> <version>6.1.0</version> <scope
转载
33945阅读
0评论
4点赞
发布博客于 4 年前

struts.xml配置文件(package,namespace,action)

struts2.0 xml配置struts.xml文件是整个Struts2框架的核心。 struts.xml文件内定义了Struts2的系列Action,定义Action时,指定该Action的实现类,并定义该Action处理结果与视图资源之间的映射关系。 <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD S
转载
379阅读
0评论
0点赞
发布博客于 4 年前

Spring @Resource、@Autowired、@Qualifier的注解注入及区别

spring2.5提供了基于注解(Annotation-based)的配置,我们可以通过注解的方式来完成注入依赖。在Java代码中可以使用 @Resource或者@Autowired注解方式来经行注入。虽然@Resource和@Autowired都可以来完成注入依赖,但它们之间是有区 别的。首先来看一下: a。@Resource默认是按照名称来装配注入的,只有当找不到与名称匹配的bean才会
转载
3280阅读
0评论
0点赞
发布博客于 4 年前

如何生成SSH key

SSH key提供了一种与GitHub通信的方式,通过这种方式,能够在不输入密码的情况下,将GitHub作为自己的remote端服务器,进行版本控制步骤检查SSH keys是否存在 生成新的ssh key 将ssh key添加到GitHub中 1)检查SSH keys是否存在 输入下面的命令,如果有文件id_rsa.pub 或 id_dsa.pub,则直接进入步骤3将SSH key添加到Gi
转载
402阅读
0评论
0点赞
发布博客于 4 年前

CDATA标记的作用

所有 XML 文档中的文本均会被解析器解析,比如’& nbsp;’将不像其他地方那样被转换成空格。只有 CDATA 区段(CDATA section)中的文本会被解析器忽略。CDATA术语 CDATA 指的是不应由 XML 解析器进行解析的文本数据(Unparsed Character Data)。 在 XML 元素中,”<” 和 “&” 是非法的。 “<” 会产生错误,因为解析器会把该字符解释
原创
4450阅读
0评论
0点赞
发布博客于 4 年前

HTTP Request 和Response

什么是HTTP协议协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则,超文本传输协议(HTTP)是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器 目前我们使用的是HTTP/1.1 版本Web服务器,浏览器,代理服务器当我们打开浏览器,在地址栏中输入URL,然后我们就看到了网页。 原理是怎样的呢?实际上我们输入URL后,我们的浏览器给We
转载
16569阅读
1评论
5点赞
发布博客于 4 年前

struts2 package name

首先更正一点,struts配置文件中的package name属性不是解决重名问题的,而是用来实现继承的,namespace才是用来解决重名的,前台和后台可以这样分<package name="front" namespace="/front" extends="default"> <package name="back" namespace="/back" extends="default">这
转载
739阅读
0评论
0点赞
发布博客于 4 年前

Spring log4j配置详解

Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局)。这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出。综合使用这三个组件可以轻松地记录信息的类型和级别,并可以在运行时控制日志输出的样式和位置。LoggerLoggers组件被分为五个级别:DEBUG INFO WARN ERROR FATAL 各个级别的顺序是这样那个的
转载
5047阅读
0评论
0点赞
发布博客于 4 年前

java 深入理解ThreadLocal

相信读者在网上也看了很多关于ThreadLocal的资料,很多博客都这样说:ThreadLocal为解决多线程程序的并发问题提供了一种新的思路;ThreadLocal的目的是为了解决多线程访问资源时的共享问题。如果你也这样认为的,那现在给你10秒钟,清空之前对ThreadLocal的错误的认知!看看JDK中的源码是怎么写的:This class provides thread-local varia
转载
2266阅读
0评论
1点赞
发布博客于 4 年前

Java 强引用、弱引用、软引用、虚引用

强引用(StrongReference)强引用是使用最普遍的引用。如果一个对象具有强引用,那垃圾回收器绝不会回收它。如下:Object o=new Object(); // 强引用 当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不足的问题。如果不使用时,要通过如下方式来弱化引用,如下:o=null;
转载
400阅读
0评论
0点赞
发布博客于 4 年前

Java中 遍历Map对象的6种方法

public class mapTest { public static void main(String arg[]) { Map<String, String> map = new HashMap<String, String>(); map.put("username", "mcc"); map.put("passWord", "123")
原创
419阅读
0评论
0点赞
发布博客于 4 年前

Spring 请求重定向urlrewritefilter

访问请求localhost:8080/menus跳转到localhost:8080/menus/home 依赖的jar包 <dependency> <groupId>org.tuckey</groupId> <artifactId>urlrewritefilter</artifactId> <version>4.0.4</version> </dependency>配置在
原创
1464阅读
0评论
0点赞
发布博客于 5 年前

Java 正则表达式Matcher 类使用

问题字符串中替换某一个子串。 用到的jar:guava 16.0.1代码public class TemplateUtils { private static Pattern patternForVariable = Pattern.compile("\\$\\{(\\w+)\\}", Pattern.CASE_INSENSITIVE); /** * 简单的表达式替换 <br
原创
760阅读
0评论
0点赞
发布博客于 5 年前

Java ThreadPoolExecutor 线程池

概述ThreadPoolExecutor作为java.util.concurrent包对外提供基础实现,以内部线程池的形式对外提供管理任务执行,线程调度,线程池管理等等服务; Executors方法提供的线程服务,都是通过参数设置来实现不同的线程池机制。 先来了解其线程池管理的机制,有助于正确使用,避免错误使用导致严重故障。同时可以根据自己的需求实现自己的线程池 核心构造方法讲解Thread
转载
1263阅读
0评论
1点赞
发布博客于 5 年前

Java 工厂模式

在面向对象编程中, 最通常的方法是一个new操作符产生一个对象实例,new操作符就是用来构造对象实例的。但是在一些情况下, new操作符直接生成对象会带来一些问题。举例来说, 许多类型对象的创造需要一系列的步骤: 你可能需要计算或取得对象的初始设置; 选择生成哪个子对象实例; 或在生成你需要的对象之前必须先生成一些辅助功能的对象。 在这些情况,新对象的建立就是一个 “过程”,不仅是一个操作,像一部大
转载
257阅读
0评论
0点赞
发布博客于 5 年前

Java泛型详解

例子我们知道,使用变量之前要定义,定义一个变量时必须要指明它的数据类型,什么样的数据类型赋给什么样的值。 假如我们现在要定义一个类来表示坐标,要求坐标的数据类型可以是整数、小数和字符串,例如: x = 10、y = 10 x = 12.88、y = 129.65 x = “东京180度”、y = “北纬210度”针对不同的数据类型,除了借助方法重载,还可以借助自动装箱和向上转型。我们知道,基
转载
303阅读
0评论
0点赞
发布博客于 5 年前

Java Lombok @Data @Builder

常用的 lombok 注解@EqualsAndHashCode:实现equals()方法和hashCode()方法 @ToString:实现toString()方法 @Data :注解在类上;提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法 @Setter:注解在属性上;为属性提供 settin
转载
53946阅读
4评论
19点赞
发布博客于 5 年前

Spring MVC之@RequestBody, @ResponseBody 详解

@RequestBody作用i) 该注解用于读取Request请求的body部分数据,使用系统默认配置的HttpMessageConverter进行解析,然后把相应的数据绑定到要返回的对象上; ii) 再把HttpMessageConverter返回的对象数据绑定到 controller中方法的参数上。使用时机A) GET、POST方式提时, 根据request header Conten
转载
626阅读
0评论
0点赞
发布博客于 5 年前

Spring MVC之@RequestParam @RequestBody @RequestHeader 等详解

简介handler method 参数绑定常用的注解,我们根据他们处理的Request的不同内容部分分为四类:(主要讲解常用类型) A、处理requet uri 部分(这里指uri template中variable,不含queryString部分)的注解: @PathVariable; B、处理request header部分的注解: @RequestHeader, @CookieVa
转载
424阅读
0评论
0点赞
发布博客于 5 年前

Spring MVC之@RequestMapping 详解

简介@RequestMapping RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。六个属性RequestMapping注解有六个属性,下面我们把她分成三类进行说明。 1. value, method; value: 指定请求的实际地址,指定的地址可以是URI Template 模式(后面将会
转载
271阅读
0评论
0点赞
发布博客于 5 年前

堆排序 (MEDIUM)

思路建堆:从第一个非叶子结点开始到第一个结点。出堆:每出一个,从根(0)开始调整。原理堆排序是一种树形选择排序方法,它的特点是:在排序的过程中,将array[0,…,n-1]看成是一颗完全二叉树的顺序存储结构,利用完全二叉树中双亲节点和孩子结点之间的内在关系,在当前无序区中选择关键字最大(最小)的元素。 1. 若array[0,…,n-1]表示一颗完全二叉树的顺序存储模式,则双亲节点指针和孩
原创
220阅读
0评论
0点赞
发布博客于 5 年前

Spring scope属性详解

scope用来声明IOC容器中的对象应该处的限定场景或者说该对象的存活空间,即在IOC容器在 对象进入相应的scope之前,生成并装配这些对象,在该对象不再处于这些scope的限定之后,容器通常会销毁这些对象。打个比方吧!我们都是处在社会 (容器)中,如果把中学教师作为一个类定义,那么当容器初始化这些类之后,中学教师只能局限在中学这个场景中,中学,就可以看做中学教师的scope。Spring容器最初
转载
292阅读
0评论
0点赞
发布博客于 5 年前

先序中序得到后序 (MEDIUM)

思路ABDGCEFH DGBAECHF 输入前序ABDGCEFH,中序DGBAECHF,可以得出 A为该二叉树的根节点 1: BDG为该二叉树左子树的前序 2: DGB为该二叉树左子树的中序 A BDG CEFH DGB A ECHF 根据1和2可以构建一棵左子树 3: CEFH为该二叉树右子树的前序 4: ECHF为该二叉树右子树的中序 根据3和4可以构建一个右
原创
204阅读
0评论
0点赞
发布博客于 5 年前

快速排序 (MEDIUM)

思路原理先从数列中取出一个数作为基准数。分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。再对左右区间重复第二步,直到各区间只有一个数。 挖坑填数+分治法实例以一个数组作为示例,取区间第一个数为基准数。 初始时,i = 0; j = 9; X = a[i] = 72由于已经将a[0]中的数保存到X中,可以理解成在数组a[0]上挖了个坑,可以将其它数据填充
转载
225阅读
0评论
0点赞
发布博客于 5 年前