- 博客(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
371
原创 Java集合类型——持续更新
更新时间第一版:20200703问题 1. 整理全部的数据类型 2. 每个数据类型的底层数据结构、是数组、链表、栈、散列表、队列、红黑树、二叉树、B树 3. 对比每种数据类型的区别 4. 每种数据类型的使用场景java数据结构主要接口和类枚举(Enum)位集合(BitSet)向量(Vector)栈(Stack)字典(Dictionary)哈希表(HashTable)属性(Properties)集合(其中包括接口和实现类)看后缀:Set,List.
2020-07-03 18:00:45
192
原创 数据结构——红黑树
红黑树红黑树超级链接R-B TREE 红黑树红黑树,是一种特殊的二叉查找树,红黑树的每个节点都有存储位,表示节点的颜色,红或者黑红黑树五大特性每个节点不是黑色就是红色根节点一定是黑色每个空的(NIL)叶子节点都是黑色,所谓的叶子节点都是NIL、一般都没有显示出来的节点如果一个节点是红色的,则它的子节点必须是黑色的,红色节点的父节点都是黑色的,从根节点到叶子节点的所有路径上不能有2个连续的红色节点从一个节点到该节点的子孙节点的所有路径上包含相同数量的黑节点红黑树 对比 2-3-4
2020-07-02 16:22:12
277
原创 数据结构——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
338
原创 数据结构——二叉树
二叉树(Binary Tree)为什么要有二叉树二叉树结合了有序数据,链表两者的优势,在树种查找数据的素的和有序数组中一样快,插入数据和删除数据的速度和链表一样快树的概念节点、根节点、父节点、子节点、兄弟节点节点高度:子树的个数树的高度:所有节点度中最大值叶子节点:度为0的节点非叶子节点:度不为0的节点层数:根节点在第一层,开始计算节点的深度:从根节点到当前节点的唯一路径上的节点数量节点的高度:从当前节点到最远叶子节点的路径上的节点总数树的深度:所有节点深度中的最大值树的
2020-07-02 16:20:36
156
原创 数据结构——基础知识
基本知识点复杂度对比执行次数复杂度非正式术语12O(1)常数阶2n+1O(n)线性阶2n^2+2n+1O(n^2)平方阶2log2n+1O(logN)对数阶n3+n2+n+100O(n^3)立方阶2^nO(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
165
原创 MySql面试题整理
简单说两句:在整理MySql数据库知识点之前,我对于MySql的了解在 CRUD、创建数据库、表、设计字段、创建索引的基本层面。对于sql语句的优化也就记住了创建索引、用exists代替in,分表分库、读写分离。但是你要问我索引怎么设计,什么时候索引会失效、分表怎么分、数据库字段长度都要设置成多少、tinyint能存多少,int能存多少,varchar能存多少,数据库编码gbk和utf-8区别、MyISAMh和InnoDB什么区别,各自适合哪种场景。我基本说不上来。每次升级把数据库提交给负责人的时候都是心.
2020-06-29 18:08:26
162
原创 Mysql表设计原则
表设计原则mysql存储原理记录存储方式记录按行存储在页内按照主键顺序页内单向链表页间双向链表基本数据类型tinyint,smallint,mediumint,int,bigint,float, double,decimal(存储类型,cup不支持直接计算)varchar,charMySQL的数据类型中长度的含义字节:8位=1个字节字符:gbk编码中一个字符占2个字节,utf-8编码中一个字符占3个字节对于gbk类型,行长度最大为65535,则varchar列的最大长度算法
2020-06-28 15:26:39
697
原创 MyISAM与InnoDB存储引擎性能比较
简介存储引擎descMyISAM高速引擎,查询速度快,但不支持事务InnoDB5.5版本后MySql默认数据库,支持事务和行级锁,速度比MyISAM慢-InnoDBMyISAM存储文件.frm 表定义文件.ibd 数据文件和索引文件.frm 表定义文件 .myd 数据文件 .myi 索引文件锁表锁、行锁表锁事务支持不支持CRUD读、写读多count查询扫表有专门存储的地方索引结构B+TreeB+
2020-06-28 15:19:18
284
原创 微服务(六)
微服务(六)向大佬学习的第六天 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
153
原创 百度离线地图下载和叠加层瓦片切割(工具下载链接已更新)
注:如有侵权行为,请联系我删除。注:如需转载请联系本人,并注明出处。注:工具下载链接已更新 时间:20190910目录前言工具切片方法离线地图瓦片下载离线瓦片和叠加层结合结语前言万恶的百度,只要你所有一下百度离线地图,就会出现一堆有用没用,似曾相识的网站和博客,直接让你摸不着头脑。虽然csdn上已经有了很多类似该标题的博客来写瓦片的切片过程,但...
2020-05-12 11:46:31
12160
31
原创 Idea启动Tomcat的配置问题
目录CATALINA_BASEJAVA_OPTSDebugger断点无效CATALINA_BASEIDEA启动Tomcat时加载的CATALINA_BASE的加载路径如果没有显式的定义,那么IDEA就会从自己的配置文件下加载,也就是从idea本身的tomcat中加载。如下图: 引发的问题java.lang.NullPointerExceptionat org.apache.catalina.startup.HostConfig.filterAppPaths(HostConfig.java:49
2020-05-11 18:08:33
1509
原创 微服务(五)
微服务(五)向大佬学习的第五天 2020.4.26目录微服务(五)为什么要做微服务微服务的服务粒度选项说说RPC框架为什么要做微服务在说微服务之前、我们了解一下之前的高可用架构的样子1、同一个项目部署多台服务器上、通过Nginx反向代理进行转发架构痛点:1、代码拷贝、重复性严重对于用户数据来说、所有业务都使用同一份用户数据、而每个业务都维护了一份用户信息的DAO代码2、复杂...
2020-04-26 11:26:55
174
原创 微服务(四)
微服务(四)目录微服务(四)DubboDubbo是什么Dubbo和Spring cloud 对比DubboDubbo是什么网站应用的架构变化经历了一个从所有服务分布在一台服务器上(All in one 、单一应用架构)到 垂直应用架构 (MVC模式,按照各模块的职能划分)到分布式应用架构(RPC、按照服务不同分布在不同的服务器上)再到面向服务的架构(SOA,增加调度中心,负责集群的调度和...
2020-04-21 18:22:48
229
原创 微服务(三)
微服务(三)目录微服务(三)Spring Cloud Bus 消息总线Rabbit MQSpring Cloud Bus 消息总线在微服务架构系统中,通常会使用轻量级的消息代理来构建一个公用的消息主题 ,让系统中所有微服务实例都连接起来。由于该主题中产生的消息都会被各个监听实例消费,因此称为消息总线。消息总线可用用于配置信息的变更和统一操作管理,它的使用范围很广,也是微服务架构中的必备组件,...
2020-04-20 17:22:31
432
原创 微服务(二)
向大佬们学习的第二天 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
153
原创 微服务(一)
向大佬们学习的第一天 2020.4.15微服务(一)目录微服务(一)微服务架构springCould介绍注册中心:Eureka介绍负载均衡:Ribbon容错保护:Hystrix微服务架构微服务架构微服务架构其实是一种架构风格、将一个单一应用程序分解成一组小型服务的方法,每个小的服务运行在自己的进程中,服务间通信采用轻量级通信机制(http、tcp),这些服务围绕业务能力构建并通...
2020-04-15 20:18:19
225
原创 前端——高级函数、闭包、箭头函数、gengerator
高阶函数 所谓高阶函数就是一个函数可以接收另一个函数作为参数 闭包 所谓闭包就是一个函数作为结果值返回 箭头函数 Arrow Function x => x * x 上面的箭头函数相当于: function (x) { return x * x;} 箭头函数相当于匿名函数,并且简化了函数定义。箭头函数有两种格式,一种像上面的,...
2020-04-15 17:59:20
133
原创 Django之视图层view layer总结
视图层view layer前言:视图层是Django处理请求的核心代码层,算是起到一个承上启下衔接作用吧它对外部接收用户请求,对内部调用模型层和模板层,牵连着数据库和前端页面,最后根据业务逻辑,将处理好的数据与前端页面结合并返回给用户。视图层是真正的后端,是我们的主营业务...
2020-04-15 17:58:49
348
原创 前端——Ajax请求和View渲染
如果前台是用ModelAndView进行数据渲染的话,返回值是一个页面路径如果使用Ajax请求进行数据请求的话会有返回值,但是不能对页面进行渲染
2020-04-15 17:57:50
135
原创 前端——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
125
原创 前端——函数定义和调用 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
385
原创 前端——数组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
185
原创 前端——面向对象编程
原型链:JavaScript的面向对象编程和大多数其他语言如Java、C#的面向对象编程都不太一样。如果你熟悉Java或C#,很好,你一定明白面向对象的两个基本概念: 类:类是对象的类型模板,例如,定义Student类来表示学生,类本身是一种类型,Student表示学生类型,但不表示任何具体的某个学生; 实例:实例是根据类创建的对象,例如,根据Student类可以创建出xiao...
2020-04-15 17:57:07
246
原创 前端——变量作用域和this方法
在JavaScript中,用var申明的变量实际上是有作用域的。如果一个变量在函数体内部申明,则该变量的作用域为整个函数体,在函数体外不可引用该变量如果两个不同的函数各自申明了同一个变量,那么该变量只在各自的函数体内起作用。换句话说,不同函数内部的同名变量互相独立,互不影响由于JavaScript的函数可以嵌套,此时,内部函数可以访问外部函数定义的变量,反过来则不行JavaScri...
2020-04-15 17:56:57
148
原创 前端——常见错误问题
SyntaxError 语法错误 ReferenceError引用错误,在作用域中找不到 TypeError是在作用域中找到了但是 做了它不可能做的事情 在JavaScript的世界里,一切都是对象 ''和`` 单引号和反撇号: 反撇号是EC6新增的模板字符串,它对里面的内容空格、回车不进行转义,变量的话用${}进行转义 DOM对象和jQuery对象...
2020-04-15 17:56:44
109
原创 前端——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
87
原创 Spring AOP
前言:这篇博客是我从网上看到copy过来的Spring系列之AOP实现的两种方式AOP常用的实现方式有两种,一种是采用声明的方式来实现(基于XML),一种是采用注解的方式来实现(基于AspectJ)。首先复习下AOP中一些比较重要的概念:Joinpoint(连接点):程序执行时的某个特定的点,在Spring中就是某一个方法的执行 。Pointcut(切点):说的通俗点,spr...
2019-04-11 19:28:16
97
转载 作为程序员应该做到的八件事
1. 不要吝啬投资自己和朋友一起搓一顿大概人均几十或者百把块钱,基本上我们都很随意,根本不会觉得这很贵或者很浪费。但是每当我们去买书或者去买一些优质的视频教程的时候,很多人会觉得很贵,甚至不太愿意出这个钱。的确,技术书籍都很贵,动不动就50-100的,我想说的是什么呢?永远不要吝啬给自己投资,我研究生读的是通信专业,在学校自学的Java,我看过网上很多的免费视频教程,免费的教程...
2019-03-15 21:14:45
228
转载 Java线程——线程池使用介绍
参考文章:线程池:https://www.jianshu.com/p/210eab345423Java并发编程——线程池:https://www.cnblogs.com/dolphin0520/p/3932921.html示例:package com.xzf.threadpool;import java.util.concurrent.ArrayBlockingQueu...
2019-03-15 21:14:15
131
原创 前端页面在线预览PDF 之 pdf.js
首先发一下,我学习的:参考资料对于没有接触过在线预览pdf的码友可能会感到陌生,了解之后觉得挺简单的。1、先在网上下载pdf.js,也可以直接网盘下载build.zip2、打开\build\generic\web下面的viewer.js文件,修改:varDEFAULT_URL='compressed.tracemonkey-pldi-09.pdf';改成varDEFA...
2018-10-22 17:03:11
5419
1
转载 Java线程——面试题 Top 50
不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题。Java语言一个重要的特点就是内置了对并发的支持,让Java大受企业和程序员的欢迎。大多数待遇丰厚的Java开发职位都要求开发者精通多线程技术并且有丰富的Java程序开发、调试、优化经验,所以线程相关的问题在面试中经常会被提到。在典型的Java面试中, 面试官会从线程的基本概念问起, 如:为什么你需要使用线程, 如何创建线程,用什么...
2018-08-07 17:36:09
187
原创 Java线程——Callable与Runnable的区别
Runnable其中Runnable应该是我们最熟悉的接口,它只有一个run()函数,用于将耗时操作写在其中,该函数没有返回值。然后使用某个线程去执行该runnable即可实现多线程,Thread类在调用start()函数后就是执行的是Runnable的run()函数。Runnable的声明如下 : public interface Runnable { /* * @s...
2018-08-06 18:13:35
22036
转载 Java线程——run()与start()的区别
转自:https://blog.csdn.net/xuxurui007/article/details/7685076(写的太好了)java的线程是通过java.lang.Thread类来实现的。VM启动时会有一个由主方法所定义的线程。可以通过创建Thread的实例来创建新的线程。每个线程都是通过某个特定Thread对象所对应的方法run()来完成其操作的,方法run()称为线程体。通过调用T...
2018-08-06 09:53:40
320
转载 Java线程——线程控制基本方法
线程操作基本方法isAlive() 判断线程是否还未终止 getPriority() 获取线程的优先级数值,返回值 setPriority() 设置线程的优先级 Thread.sleep() 将当前线程睡眠指定毫秒数 join()调用某线程的该方法,将当前线程与该线程“合并”,等待该线程结束,再恢复当前线程的运行yield()让出cpu,当前线程进入就绪队列等待调度wai...
2018-08-03 17:54:29
1483
原创 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
300
原创 DWR——我的职业生涯故事线
深吸一口气,闷了这杯水,我来记录一下六个月来与DWR的恩恩怨怨!2018.3 来到一个新公司(缺人),当时给我一个消息发送的模块让我做(我还处在刚刚看完java基础),让我用DWR做消息发送2018.5 在这两个月期间,断断续续的在看网上的各种博客,论坛。这里吐槽一下自己查资料的水平(已经对各种转发的技术博客无感,再也不会一股脑儿的上去就看它怎么写了。真的是既浪费时间又什么帮助都...
2018-08-01 19:59:26
273
原创 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
135
原创 数据库优化
建立索引 B-Tree索引,哈希表索引,索引是一种数据结构, B-Tree它们是时候复杂度低,查找,删除,插入操作都可以,B-Tree中的数据是有序的 哈希表是将索引列的值作为索引的键值,和键值对应实际的值是指向该表中相应行的指针如何在使用SQL创建索引: CREATE INDEX name_indexON Employee (Employee_Name) ...
2018-07-20 16:00:45
163
转载 Java数据结构
java.util包中三个重要的接口及特点:List(列表)、Set(集合,集合中元素唯一)、Map(key-value,key唯一)。不同类的实现各有差异:是否同步,线程安全,是否有序常用类继承树 Collection(所有集合类的接口)List、Set方法都继承自Collection接口Collections(操作集合的工具类)它提供了许多方便的方法,包括求两个集...
2018-07-20 13:47:17
145
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人