- 博客(40)
- 收藏
- 关注
原创 idea 快捷键
两下Shift 搜索Ctrl+Alt+L 格式化代码Ctrl+Alt+V 返回值补全Alt+Enter 导入包 快速创建方法Ctrl+N 按类名搜索Alt+Home 上一步Alt+Insert 生成get set 方法ctr+shift+u 变大写ctr+shift+r 全局搜索F8: 会继续执行下...
2018-08-08 14:44:29 106
原创 用注解代替if-else
策略模式用策略模式代替If-else,主要是定义统一行为(接口或抽象类),并实现不同策略下的处理逻辑(对应实现类)。客户端使用时自己选择相应的处理类。以订单为基础类@Datapublic class Order { private String source; private String payMethod; private String code; private BigDecimal amount; public Order(Strin...
2020-11-25 10:53:08 229
转载 dubbo负载均衡策略解析
dubbo负载均衡策略前言:在上一篇博客中,介绍了zookeeper作为dubbo的注册中心是如何工作的,有一个很重要的点,我们的程序是分布式应用,服务部署在几个节点(服务器)上,当消费者调用服务时,zk返回给dubbo的是一个节点列表,但是dubbo只会选择一台服务器,那么它究竟会选择哪一台呢?这就是dubbo的负载均衡策略了,本篇博客就来聚焦dubbo的负载均衡策略。本篇博客的目录一:负载均衡介绍1.1:负载均衡简介以下是wikipedia对负载均衡的定义: 负载均衡改善...
2020-11-18 17:41:41 746
转载 面试转载
面试题:HashMap底层实现原理,红黑树,B+树,B树的结构原理,volatile关键字,CAS(比较与交换)实现原理答案:https://blog.csdn.net/java_wxid/article/details/106896221Spring的AOP和IOC是什么?使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别答案:https://blog.csdn.net/java_wxid/article/details/106900285Spring和SpringMVC,M
2020-06-29 10:04:40 160
原创 索引数据结构
二叉树:有序排序,依左则最小原则缺点:树结构又长又窄,io读取慢,查询慢AVL Tree: 最大值与最小值是叶子节点,子节点依照左子节点小于子节点,右子节点大于子节点,数据存储随时不变加入新值的同时结构不断的在调整重组50, 100 , 80, 60, 70红黑树:与AVL Tree差不多,就是红黑在不断变化56,50,12,80,40,30,90,70,60,10,...
2019-05-07 10:33:46 804
原创 mysql存储引擎,数据结构,索引
mysql存储引擎分为两种,innodb和myisammyisam不支持事务,支持表级锁; innodb支持行级锁。数据结束采用的是B+Tree,所有的叶子节点都在同一层,采用聚集索引,索引和数据存在一起,叶子节点直接存储数据。https://www.cs.usfca.edu/~galles/visualization/Algorithms.htmlinnod...
2019-05-07 09:38:27 404
原创 springboot集成webservice,基于用户名,密码
我用的springboot版本的是2.1.3pom.xml<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version...
2019-04-16 14:02:06 4637 2
原创 DelayQueue的使用
DelayQueue:一个使用优先级队列实现的无界阻塞队列。支持延时获取的元素的阻塞队列,元素必须要实现Delayed接口。适用场景:实现自己的缓存系统,订单到期,限时支付等等。 方法 抛出异常 返回值 一直阻塞 超时退出 插入方法 add ...
2019-03-27 17:40:57 3621 2
原创 自定义实现线程池
大家都知道在多线程环境下采用线程池技术,可以降低资源的损耗,那这线程池工作机制是什么?我们可以根据自己想像的定义一个线程池,这里的缺陷是什么一 ,自定义线程池工具类,需要借助队列来实现1.首先线程池中线程个数,有默认线程数2.工作线程组,线程池启动时有默认线程数的线程运行(从阻塞队列中获取去线程并运行)3.线程任务,用户需要执行的线程任务4.BlockingQueue阻塞队列...
2019-03-27 15:39:44 6382 4
原创 CompletionService优于ExecutorService
当使用ExecutrorService返回多个Futrue时,需要获取时futrue中的多个返回值,我们一般把它放在队列中去,假如先放入的线程并没执行完,后放入的线程执行完了,我们还需要等待前一个线程执行完才可以获取返回的值,为什么我们不能哪个线程先执行完就先获取哪个线程返回的值呢?CompletionService就实现下面我们可以用队列和CompletionService来对比一下p...
2019-03-27 15:17:48 197
转载 redis事务
转自:https://www.cnblogs.com/Jason-Xiang/p/5364252.htmlRedis事务 Redis中的事务(transaction)是一组命令的集合。事务同命令一样都是Redis最小的执行单位,一个事务中的命令要么都执行,要么都不执行。Redis事务的实现需要用到MULTI和EXEC两个命令,事务开始的时候先向Redis服务器发送MULTI命...
2019-03-19 19:21:48 115
转载 rabbitmq生产配置时,exchange时的三种方式
(点对点)direct:将消息中routingkey与exchange关联的所有Bingding中的Bingkey完全比较(一对多)fanout:将会把消息发送给所有与Exchange 定义的所有Bingding的queue队列中去(订阅)topic:将RoutingKey与BingdingKey进行匹配,如果匹配成功就发送到相应的队列中去 ...
2018-09-03 15:10:12 2413
转载 【RabbitMQ】三种类型交换器 Fanout,Direct,Topic
总结:fanout 不匹配路由键, 只要消息被发送到交换机上,那么绑定这个交换机上的所有的队列都有收到消息, 也就是说所有交换机上所有的队列都会存储消息。 官方说明:不处理路由键。你只需要简单的将队列绑定到交换机上。一个发送到交换机的消息都会被转发到与该交换机绑定的所有队列上。很像子网广播,每台子网内的主机都获得了一份复制的消息。Fanout交换机转发消息是最快的。 ...
2018-09-03 15:09:06 534
原创 java 反射机制
在运行状态中,对于任何一个类,都能知道它的所有属性和方法;对于任何一个对象,都能调用它的方法和属性。那么对于这个类,我们要获取到它的字节码对象。例如我们在new Student时,jvm会在本地磁盘Student.class,并开辟一块Student的内存空间,同时还会创建一个Student的对象(一个类只会产生一个对象)反射的本质:就是得到class对象后,反向获取Student对象的各...
2018-09-03 15:08:55 101
转载 创建线程的几种方式
Executor:是Java线程池的超级接口;提供一个execute(Runnable command)方法;我们一般用它的继承接口ExecutorService。Executors:是java.util.concurrent包下的一个类,提供了若干个静态方法,用于生成不同类型的线程池。Executors一共可以创建下面这四类线程池:newFixedThreadPool创建一个可缓存线程池...
2018-09-03 15:08:34 159
转载 微服务心得
微服务之间的调用可以通过两种方式,一个是RestTemplate,另一个是Feign。相对应,在这两种调用方式下,都有Hystrix调用方法。微信公众号 支付
2018-09-03 15:08:21 501
原创 每天心得
关于微信支付,通过商品名称,商户编码,金额生成订单,在本地服务器生成订单,成功后然后跳转订单支付页面,WX_URL="https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=snsapi_base&...
2018-09-03 15:08:06 793
原创 关于ztree
1、为啥点击“+”展开父节点没有通过URL调到后台? 具体我也没搞清楚,估计是zTree内部机制的原因,我试了N次都没搞定,后来无意中在后台Java代码中将返回结果的map中多加了一个isParent属性,即设置是否是父节点:map.put(“isParent”:”true”);//或false ...
2018-09-03 15:07:09 160
原创 类的加载顺序
public class TestStatic { Person person = new Person("Test"); static{ System.out.println("test static"); } public TestStatic() { System.out.println("test constructor"...
2018-08-30 11:46:28 399
原创 springboot学习心得
1. 修改代码不需要重新部署 spring-boot-devtools <configuration> <fork>true</fork><!-- fork:如果没有该配置,这个devtools不会起作用,即应用不会restart --></configuration> 某些资源在更改时不一定需要触发重新启...
2018-08-29 17:06:07 3030
原创 jvm优化
jvm的组成:1.jvm解释器:即虚拟机处理字段码的cpu2.寄存器:jvm有自己的虚拟寄存器,jvm设置了4种32位寄存器,有指针,计数器,3.指令系统:该系统和计算机类似,一条命令由操作码和操作数组成,操作码为8位二进制,主要为了说明一条指令的功能, 操作数可以由需示来定,jvm有256种指令,目前已使用了160多种操作码4.jvm栈:指令执行时,数据和信息存储的场所和...
2018-08-22 10:25:49 152
原创 集合类与
ArrayList基于数组方式实现,默认构造器调用public ArrayList(int initialCapacity) ,传入的值为10, 实例化一个object数组,总结:无容量的限制,插入元素时会扩容,删除元素时并不减少数组的容量,(如果想减少数组的容量)可以调用ArrayList.trimToSize。线程不安全 LinkedList基于双向链表机制,线...
2018-08-21 15:36:59 136
转载 ThreadLocal
在多个线程访问同一个变量里,该怎么解决,最容易想到是同步,同步是可以做到的,但是涉及到加锁与释放锁以及线程的等待。所以我们可以考虑ThreadLocal工具类,主要用到get, set remove方法为了说明ThreadLocal的应用场景,我们来看一个框架的例子。Spring的事务管理器通过AOP切入业务代码,在进入业务代码前,会根据对应的事务管理器提取出相应的事务对象,假如事务管理...
2018-08-21 14:52:41 113
转载 nginx中的proxy_pass配置详解
在nginx中配置proxy_pass代理转发时,如果在proxy_pass后面的url加/,表示绝对根路径;如果没有/,表示相对路径,把匹配的路径部分也给代理走。 假设下面四种情况分别用 http://192.168.1.1/proxy/test.html 进行访问。 第一种:location /proxy/ { proxy_pass http://12...
2018-08-07 14:42:06 2127
转载 redis 本地连接可以 远程连接不上问题
1.所连主机防火墙关一下.1:查看防火状态 systemctl status firewalld service status iptables 2:暂时关闭防火墙 systemctl stop firewalld service stop iptables 3:永久关闭防火墙 systemctl disable firewalld chkconfig iptables ...
2018-08-02 11:40:20 7105
原创 linux 命令
用了这么等,每次都不记住,还要查百度,这回记得死死的1.查找文件名: find / -name 文件名2.vim 中查找功能: 输入 / 要查找的字符3.redis 密码登录:./reids-cli -h host -p port -a password 部署springboot项目 有时会OOMjava -jar -Xmn64m -Xmx256m -Xms256...
2018-08-02 11:00:00 90
原创 win10 注册ftp服务组件
1.命令符以管理员身份运行2.找到UE图标,打开文件所在位置3.以命令行输入以下命令regsvr32.exe wodFtpDLX.dll。regsvr32.exe wodTelnetDLX.ocx。4.就可以打开ftp链接了...
2018-08-02 10:40:25 582
原创 String StringBuffer StringBuilder区别
String :字符串常量 如果要操作少量的数据用StringBuffer :字符创变量 单线程操作字符串缓冲区 下操作大量数据 (速度快)StringBuilder:字符创变量 多线程操作字符串缓冲区 下操作大量数据 = StringBuffer...
2018-07-31 11:29:15 89
原创 linux环境下安装redis
1.下载路径 /usr/local/src 1.1 下载redis的官方路径 :http://download.redis.io/releases/ 想哪个版本就下哪个版本啊 1.2 解压 tar -zxvf redis-4.0.9.tar.gz 顺便说一下解压吧,查过好几句都记不住 -c 建立压缩档案 -x 解...
2018-07-27 14:45:48 91
原创 启动mysql
启动mysqlsystemctl start mariadb.service开机启动mysqlsystemctl enable mariadb.service
2018-07-13 11:18:53 148
转载 xml转bean
注解介绍 1) @XmlType 2) @XmlElement 3) @XmlRootElement 4) @XmlAttribute 5) @XmlAccessorType 6) @XmlAccessorOrder (不常用) ...
2018-07-11 11:34:34 715
转载 nginx location详解
Location block 的基本语法形式是: location [=|~|~*|^~|@] pattern { ... }[=|~|~*|^~|@] 被称作 location modifier ,这会定义 Nginx 如何去匹配其后的 pattern ,以及该 pattern 的最基本的属性(简单字符串或正则表达式) location modifier1.=Example:server ...
2018-03-13 11:20:00 152
原创 webservice生成客户端代码
C:\Users\l>wsimport -keep -p com.demo.abc -s D:\\gen http://192.168.1.233:10002/interChg/webservice/healthSummary?wsdlparsing WSDL...Generating code...Compiling code...解释说明:-d:生成客户端执行类的class文件的存放目录(默认
2018-01-02 13:50:29 347
原创 手机注册获取验证码
关于验证码的问题一个手机号一天内只能获取5次验证码可以把手机和时间做为key,次数作为值存redis,每次获取从redis中取出次数做比较一个ip一天只能获取5次验证码可以把ip和时间做为key,次数作为值存redis,同上一个图形验证码5分钟失效调用接口给手机号发送完验证码,手机号做为key,验证码作为值存入session,然后定时任务,5分钟后清除session中的ke
2017-12-12 11:04:23 5724 1
转载 jquery validate
//定义中文消息var cnmsg = {required: “必选字段”,remote: “请修正该字段”,email: “请输入正确格式的电子邮件”,url: “请输入合法的网址”,date: “请输入合法的日期”,dateISO: “请输入合法的日期 (ISO).”,number: “请输入合法的数字”,digits: “只能输入整数”,creditc
2017-08-16 11:49:51 176
转载 oom解决问题
Eclipse中启动tomcat报错java.lang.OutOfMemoryError: PermGen space的解决方法更多内存溢出 java tomcat eclipse jvm有的项目引用了太多的jar包,或者反射生成了太多的类,异或有太多的常量池,就有可能会报java.lang.OutOfMemoryError: PermGen space的错
2017-07-25 22:02:59 311
原创 linux下安装redis
下载wget http://download.redis.io/releases/redis-3.0.7.tar.gz解压tar xzf redis-3.0.7.tar.gzcd redis-3.0.7安装makemake allmake install复制(/usr/local/src/redis-3.0.7/redis.conf)到指定目录,方便维护操作(/home/
2017-07-10 11:00:40 185
原创 http调用
在写服务端接口,免不了httpclient调用,首先要了解http协议请求 1.按接口文档要求,如果有认证或授权,需要加请求头信息 ,request.setHeader("auth"); 2.请求类型。 request.setHeader("Content-Type", "application/json;charset=UTF-8"); 具体要看请求传递的数据类型
2017-07-04 16:21:58 2007
原创 spring整合quart
1.pom.xml org.quartz-scheduler quartz ${quartz.version} 2.编写配置文件:spring-quart.xml xmlns:xsi="http://www
2017-06-29 10:51:21 279
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人