- 博客(47)
- 收藏
- 关注
原创 公平锁/非公平锁/可重入锁/递归锁/自旋锁谈谈你的理解?请手写一个自旋锁
1.公平锁和非公平锁是什么?公平锁是指多个线程按照申请锁的顺序来获取锁类似排队打饭 先来后到非公平锁是指在多线程获取锁的顺序并不是按照申请锁的顺序,有可能后申请的线程比先申请的线程优先获取到锁,在高并发的情况下,有可能造成优先级反转或者饥饿现象两者的区别公平锁/非公平锁并发包ReentrantLock的创建可以指定构造函数的boolean类型来得到公平锁或者非公平锁 默认是非...
2019-11-07 10:30:07
614
1
原创 ArrayList是线程不安全,请编写一个不安全的案例并给出解决方案
解决方案1 ContainerNotSafeDemo/** * 集合类不安全的问题 **/public class ContainerNotSafeDemo { /** * 笔记 * 写时复制 copyOnWrite 容器即写时复制的容器 往容器添加元素的时候,不直接往当前容器object[]添加,而 * 是先将当前容器object[]进行 ...
2019-11-07 10:22:33
785
1
原创 原子类AtomicInteger的ABA问题
ABA问题的产生ABA问题的产生:CAS算法实现一个重要前提需要取出内存中某时刻的数据并在当下时刻比较并替换,name在这个时间差类会导致数据的变化。比如说一个线程one充内存位置V中取出A,这时候另一个线程two也从内存中取出A,并且线程two进行了一些操作将值变成了B,然后线程two又将V位置的数据变成A,这时候线程one进行CAS操作发现内存中仍然是A,然后线程one操作成功。...
2019-11-07 10:18:59
829
1
原创 CAS缺点
循环时间长开销很大只能保证一个共享变量的原子性当对一个共享变量执行操作时,我们可以使用循环CAS的方式来保证原子操作,但是对多个共享变量操作时,循环CAS就无法保证操作的原子性,这个时候就可以用锁来保证原子性。引出来ABA问题...
2019-11-06 16:33:15
228
原创 CAS(比较并交换)
案例/** * 1.什么是CAS ? ===> compareAndSet * 比较并交换 **/public class CASDemo { public static void main(String[] args) { AtomicInteger atomicInteger = new AtomicInteger(5); Syst...
2019-11-06 16:29:12
308
原创 JMM
1.可见性通过前面对JMM的介绍,我们知道各个线程对主内存中共享变量的操作都是各个线程各自拷贝到自己的工作内存操作后再写回主内存中的.这就可能存在一个线程AAA修改了共享变量X的值还未写回主内存中时 ,另外一个线程BBB又对内存中的一个共享变量X进行操作,但此时A线程工作内存中的共享比那里X对线程B来说并不不可见.这种工作内存与主内存同步延迟现象就造成了可见性问题.2.原子性numbe...
2019-11-06 15:58:56
662
原创 CountDownLatch/CyclicBarrier/Semaphore
让一些线程阻塞直到另外一些完成后才被唤醒CountDownLatch主要有两个方法,当一个或多个线程调用await方法时,调用线程会被阻塞.其他线程调用countDown方法计数器减1(调用countDown方法时线程不会阻塞),当计数器的值变为0,因调用await方法被阻塞的线程会被唤醒,继续执行public static void main(String[] args) throws In...
2019-10-08 14:18:23
99
原创 在线ShowDoc搭建
ShowDoc是一款在线API文档编写工具,软件采用markdown编辑器,用户可以通过它快速编写出美观的API文档,支持从代码自动生成API,可以进行团队合作、任务分配,简单实用,功能齐全。功能介绍1、分享与导出 响应式网页设计,可将项目文档分享到电脑或移动设备查看。同时也可以将项目导出成word文件,以便离线浏览。2、编辑功能 (1)markdown编辑Sh...
2019-08-12 16:26:49
1298
转载 精通SpringBoot 详解WebMvcConfigurer接口
SpringBoot 确实为我们做了很多事情, 但有时候我们想要自己定义一些Handler,Interceptor,ViewResolver,MessageConverter,该怎么做呢。在Spring Boot 1.5版本都是靠重写WebMvcConfigurerAdapter的方法来添加自定义拦截器,消息转换器等。SpringBoot 2.0 后,该类被标记为@Deprecated。因此我们只...
2019-07-12 16:49:26
481
转载 Nginx配置文件详解
Nginx是一款面向性能设计的HTTP服务器,相较于Apache、lighttpd具有占有内存少,稳定性高等优势。#nginx进程,一般设置为和cpu核数一样worker_processes 4; #错误日志存放目录 error_log /data1/logs/error.log crit; #运行用户,默认即是nginx,可不设置...
2018-08-09 09:25:35
534
原创 Linux 安装Nginx详细教程
进入:/usr/java/nginx位置下载nginx: wget http://nginx.org/download/nginx-1.8.0.tar.gz下载openssl : wget http://www.openssl.org/source/openssl-fips-2.0.9.tar.gz下载zlib : wget http://zlib.net/zlib-1.2.8....
2018-07-10 15:13:36
479
原创 SpringAOP中使用的代理
package com.proxy.cglib;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.context.annotation.EnableA...
2018-05-14 11:50:07
405
转载 ORA-01081: 无法启动已在运行的 ORACLE - 请首先关闭它
SQL> startup nomountORA-01081: 无法启动已在运行的 ORACLE - 请首先关闭它sql>shutdown immediate 关闭再进行sql>startup nomount 重新开启就可以了
2018-05-14 11:16:13
2714
转载 ORA-00600: internal error code, arguments: [kcratr_nab_less_than_odr]问题处理
ORA-00600: internal error code, arguments: [kcratr_nab_less_than_odr]问题处理服务器断电,异常关机后,重启报错ORA-00600: internal error code, arguments: [kcratr_nab_less_than_odr]数据库运行环境是Linux上运行的ORACLE11G--尝试启动数据库实例,报错如下...
2018-05-14 11:14:55
646
转载 oracle11g数据库怎么改编码格式
首先查看oracle数据库的编码:select userenv(‘language’) from dual; SQL> select * from nls_database_parameters where parameter ='NLS_CHARACTERSET';修改字符集编码(这会对数据库的数据有直接的影响,谨慎操作):SQL>conn /as sysdbaSQL>shu...
2018-04-12 17:58:20
2158
原创 微信公众平台开发视频上传
/** * 视频上传 * * @param filePath 文件路径 * @param accessToken accessToken * @return * @throws IOException */ public String upVideo(String filePath, String accessToken, St...
2018-04-12 17:54:14
6196
转载 SpringBoot中Session超时原理说明
一:前言:最近支付后台登录一段时间后如果没有任何操作,总是需要重新登录才可以继续访问页面,出现这个问题的原因就是session超时,debug代码后发现session的超时时间是1800s。也就是说当1800秒内没有任何操作,session就会出现超时现象。那这个超时时间是如何设置的呢?然后该如何重新设置此超时时间呢?系统又如何判断session超时的呢?接下来就一一进行解答。二:系统sessio...
2018-03-08 15:42:25
767
转载 SpringBoot中Session超时原理说明
一:前言:最近支付后台登录一段时间后如果没有任何操作,总是需要重新登录才可以继续访问页面,出现这个问题的原因就是session超时,debug代码后发现session的超时时间是1800s。也就是说当1800秒内没有任何操作,session就会出现超时现象。那这个超时时间是如何设置的呢?然后该如何重新设置此超时时间呢?系统又如何判断session超时的呢?接下来就一一进行解答。二:系统sessio...
2018-03-08 15:41:34
937
原创 Spring注解方式集成Kafka(spring-kafka的使用)
import java.util.HashMap; import java.util.Map; import org.apache.kafka.clients.producer.ProducerConfig; import org.apache.kafka.common.serialization.StringSerializer; import org.springframework...
2018-03-08 15:39:12
2910
原创 js格式化时间的方法
本文为大家分享了javascript时间格式化的方法,分享给大家供大家参考,具体内容如下 可以说是Web项目中不可或缺的一个Javascript类库,它可以帮助你快速的解决客户端编程的许多问题,下面贴出一个用js格式化时间的方法。12345678910111213141516171819Date.prototype.format =function(format){var o = {"M+" : ...
2018-03-01 13:47:14
1628
转载 Java过滤器与SpringMVC拦截器之间的关系与区别
过滤器和拦截器的区别:①拦截器是基于Java的反射机制的,而过滤器是基于函数回调。②拦截器不依赖与servlet容器,过滤器依赖与servlet容器。③拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用。④拦截器可以访问action上下文、值栈里的对象,而过滤器不能访问。⑤在action的生命周期中,拦截器可以多次被调用,而过滤器只能在容器初始化时被调用一次。⑥拦截器可以获取...
2018-03-01 00:38:04
152
原创 Spring面试,IoC和AOP的理解
spring 的优点?1.降低了组件之间的耦合性 ,实现了软件各层之间的解耦 2.可以使用容易提供的众多服务,如事务管理,消息服务等 3.容器提供单例模式支持 4.容器提供了AOP技术,利用它很容易实现如权限拦截,运行期监控等功能 5.容器提供了众多的辅助类,能加快应用的开发 6.spring对于主流的应用框架提供了集成支持,如hibernate,JPA,Struts等 7.spring属于低侵入...
2018-03-01 00:31:59
1032
转载 servlet request getHeader("x-forwarded-for") 获取真实IP
在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了 Apache,Nagix等反向代理软件就不能获取到客户端的真实IP地址了。如果使用了反向代理软件,用 request.getRemoteAddr()方法获取的IP地址是:127.0.0.1或 192.168.1.110,而并不是客户端的真实IP。
2018-02-06 16:30:06
646
原创 java web简单权限管理设计
最近在做一个网站类型项目,主要负责后台,ui框架选型为jquery easy ui,项目架构为spring mvc + spring jdbc,简单易用好上手!搭建好框架后开始了第一个任务,设计并实现一套简单的权限管理功能。一套最基本的权限管理包括用户、角色、资源。数据库设计我的设计如下:用户:user角色:role用户-角色:user_
2017-09-18 14:53:02
594
原创 Array.prototype.slice.call(arguments)
我们知道,Array.prototype.slice.call(arguments)能将具有length属性的对象转成数组,除了IE下的节点集合(因为ie下的dom对象是以com对象的形式实现的,js对象与com对象不能进行转换) 如:var a={length:2,0:'first',1:'second'};Array.prototype.slice.call(a);// ["first",
2017-07-03 13:35:15
206
原创 JavaScript中toStirng()与Object.prototype.toString.call()方法浅谈
一、toString()是一个怎样的方法?它是能将某一个值转化为字符串的方法。然而它是如何将一个值从一种类型转化为字符串类型的呢? 通过下面几个例子,我们便能获得答案: 1.将boolean类型的值转化为string类型:console.log(true.toString());//"true"console.log(false.toString());//"false"2.将string类型
2017-07-02 13:45:22
216
原创 ["1", "2", "3"].map(parseInt) 为何返回[1,NaN,NaN]
JavaScript中的parseInt与map函数都是常用的函数,可是 ["1", "2", "3"].map(parseInt) 为何返回不是[1,2,3]却是[1,NaN,NaN]?这涉及到是否深入理解两个函数的格式与参数含义。首先根据我对两个函数用法的了解,猜测是由于parseInt(string, radix)的参数radix必须介于2~36之间,而且字符串string中的数字不能大于ra
2017-06-23 13:25:51
357
原创 js事件处理程序问题?
js事件处理程序问题?详情请见:JavaScript学习总结(九)事件详解eval是做什么的?它的功能是把对应的字符串解析成JS代码并运行;应该避免使用eval,不安全,非常耗性能(2次,一次解析成js语句,一次执行)。JavaScript原型,原型链 ? 有什么特点?* 原型对象也是普通的对象,是对象一个自带隐式的 __proto__ 属性,原型也有可能有自己的原型,如
2017-06-16 00:40:08
577
原创 javascript对象的几种创建方式
javascript对象的几种创建方式1,工厂模式2,构造函数模式3,原型模式4,混合构造函数和原型模式5,动态原型模式6,寄生构造函数模式7,稳妥构造函数模式javascript继承的6种方法1,原型链继承2,借用构造函数继承3,组合继承(原型+借用构造)4,原型式继承5,寄生式继承6,寄生组合式继承详情:JavaScript继承方式详
2017-06-16 00:39:15
1189
原创 你有哪些性能优化的方法?
你有哪些性能优化的方法? (1) 减少http请求次数:CSS Sprites, JS、CSS源码压缩、图片大小控制合适;网页Gzip,CDN托管,data缓存,图片服务器。 (2) 前端模板 JS+数据,减少由于HTML标签导致的带宽浪费,前端用变量保存AJAX请求结果,每次操作本地变量,不用请求,减少请求次数 (3) 用innerHTML代替DOM操作,减少DOM
2017-06-16 00:38:12
6075
原创 WEB应用从服务器主动推送Data到客户端有那些方式?
WEB应用从服务器主动推送Data到客户端有那些方式?Javascript数据推送Commet:基于HTTP长连接的服务器推送技术基于WebSocket的推送方案SSE(Server-Send Event):服务器推送数据新方式对前端界面工程师这个职位是怎么样理解的?它的前景会怎么样?前端是最贴近用户的程序员,比后端、数据库、产品经理、运营、安全都近。 1、实现界
2017-06-16 00:37:08
8753
原创 其他问题?
其他问题?你遇到过比较难的技术问题是?你是如何解决的?列举IE 与其他浏览器不一样的特性?什么叫优雅降级和渐进增强?优雅降级:Web站点在所有新式浏览器中都能正常工作,如果用户使用的是老式浏览器,则代码会检查以确认它们是否能正常工作。由于IE独特的盒模型布局问题,针对不同版本的IE的hack实践过优雅降级了,为那些无法支持功能的浏览器增加候选方案,使之在旧式浏览器上以某种形式降级体
2017-06-16 00:36:34
292
原创 如何实现浏览器内多个标签页之间的通信?
如何实现浏览器内多个标签页之间的通信?调用localstorge、cookies等本地存储方式线程与进程的区别一个程序至少有一个进程,一个进程至少有一个线程. 线程的划分尺度小于进程,使得多线程程序的并发性高。 另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。 线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入
2017-06-16 00:35:01
5990
原创 html部分
说说你对语义化的理解?1,去掉或者丢失样式的时候能够让页面呈现出清晰的结构2,有利于SEO:和搜索引擎建立良好沟通,有助于爬虫抓取更多的有效信息:爬虫依赖于标签来确定上下文和各个关键字的权重;3,方便其他设备解析(如屏幕阅读器、盲人阅读器、移动设备)以意义的方式来渲染网页;4,便于团队开发和维护,语义化更具可读性,是下一步吧网页的重要动向,遵循W3C标准的团队都遵循这个标准,可以减
2017-06-16 00:33:46
533
原创 CSS 相关问题
display:none和visibility:hidden的区别?display:none 隐藏对应的元素,在文档布局中不再给它分配空间,它各边的元素会合拢,就当他从来不存在。 visibility:hidden 隐藏对应的元素,但是在文档布局中仍保留原来的空间。CSS中link 和@import 的区别是?(1) link属于HTML标签,而@import是CSS提
2017-06-16 00:31:24
305
原创 请你谈谈Cookie的弊端
cookie虽然在持久保存客户端数据提供了方便,分担了服务器存储的负担,但还是有很多局限性的。 第一:每个特定的域名下最多生成20个cookie1.IE6或更低版本最多20个cookie2.IE7和之后的版本最后可以有50个cookie。3.Firefox最多50个cookie4.chrome和Safari没有做硬性限制IE和Opera 会清理近期最少使用的cookie,Fir
2017-06-16 00:29:36
6802
原创 说说你对闭包的理解
使用闭包主要是为了设计私有的方法和变量。闭包的优点是可以避免全局变量的污染,缺点是闭包会常驻内存,会增大内存使用量,使用不当很容易造成内存泄露。闭包有三个特性:1.函数嵌套函数 2.函数内部可以引用外部的参数和变量 3.参数和变量不会被垃圾回收机制回收
2017-06-16 00:24:58
1361
原创 移动web-viewport定义
<meta name="viewport" content="width=device-width, initial-scale=1.0,maximum-scale=1.0,minimum-scale=0">width: 宽度设置的是viewport宽度,可以设置device-width特殊值initial-scale: 初始缩放比,大于0的数字maximum-scale: 最大缩放比,大于0
2017-06-09 14:26:33
340
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人