- 博客(92)
- 资源 (7)
- 收藏
- 关注
原创 Spring Cloud微服务(一):基础知识
为了更好了理解Spring Cloud,在使用过后总结如下,加深理解在第一节中主要进行一些简单的介绍,对微服务以及Spring Cloud有一些概况性的了解。主要分为以下三部分一 什么是微服务二 如何实现微服务三 Spring Cloud简介 什么是微服务? 简单的说,微服务是一种系统架构的设计风格,核心就是将一个原来独立的系统拆分为多个独立的小型服务...
2018-12-05 22:10:15
345
原创 Java优化之GC
一般我们不必关心Java的垃圾回收问题,JVM会帮我们处理;但是如果对JVM的GC机制不了解,可能会写出很影响性能的代码 在此之前,我们需要了解到JVM垃圾的回收的时候,有可能出现的一种情况:stop-the-world,即JVM判定有大量垃圾需要回收,除了GC线程外,其他线程均处于阻塞状态,知道GC任务完成。所以针对GC的优化工作就是主要是减少stop-the-world触发次数(...
2018-04-17 19:32:44
378
原创 秒杀系统设计思路
秒杀:顾名思义,短时间内有大量的请求到达系统,而库存一般很少。例如:网站低价活动秒杀,12306过年车票,短时间内需要大量读写有限的数据。这就需要在系统的各个层级上面做出改变1.客户端浏览器拦截 一般当网页提交出现卡顿时,用户的下意识是多次点击按钮,这样就平白的多了几倍的无效请求量 方案:使用js控制,点击后就不再发送请求了或点击后按钮置灰(仅仅这一步就可以在秒杀系统中,减少一半以上的...
2018-04-17 18:15:11
515
原创 Java按值传递
感觉网上说的很乱,又说只有按值传递的,还有说引用传递,其实不要纠结于概念,弄清楚原理才不会出错其实无非有三种情况public class Test {private void test(int a){a = 5;System.out.println("test方法中的a="+a);}public static void main(String[] args) {Test t = new...
2018-04-16 22:44:14
249
原创 关于面试手写代码
今天去面试,最后略尴尬,有一个看上去很简单的题,结果却。。。实现一个输入输入字符串,并逆序输出的代码,要求手写看上去是十分简单,脑子一热没多想1.String str = "Hello";2.int size = str.length;3.String reStr = "";4.for(int i = size;i>0;i--){ 5. reStr = Str +str[i];}后来仔...
2018-04-11 20:37:45
6369
1
原创 Mysql优化系统性总结
最近面试被问到sql优化的问题,虽然有准备,但是总感觉回答的不好,不系统。特此总结优化主要涉及一下几个方面1.表结构的设计优化2.索引的使用3.关键字、sql语句优化4.数据库锁定机制我们知道数据库操作,不考虑网络延迟的情况下,90%的时间都用在了I/O上面,减少I/O次数就成了关键另一个比较耗时的是CPU计算(如order by group by distinct 等cpu处理内存中数据的比较...
2018-04-08 15:53:25
237
原创 结合redis实现简单的单点登录
单点登录:在多个系统中,只需要登录一次就可以实现进入关联系统免登陆直接进入核心:cookie-redis缓存模拟cookie-session流程 1.用户首次登录系统A,系统A获取用户cookie相应标识,请求用户中心(一般写在拦截器里面,前置增强)2.用户中心根据标识,在redis中为找到对应的值,表明该用户未在其他关联系统登录,或登录已经过期,响应系统A并使用户跳转登录页面3.用户在登录页面填...
2018-04-04 19:44:36
2033
2
原创 面试总结
又到找工作的季节,因为已经向公司提出了离职,并且项目已经基本完成收尾工作,公司也给了确定的时间。这几天投出去的简历有了回应。 技术面大概问到以下几个方面 1.Spring(重点) 2.SpringMvc 3.SpringBoot 4.Redis(重点) 分布式缓存 5.JVM 6....
2018-04-04 17:59:22
164
原创 MySql数据库索引数据结构简单分析
mysql数据库默认存储引擎InnoDB,是以B+Tree的结构存储数据;而要说清楚缘由,就得先介绍一下Tree这种结构首先是最简单的二叉树我们知道,向二叉树中插入或查找数据时,是以比较节点数据大小来决定存放在哪个子节点的。如下图二叉树具有如下特点:1.左子树节点必小于上一级节点,右子树节点比大于上一级节点2.没有相等的节点则上图从小到大的顺序 2---3---5----6----7----8一般...
2018-04-02 19:51:26
288
原创 乐观锁、悲观锁
锁的机制是为了保证在并发控制时,多个事务对数据库进行操作时,保证数据正确符合预期,保证事务的隔离一致性。乐观并发控制(乐观锁),悲观并发控制(悲观锁)只是一种设计思想,并非某一种工具或数据库的实现,该思想在memcached、redis中也有应用。举一个在开发过程中的例子:老师批改作业编辑评语得分,因为多个老师同时对学生提交的作业列表进行批改,完成后保存。乐观锁:预期老师很少会有批改冲突1.在数据...
2018-03-30 16:56:26
172
原创 finally语句执行
都知道finally 代表必然执行,其实这是不准确的经过多次代码测试,finally 与try 语句配合使用,当语句还没有执行到相应的try语句即返回那么就不会执行finally语句了排除这种情况,较为准确的说法:finally 语句是在ruturn 语句 执行之后,返回之前执行。理解起来费事,上代码public class Test1 { public static void main...
2018-03-29 09:48:10
490
原创 Java I/O操作
Java的I/O操作类主要集中于java.io包下面.主要有四个方面1.基于字节操作的接口:InputStream OutputStream2.基于字符操作的接口:Writer Reader3.基于硬盘操作的接口:File4.基于网络操作的接口:Soket总归是要解决将什么样的数据写到什么地方去的问题一般在大量交互的情况下,I/O是影响速度的瓶颈;其中数据格式和传输方式相关是影响效率最关键的因素...
2018-03-28 15:29:10
166
原创 JavaScript 原型
关键词:原型链 prototype属性打个比方 prototype属性 可以类比Java中的Object基类相似点:都能取得或设置对象的公共属性,方法不同点:prototype 随时更改随时有效对象实例一旦创建就将引用prototype属性中定义的属性和方法,需要共享的放在prototype属性中,不需要共享的放在构造函数中,因此js对象中属性和方法,分两种 1.对象自身的 2 .对象引用的需要...
2018-03-26 22:58:56
202
原创 JavaScript 闭包
说到闭包官方的解释太过于令人费解。本人感觉闭包本质就是能够读取其他函数内部变量的函数。一般情况下我们是不能通过一个函数读取另一个函数内部定义的变量的值。 function f1(){ var n=999; function f2(){ var m = 1 ;alert(n); // 999 } }但是: 如上写法: 函数f2 就可以访问函数f1内部定义的...
2018-03-26 22:14:50
171
原创 hashcode代码的实现分析
写了很久的代码,每个实体一般都要重写equals 和 hashcode 方法,关于为何重写,上一篇已经初步进行了介绍。但是看过源码的人一定会很奇怪,String类的hashcode的实现方法。public int hashCode() { int h = hash; //构造函数字符串hash 默认0 if (h == 0 && value.length >...
2018-03-26 19:08:34
1049
原创 hashcode、equals 作用
Java.lang.Object 有两个重要的放到hashcode和equals其中Object类是Java类集成机制的基础,是所有对象、数组、集合的公共基类。在Object类中,equals方法的定义:public boolean equals(Object obj){ return this == obj;}即是对象引用地址的比较。而通常我们常用的String、包装类、以及自定义的实体都...
2018-03-26 15:28:59
209
原创 用户登录唯一性验证(检查用户登录状态 是否同一浏览器地址登录)
核心是通过 缓存、Cookie以及SpringMVC拦截器 实现登陆时以用户id为key在缓存中保存时间戳 在cookie中以一个全局变量为key保存时间戳 String times = new Date().getTime() + ""; memCache.put(userId + "mem_time_key", times); WebUtils.setCookie(r...
2018-03-22 23:20:42
11798
原创 XMLHttpRequest对象
* 可以设置HTTP请求的时限。 * 可以使用FormData对象管理表单数据。 * 可以上传文件。 * 可以请求不同域名下的数据(跨域请求)。 * 可以获取服务器端的二进制数据。 * 可以获得数据传输的进度信息。vat xhr = new XMlHttpRequest()responseType设为blob,表示服务器传回的是二进制对象如果服务器返回文本数据,这个属性的值是tex...
2018-03-21 16:54:45
213
原创 微信js_sdk开发
jar 下载路径:https://download.youkuaiyun.com/download/xsf1840/10318356最近项目中需要用到手机H5页面中录制 音频 视频 的上传回显功能,在开发中发现ios系统对input标签存在兼容性问题导致在页面直接实现音频录制存在困难,包括网上的插件都是基于js实现,所以也都存在兼容性问题。<!--调用手机的录像功能和直接打开系统文件目录。苹果手机调出来...
2018-03-14 20:00:26
360
原创 HashMap的工作原理
“你用过HashMap吗?” “什么是HashMap?你为什么用到它?”几乎每个人都会回答“是的”,然后回答HashMap的一些特性,譬如HashMap可以接受null键值和值,而Hashtable则不能;HashMap是非synchronized;HashMap很快;以及HashMap储存的是键值对等等。这显示出你已经用过HashMap,而且对它相当的熟悉。“你知道HashMap的工作原理吗?”...
2018-03-10 16:18:54
411
原创 springmvc 接收参数注意事项
今天遇到一个 400 BadRequest 的错误400 很明显就是参数类型不正确,检查了半天都没发现哪里不对完成的时候突然想到 springmvc 接收的参数 都是以字符串的形式接收的恍然大悟,意识到传递的Bean里面包含Date类型的参数,导致类型错误springmvc 传递集合参数时 如果传递的对象只有一个且是空,则会接受失败前后台传值本质是 将数据json字符串化后传
2018-01-30 22:39:20
377
转载 Java OpenSSL生成的RSA公私钥进行数据加解密详细介绍
最近用到企业微信向银行卡转账功能,因为需要使用到:标准RSA算法故在网上了解一下相关的信息SA是什么:RSA公钥加密算法是1977年由Ron Rivest、Adi Shamirh和LenAdleman在(美国麻省理工学院)开发的。RSA取名来自开发他们三者的名字。RSA是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的所有密码攻击,已被ISO推荐为公钥数据加密标准。目前该加密方式广泛用于网...
2018-01-21 17:58:12
819
原创 Vuejs(2)
Vuejs api 就不做介绍了 ,官网写的很好,行云流水现在主要写一下虚拟DOM如现在你需要写一个像下面一样的表格的应用程序,这个表格可以根据不同的字段进行升序或者降序的展示。这个应用程序看起来很简单,你可以想出好几种不同的方式来写。最容易想到的可能是,在你的 JavaScript 代码里面存储这样的数据:var sortKey = "new" // 排序
2018-01-01 22:05:06
294
原创 Vuejs学习(1)
最近打算学习一下Vuejs,由于平时工作中多用jquery/zepo等传统的js库,只得现在网看看Vuejs的实现与jquery对比着学习。它们都是js库,但是思想上有完全不一样1.jQuery首先要获取到dom节点获取Jquery对象,然后对dom对象直接进行进行值的修改等操作,2.Vue是首先把值和js对象进行绑定,然后修改js对象的值,Vue框架就会通过监听自动把dom的值就行更
2017-12-26 22:04:25
245
转载 jQuery会过时吗?
先答题:如果说过时指被需要得少了,那肯定是在过时。但如果同意规范的一部分来自它的思想,那就「孰谓公死,凛凛犹生」。《致敬jQuery》Java语言让我敬重的框架,阙惟Spring;JavaScript语言让我敬重的类库,只有jQuery。Spring的善利万物,jQuery的为道日损,都闪耀着道家清心自退的智慧光芒。取天下常以无事,于是天下莫能与之争。有人疑惑:jQuery
2017-12-16 20:30:03
4423
2
原创 $.Ajax()方法参数详解
最近项目中写了个接口调用方法,结果报错http-415(不支持的媒体类型)检测后发现是ajax提交时,把contentType默认的类型记错了jquery中的ajax方法参数,这里记录一下。 1.url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址。2.type: 要求为String类型的参数,请求方式(post或get)默认为
2017-10-11 10:13:44
248
转载 四种常见的 POST 提交数据方式
HTTP/1.1 协议规定的 HTTP 请求方法有 OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE、CONNECT 这几种。其中 POST 一般用来向服务端提交数据,本文主要讨论 POST 提交数据的几种方式。我们知道,HTTP 协议是以 ASCII 码传输,建立在 TCP/IP 协议之上的应用层规范。规范把 HTTP 请求分为三个部分:状态行、请求头、消息主
2017-10-11 09:55:44
246
原创 跨域CORS
CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing)。它允许浏览器向跨源服务器,发出XMLHttpRequest请求,从而克服了AJAX只能同源使用的限制。CORS需要浏览器和服务器同时支持。目前,所有浏览器都支持该功能,IE浏览器不能低于IE10。整个CORS通信过程,都是浏览器自动完成,不需要用户参与。对
2017-10-09 15:53:30
227
原创 Web页面加载
HTML页面加载和解析流程 :1. 用户输入网址(假设是个html页面,并且是第一次访问),浏览器向服务器发出请求,服务器返回html文件。 2. 浏览器开始载入html代码,发现标签内有一个标签引用外部CSS文件。 3. 浏览器又发出CSS文件的请求,服务器返回这个CSS文件。 4. 浏览器继续载入html中部分的代码,并且CSS文件已经拿到手了,可以开始渲染页面了。 5. 浏览器在代码中发现一
2017-09-30 10:45:53
499
转载 json与jsonp
前言: 说到AJAX就会不可避免的面临两个问题,第一个是AJAX以何种格式来交换数据?第二个是跨域的需求如何解决?这两个问题目前都有不同的解决方案,比如数据可以用自定义字符串或者用XML来描述,跨域可以通过服务器端代理来解决。但到目前为止最被推崇或者说首选的方案还是用JSON来传数据,靠JSONP来跨域。而这就是本文将要讲述的内容。 JSON和JSONP虽然只有一个字母的差别,但其实他们根本不是...
2017-09-28 17:02:11
307
原创 javascript中对象与字符串的转化
因为这涉及到浏览器兼容问题总结一下 JS 中对象与字符串的互相转换 1:jQuery插件支持的转换方式 代码如下: $.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符串转换成json对象 反过来,使用 serialize 系列方法:如:var fields = $("select, :radio").s
2017-09-11 21:44:47
240
转载 Jquery 获取对象的几种方式介绍
JQuery的核心的一些方法 each(callback) '就像循环 $("Element").length; ‘元素的个数,是个属性 $("Element").size(); '也是元素的个数,不过带括号是个方法 $("Element").get(); ‘某个元素在页面中的集合,以数组的形式存储 $("Element").get(index); '功能和上面的相同,inde
2017-09-09 14:04:08
580
原创 JQuery的2种each方法的区别
、在$.each(array, callback)方法中,参数为function(){},一个回调方法,有3种参数形式:function () { ... }function(index) { ... }function (index, item) { ... }index是指array中每一项的顺序索引,从0开始计数。item是array中的每一项。如果未指定item
2017-09-09 13:54:55
322
原创 click、onclick、on事件执行优先级
按照事件冒泡的触发顺序,应该是我的事件先触发结果不是这样的。我发现使用$().click(function(){})绑定的事件,而我使用$("body").on("click","",function(){})绑定的事件。我希望比较一下它们的差别,专门写了一下代码,查看运行结果。 代码如下:12345divid="
2017-08-16 19:52:18
10536
1
原创 Mysql数据库联合索引使用 简介
1.联合索引是个什么东西 我们知道,对于表的单列(如id)数据,是可以建立索引的,对于多列(id和name组合,或者,name和id组合),也可以建立索引。联合索引,也称之为组合索引。 先来看单列索引的逻辑结构。 由此得出索引的三个特征:索引有序...
2017-07-16 13:55:34
2672
原创 SpringMvc @InitBinder 表单多对象精准绑定接收
问题出现要在一张表单中提交多个对象,并且还要在后台Controller 中精准的绑定接收。可是,这些对象中的参数名可能相同,后台接收入参时无法像struts那样jsp表单中使用Object.Param形式对表单进行精准绑定入参,我们都知道struts2默认就是这种方案,这是因为struts2采用了OGNL,并通过栈(根对象)进行操作的,而且栈中默认有action实例,所以很自然的没有这种问题。
2017-06-21 23:04:30
6454
1
转载 Velocity模板引擎基础语法
Velocity语法1. 变量(1) 变量的定义 :#set($name = "hello") 说明:velocity中变量是弱类型的。当使用#set 指令时,括在双引号中的字面字符串将解析和重新解释,如下所示:#set($directoryRoot = "www" )#set($templateName = "index.vm" )#set($t
2017-06-16 17:58:19
547
原创 velocit--静态页面模板
首先需要必备的jar包:web.xml velocity class>org.apache.velocity.tools.view.servlet.VelocityLayoutServletclass> org.apache.velocity.properties /WEB-INF
2017-06-16 17:53:18
328
原创 IEDA 快捷键
ntelliJ Idea 常用快捷键列表【常用快捷键】Ctrl+O,重写方法Ctrl+Alt+L,格式化代码Ctrl+Alt+O,优化导入的类和包 Ctrl +Alt +V,自动填充变量Ctrl+Shift+Space,自动补全代码Ctrl+J,自动代码(例如:serr)Ctrl+Alt+J,用动态模板环绕Ctrl+Alt+Space,类名自动完成Ctrl+
2017-06-14 19:05:27
347
原创 maven仓库
对于maven来说,仓库只分为两类:本地仓库和远程仓库。当maven根据坐标寻找构件的时候,它首先会查看本地仓库,如果本地仓库存在此构件,则直接使用;如果本地仓库不存在此构件,或者需要查看是否有更新的构件版本,maven就会去远程仓库查找,发现需要的构件之后,下载到本地仓库再使用。如果本地仓库和远程仓库都没有需要的构件,maven就会报错。在这个最基本分类的基础上,还有必要介绍一些特殊的远程仓
2017-06-11 21:41:51
272
ffmpeg_sdk jar包
2018-03-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人