- 博客(46)
- 收藏
- 关注
原创 记一次Spring3.0 返回Map<Long,List<Item>> 类型结果出现 castClassException:Long to String 错误
版本:Spring3.0 、java 1.6 @RequestMapping(/get) public Map<Long, List<Item>> getPrepareTradeItemMap(UserKey key, Long[] ids) throws Exception {} 上面的方法没有使用@responseBody注解去转json格式,项目自定义了一个ReturnHandler实现 HandlerMethodReturnValueHandler,来对.
2020-09-15 14:14:35
480
原创 Java集合类型——持续更新
更新时间 第一版:20200703 问题 1. 整理全部的数据类型 2. 每个数据类型的底层数据结构、是数组、链表、栈、散列表、队列、红黑树、二叉树、B树 3. 对比每种数据类型的区别 4. 每种数据类型的使用场景 java数据结构主要接口和类 枚举(Enum) 位集合(BitSet) 向量(Vector) 栈(Stack) 字典(Dictionary) 哈希表(HashTable) 属性(Properties) 集合(其中包括接口和实现类) 看后缀:Set,List.
2020-07-03 18:00:45
296
原创 数据结构——红黑树
红黑树 红黑树超级链接 R-B TREE 红黑树 红黑树,是一种特殊的二叉查找树,红黑树的每个节点都有存储位,表示节点的颜色,红或者黑 红黑树五大特性 每个节点不是黑色就是红色 根节点一定是黑色 每个空的(NIL)叶子节点都是黑色,所谓的叶子节点都是NIL、一般都没有显示出来的节点 如果一个节点是红色的,则它的子节点必须是黑色的,红色节点的父节点都是黑色的,从根节点到叶子节点的所有路径上不能有2个连续的红色节点 从一个节点到该节点的子孙节点的所有路径上包含相同数量的黑节点 红黑树 对比 2-3-4
2020-07-02 16:22:12
371
原创 数据结构——B树
B树 B树的概念 B树是一种平衡的多路搜索树,多用于文件系统、数据库实现 B树的特点 一个节点可以存储超过两个元素,可以拥有超过2个子节点;而二叉树的每个节点最多可以存储1个元素,并且一个父节点不能拥有超过2个子节点 拥有二叉搜索树的一些性质 平衡,每个节点的所有子树高度一致 树的高度相比二叉树不会更高 m阶B树的性质(m>=2) 假设一个节点存储的元素个数为X 根节点:1 <= x <= x-1 非根节点:clie(m/2) - 1 <= x <= x-1 如果有子节点
2020-07-02 16:21:20
488
原创 数据结构——二叉树
二叉树(Binary Tree) 为什么要有二叉树 二叉树结合了有序数据,链表两者的优势,在树种查找数据的素的和有序数组中一样快,插入数据和删除数据的速度和链表一样快 树的概念 节点、根节点、父节点、子节点、兄弟节点 节点高度:子树的个数 树的高度:所有节点度中最大值 叶子节点:度为0的节点 非叶子节点:度不为0的节点 层数:根节点在第一层,开始计算 节点的深度:从根节点到当前节点的唯一路径上的节点数量 节点的高度:从当前节点到最远叶子节点的路径上的节点总数 树的深度:所有节点深度中的最大值 树的
2020-07-02 16:20:36
229
原创 数据结构——基础知识
基本知识点 复杂度对比 执行次数 复杂度 非正式术语 12 O(1) 常数阶 2n+1 O(n) 线性阶 2n^2+2n+1 O(n^2) 平方阶 2log2n+1 O(logN) 对数阶 n3+n2+n+100 O(n^3) 立方阶 2^n O(2^n) 指数阶 O(1) < O(logn) < O(n) < O(nlogn) < O(n2) < O(n3) < O(2n) < O(n!) < O(nn) 算法优化方向
2020-07-02 16:18:50
236
原创 MySql面试题整理
简单说两句:在整理MySql数据库知识点之前,我对于MySql的了解在 CRUD、创建数据库、表、设计字段、创建索引的基本层面。对于sql语句的优化也就记住了创建索引、用exists代替in,分表分库、读写分离。但是你要问我索引怎么设计,什么时候索引会失效、分表怎么分、数据库字段长度都要设置成多少、tinyint能存多少,int能存多少,varchar能存多少,数据库编码gbk和utf-8区别、MyISAMh和InnoDB什么区别,各自适合哪种场景。我基本说不上来。每次升级把数据库提交给负责人的时候都是心.
2020-06-29 18:08:26
232
原创 Mysql表设计原则
表设计原则 mysql存储原理 记录存储方式 记录按行存储在页内 按照主键顺序 页内单向链表 页间双向链表 基本数据类型 tinyint,smallint,mediumint,int,bigint, float, double,decimal(存储类型,cup不支持直接计算) varchar,char MySQL的数据类型中长度的含义 字节:8位=1个字节 字符:gbk编码中一个字符占2个字节,utf-8编码中一个字符占3个字节 对于gbk类型,行长度最大为65535,则varchar列的最大长度算法
2020-06-28 15:26:39
810
原创 MyISAM与InnoDB存储引擎性能比较
简介 存储引擎 desc MyISAM 高速引擎,查询速度快,但不支持事务 InnoDB 5.5版本后MySql默认数据库,支持事务和行级锁,速度比MyISAM慢 - InnoDB MyISAM 存储文件 .frm 表定义文件.ibd 数据文件和索引文件 .frm 表定义文件 .myd 数据文件 .myi 索引文件 锁 表锁、行锁 表锁 事务 支持 不支持 CRUD 读、写 读多 count查询 扫表 有专门存储的地方 索引结构 B+Tree B+
2020-06-28 15:19:18
399
原创 微服务(六)
微服务(六) 向大佬学习的第六天 2020.5.13 目录微服务(六)Springboot 整合 Redis创建项目问题Redis基础知识 Springboot 整合 Redis 创建项目 新建springboot项目、导入redis依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redi
2020-05-26 11:50:17
222
原创 百度离线地图下载和叠加层瓦片切割(工具下载链接已更新)
注:如有侵权行为,请联系我删除。 注:如需转载请联系本人,并注明出处。 注:工具下载链接已更新 时间:20190910 目录 前言 工具 切片方法 离线地图瓦片下载 离线瓦片和叠加层结合 结语 前言 万恶的百度,只要你所有一下百度离线地图,就会出现一堆有用没用,似曾相识的网站和博客,直接让你摸不着头脑。虽然csdn上已经有了很多类似该标题的博客来写瓦片的切片过程,但...
2020-05-12 11:46:31
12832
31
原创 Idea启动Tomcat的配置问题
目录CATALINA_BASEJAVA_OPTSDebugger断点无效 CATALINA_BASE IDEA启动Tomcat时加载的CATALINA_BASE的加载路径如果没有显式的定义,那么IDEA就会从自己的配置文件下加载,也就是从idea本身的tomcat中加载。如下图: 引发的问题 java.lang.NullPointerException at org.apache.catalina.startup.HostConfig.filterAppPaths(HostConfig.java:49
2020-05-11 18:08:33
1748
原创 微服务(五)
微服务(五) 向大佬学习的第五天 2020.4.26 目录微服务(五)为什么要做微服务微服务的服务粒度选项说说RPC框架 为什么要做微服务 在说微服务之前、我们了解一下之前的高可用架构的样子 1、同一个项目部署多台服务器上、通过Nginx反向代理进行转发 架构痛点: 1、代码拷贝、重复性严重 对于用户数据来说、所有业务都使用同一份用户数据、而每个业务都维护了一份用户信息的DAO代码 2、复杂...
2020-04-26 11:26:55
295
原创 微服务(四)
微服务(四) 目录微服务(四)DubboDubbo是什么Dubbo和Spring cloud 对比 Dubbo Dubbo是什么 网站应用的架构变化经历了一个从所有服务分布在一台服务器上(All in one 、单一应用架构)到 垂直应用架构 (MVC模式,按照各模块的职能划分)到分布式应用架构(RPC、按照服务不同分布在不同的服务器上)再到面向服务的架构(SOA,增加调度中心,负责集群的调度和...
2020-04-21 18:22:48
343
原创 微服务(三)
微服务(三) 目录微服务(三)Spring Cloud Bus 消息总线Rabbit MQ Spring Cloud Bus 消息总线 在微服务架构系统中,通常会使用轻量级的消息代理来构建一个公用的消息主题 ,让系统中所有微服务实例都连接起来。由于该主题中产生的消息都会被各个监听实例消费,因此称为消息总线。消息总线可用用于配置信息的变更和统一操作管理,它的使用范围很广,也是微服务架构中的必备组件,...
2020-04-20 17:22:31
586
原创 微服务(二)
向大佬们学习的第二天 2020.4.16 微服务(二) 目录微服务(二)Feign 声明式客户端zuul 服务网关Config 分布式配置中心 Feign 声明式客户端 Feign是NetFlix开发的声明式、模板化的HTTP客户端,用于更便捷、优雅地调用HTTP API。 SpringCould对Feign进行了增强,使Feign支持Spring MVC注解、整合了Ribbon和Eureka...
2020-04-17 14:21:13
250
原创 微服务(一)
向大佬们学习的第一天 2020.4.15 微服务(一) 目录微服务(一)微服务架构springCould介绍注册中心:Eureka介绍负载均衡:Ribbon容错保护:Hystrix 微服务架构 微服务架构 微服务架构其实是一种架构风格、将一个单一应用程序分解成一组小型服务的方法,每个小的服务运行在自己的进程中,服务间通信采用轻量级通信机制(http、tcp),这些服务围绕业务能力构建并通...
2020-04-15 20:18:19
370
原创 前端——高级函数、闭包、箭头函数、gengerator
高阶函数 所谓高阶函数就是一个函数可以接收另一个函数作为参数 闭包 所谓闭包就是一个函数作为结果值返回 箭头函数 Arrow Function x => x * x 上面的箭头函数相当于: function (x) { return x * x; } 箭头函数相当于匿名函数,并且简化了函数定义。箭头函数有两种格式,一种像上面的,...
2020-04-15 17:59:20
200
原创 Django之视图层view layer总结
视图层view layer前言:视图层是Django处理请求的核心代码层,算是起到一个承上启下衔接作用吧它对外部接收用户请求,对内部调用模型层和模板层,牵连着数据库和前端页面,最后根据业务逻辑,将处理好的数据与前端页面结合并返回给用户。视图层是真正的后端,是我们的主营业务...
2020-04-15 17:58:49
446
原创 前端——Ajax请求和View渲染
如果前台是用ModelAndView进行数据渲染的话,返回值是一个页面路径 如果使用Ajax请求进行数据请求的话会有返回值,但是不能对页面进行渲染
2020-04-15 17:57:50
200
原创 前端——iterable遍历Array、Set、Map
遍历Array可以采用下标循环,遍历Map和Set就无法使用下标。为了统一集合类型,ES6标准引入了新的iterable类型,Array、Map和Set都属于iterable类型。 for ... of循环和for ... in循环有何区别? for ... in循环由于历史遗留问题,它遍历的实际上是对象的属性名称。一个Array数组实际上也是一个对象,它的每个元素的索引被视为一个属性。 S...
2020-04-15 17:57:40
216
原创 前端——函数定义和调用 function(){}
匿名函数: var abs = function (x) { if (x >= 0) { return x; } else { return -x; } }; 功能上和下面的一样 function abs(x) { if (x >= 0) { return x; } else { ...
2020-04-15 17:57:27
493
原创 前端——数组Array操作
indexOf() 与String类似,Array()也可以通过indexOf()来搜索一个指定元素的位置 slice() 截取Array的部分元素,返回一个新的数组 var arr = ['A', 'B', 'C', 'D', 'E', 'F', 'G']; arr.slice(0, 3); // 从索引0开始,到索引3结束,但不包括索引3: ['A', 'B', ...
2020-04-15 17:57:19
260
原创 前端——面向对象编程
原型链: JavaScript的面向对象编程和大多数其他语言如Java、C#的面向对象编程都不太一样。如果你熟悉Java或C#,很好,你一定明白面向对象的两个基本概念: 类:类是对象的类型模板,例如,定义Student类来表示学生,类本身是一种类型,Student表示学生类型,但不表示任何具体的某个学生; 实例:实例是根据类创建的对象,例如,根据Student类可以创建出xiao...
2020-04-15 17:57:07
349
原创 前端——变量作用域和this方法
在JavaScript中,用var申明的变量实际上是有作用域的。 如果一个变量在函数体内部申明,则该变量的作用域为整个函数体,在函数体外不可引用该变量 如果两个不同的函数各自申明了同一个变量,那么该变量只在各自的函数体内起作用。换句话说,不同函数内部的同名变量互相独立,互不影响 由于JavaScript的函数可以嵌套,此时,内部函数可以访问外部函数定义的变量,反过来则不行 JavaScri...
2020-04-15 17:56:57
215
原创 前端——常见错误问题
SyntaxError 语法错误 ReferenceError引用错误,在作用域中找不到 TypeError是在作用域中找到了但是 做了它不可能做的事情 在JavaScript的世界里,一切都是对象 ''和`` 单引号和反撇号: 反撇号是EC6新增的模板字符串,它对里面的内容空格、回车不进行转义,变量的话用${}进行转义 DOM对象和jQuery对象...
2020-04-15 17:56:44
173
原创 前端——jQuery
jQuery选择器: 按ID查找 如果某个DOM节点有id属性,利用jQuery查找如下: // 查找<div id="abc">: var div = $('#abc'); 按tag查找 按tag查找只需要写上tag名称就可以了: var ps = $('p'); // 返回所有<p>节点 ps.length; // 数一数页面有多少个<p&g...
2020-04-15 17:48:55
144
原创 Spring AOP
前言:这篇博客是我从网上看到copy过来的 Spring系列之AOP实现的两种方式 AOP常用的实现方式有两种,一种是采用声明的方式来实现(基于XML),一种是采用注解的方式来实现(基于AspectJ)。 首先复习下AOP中一些比较重要的概念: Joinpoint(连接点):程序执行时的某个特定的点,在Spring中就是某一个方法的执行 。Pointcut(切点):说的通俗点,spr...
2019-04-11 19:28:16
157
转载 作为程序员应该做到的八件事
1. 不要吝啬投资自己 和朋友一起搓一顿大概人均几十或者百把块钱,基本上我们都很随意,根本不会觉得这很贵或者很浪费。但是每当我们去买书或者去买一些优质的视频教程的时候,很多人会觉得很贵,甚至不太愿意出这个钱。 的确,技术书籍都很贵,动不动就50-100的,我想说的是什么呢?永远不要吝啬给自己投资,我研究生读的是通信专业,在学校自学的Java,我看过网上很多的免费视频教程,免费的教程...
2019-03-15 21:14:45
284
转载 Java线程——线程池使用介绍
参考文章: 线程池:https://www.jianshu.com/p/210eab345423 Java并发编程——线程池:https://www.cnblogs.com/dolphin0520/p/3932921.html 示例: package com.xzf.threadpool; import java.util.concurrent.ArrayBlockingQueu...
2019-03-15 21:14:15
196
原创 前端页面在线预览PDF 之 pdf.js
首先发一下,我学习的:参考资料 对于没有接触过在线预览pdf的码友可能会感到陌生,了解之后觉得挺简单的。 1、先在网上下载pdf.js,也可以直接网盘下载build.zip 2、打开\build\generic\web下面的viewer.js文件,修改: varDEFAULT_URL='compressed.tracemonkey-pldi-09.pdf'; 改成varDEFA...
2018-10-22 17:03:11
5613
1
转载 Java线程——面试题 Top 50
不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题。Java语言一个重要的特点就是内置了对并发的支持,让Java大受企业和程序员的欢迎。大多数待遇丰厚的Java开发职位都要求开发者精通多线程技术并且有丰富的Java程序开发、调试、优化经验,所以线程相关的问题在面试中经常会被提到。 在典型的Java面试中, 面试官会从线程的基本概念问起, 如:为什么你需要使用线程, 如何创建线程,用什么...
2018-08-07 17:36:09
285
原创 Java线程——Callable与Runnable的区别
Runnable 其中Runnable应该是我们最熟悉的接口,它只有一个run()函数,用于将耗时操作写在其中,该函数没有返回值。然后使用某个线程去执行该runnable即可实现多线程,Thread类在调用start()函数后就是执行的是Runnable的run()函数。Runnable的声明如下 : public interface Runnable { /* * @s...
2018-08-06 18:13:35
22550
转载 Java线程——run()与start()的区别
转自:https://blog.youkuaiyun.com/xuxurui007/article/details/7685076(写的太好了) java的线程是通过java.lang.Thread类来实现的。VM启动时会有一个由主方法所定义的线程。可以通过创建Thread的实例来创建新的线程。每个线程都是通过某个特定Thread对象所对应的方法run()来完成其操作的,方法run()称为线程体。通过调用T...
2018-08-06 09:53:40
439
转载 Java线程——线程控制基本方法
线程操作基本方法 isAlive() 判断线程是否还未终止 getPriority() 获取线程的优先级数值,返回值 setPriority() 设置线程的优先级 Thread.sleep() 将当前线程睡眠指定毫秒数 join() 调用某线程的该方法,将当前线程与该线程“合并”,等待该线程结束,再恢复当前线程的运行 yield() 让出cpu,当前线程进入就绪队列等待调度 wai...
2018-08-03 17:54:29
1596
原创 Java线程——Runnable和Thread的区别
Runnable 是接口 Thread 是类,且实现(implement)了Runnable接口 Thread源码: public class Thread implements Runnable { private static class Caches { static final ConcurrentMap subclassAudits = n...
2018-08-03 17:14:58
382
原创 DWR——我的职业生涯故事线
深吸一口气,闷了这杯水,我来记录一下六个月来与DWR的恩恩怨怨! 2018.3 来到一个新公司(缺人),当时给我一个消息发送的模块让我做(我还处在刚刚看完java基础),让我用DWR做消息发送 2018.5 在这两个月期间,断断续续的在看网上的各种博客,论坛。这里吐槽一下自己查资料的水平(已经对各种转发的技术博客无感,再也不会一股脑儿的上去就看它怎么写了。真的是既浪费时间又什么帮助都...
2018-08-01 19:59:26
360
原创 Spring——JDBC
前言:最近回顾了一遍Spring全家桶,有几个在过程中遇到的问题记录一下。 JDBC:Java数据库连接(Java Database Connectivity) C3P0:一个开源的JDBC连接池 DataSource:JDBC数据源接口 JDBCTemplate:为不同类型的JDBC操作提供模板方法 pom.xml <project xmlns="http://maven.ap...
2018-07-25 16:07:11
205
原创 数据库优化
建立索引 B-Tree索引,哈希表索引,索引是一种数据结构, B-Tree它们是时候复杂度低,查找,删除,插入操作都可以,B-Tree中的数据是有序的 哈希表是将索引列的值作为索引的键值,和键值对应实际的值是指向该表中相应行的指针如何在使用SQL创建索引: CREATE INDEX name_index ON Employee (Employee_Name) ...
2018-07-20 16:00:45
259
转载 Java数据结构
java.util包中三个重要的接口及特点:List(列表)、Set(集合,集合中元素唯一)、Map(key-value,key唯一)。不同类的实现各有差异:是否同步,线程安全,是否有序 常用类继承树 Collection(所有集合类的接口) List、Set方法都继承自Collection接口 Collections(操作集合的工具类) 它提供了许多方便的方法,包括求两个集...
2018-07-20 13:47:17
247
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅