![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
实用技术
文章平均质量分 78
三思_1234
这个作者很懒,什么都没留下…
展开
-
Java web相关 -- SESSION相关
一个常见的误解是以为session在有客户端访问时就被创建,然而事实是直到某server端程序调用 HttpServletRequest.getSession(true)这样的语句时才被创建,注意如果JSP没有显示的使用 <% @page session=”false”%> 关闭session,则JSP文件在编译成Servlet时将会自动加上这样一条语句 HttpSession ses...转载 2018-02-26 16:53:23 · 240 阅读 · 0 评论 -
HashMap源码解读
HashMap是基于以Hash算法计算Key的hash值并提供K-V类型存储的Map非同步实现类,由于是非同步实现,所以是线程不安全的,但是HashMap支持key值和value值的null的插入。先看一下HashMap提供的构造方法:/** * Constructs an empty <tt>HashMap</tt> with the specified ini...原创 2018-04-12 19:36:48 · 130 阅读 · 0 评论 -
数据库优化
索引: 1.如何建立索引 CREATE UNIQUE INDEX 索引名称 ON 表名称 (列名称) 2.为什么索引可以优化查询 索引的功能主要就是根据建立了索引的那列,对数据进行规则化排列,等下次按照索引条件查询时,可以按照索引类型快速定位数据,不需要像没建立索引时,全表扫描。 索引的规则与索引引擎有关,mysql支持多个索引引擎,如BTre...原创 2018-04-19 11:10:54 · 206 阅读 · 0 评论 -
jvm内存分区和GC机制详解:一
按照对象的生存与回收进行划分: 首先明确,这一部分都是在jvm的堆上进行操作的,jvm对所有的线程提供同一个堆供其进行操作,而为每一个线程单独分配一个栈供其使用。 所以堆内存中所有的数据是线程们都可以进行操作的,而且也因为jvm只提供了一个堆内存,才有了jvm独特的GC机制和堆内存的划分。(图来自 https://www.cnblogs.com/ygj0930/p/6522828.ht...原创 2018-04-27 18:14:45 · 1661 阅读 · 0 评论 -
JAX-RS规范-常用注解浅析
一、@Path 若希望一个Java类能够处理REST请求,则这个类必须至少添加一个@Path("/")的annotation; 对于方法,这个annotation是可选的,如果不添加,则继承类的定义。(1)@Path里的值可以是一个复杂的表达式,例如@Path("{id}") ,其中 {id}表达式代码了一个模板参数; 一个模板参数是一个定义在@Path里的通配符,它以 { 开...转载 2018-05-22 10:37:01 · 1306 阅读 · 0 评论 -
Quartz入门 : 一
引入xml文件: <!-- quartz --> <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <...原创 2018-05-23 14:40:43 · 277 阅读 · 0 评论 -
短链接实现方法
短链接只有十几位,有时候却可以代替几十位上百位字母的url进行使用,之前一直没注意,今天想起来研究一下。略微搜索资料,发现短链接并不是包含了原来几十位上百位的url的全部信息,而是短链指向一个跟你原链接可能完全不同的IP,短链中携带的参数经这个IP的服务解析后,或是还原,或者根据key找value,得到短链所代表的原链接,再发送301重定向请求,指向你所想请求的正式地址。例如: www.t.cn...原创 2018-07-09 17:13:15 · 3186 阅读 · 1 评论 -
Dubbo实现原理简单分析
文章转自地址:阿里巴巴Dubbo实现的源码分析Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。 其核心部分包含:远程通讯: 提供对多种基于长连接的NIO框架抽象封装,包括多种线程模型,序列化,以及“请求-响应”模式的信息交换方式。 集群容错: 提供基于接口方法的透明远程过程调用,包括多协议支持,以及软负载均衡,失败容错,地址路由,...转载 2019-04-10 11:22:23 · 256 阅读 · 0 评论 -
zookeeper的zoo_sample.cfg配置文件配置说明
# The number of milliseconds of each tick#单位为毫秒,zookeeper每到tickTime会向注册的服务器和slave发送一次心跳检测,也是zookeeper配置中的最小时间单位,其他配置会引用此配置tickTime=2000# The number of ticks that the initialsynchronization p...原创 2019-04-09 11:21:41 · 1367 阅读 · 1 评论 -
Mybatis动态代理源码解读一
Mybatis的使用只需要创建一个DAO层接口,配合相应Mapper.xml的sql文件以及配置即可使用。那么到底是什么力量让没有手动实现的接口完成了对数据库的链接、查询、数据组装等工作了,这篇文章主要就是沿着Mybatis的源码分析一下这个问题。从Mybatis的入门开始,最简单Mybatis初始化代码需要一个mybatis-config.xml的配置文件来构建一个叫做SqlSessionFac...原创 2018-04-18 00:06:54 · 3228 阅读 · 0 评论 -
SQL的各种join整理
语句运行数据库为mysql。1. join(inner join) 内链接 效果:仅在链接主表与内链接对象存在至少一个匹配时才返回数据库记录。 sql: select * from card INNER JOIN cardtask on card.taskid = cardtask.id; 结果:上述sql只查出了card表中两条有cardtask对应的记录。2. lef...原创 2018-03-29 15:54:17 · 609 阅读 · 0 评论 -
Java web相关 -- Cookie相关
Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。 Web应用程序是使用HTTP协议传输数据的。HTTP协议是无状态的协议。一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接。这就意味着服务器无法从连接上跟踪会话。 即用户A购买了一件商品放入购物车内,当再次购买商品时服务器已经无法判断该购买行为是属于用户A的会话还是用户B的...转载 2018-02-26 17:25:49 · 155 阅读 · 0 评论 -
个人电脑创建mysql数据库
自己打算做点东西不能用公司的数据库,于是在个人机上装了个mysql数据库。准备: 1.mysql5.0安装包,来自公司文件服务器 2.电脑一台,来自淘宝安装步骤截图: 注意这里的安装位置,Typical模式无法更换安装位置。 然后可能会有权限申请弹出,注意申请者是否为Mysql程序,点击允许 配置向导过程截图(重要): 有些机器可能...原创 2018-03-01 13:27:09 · 15682 阅读 · 2 评论 -
LRU原理和Redis实现——一个今日头条的面试题
转载自知乎:https://zhuanlan.zhihu.com/p/34133067很久前参加过今日头条的面试,遇到一个题,目前半部分是如何实现 LRU,后半部分是 Redis 中如何实现 LRU。我的第一反应是操作系统课程里学过,应该是内存不够的场景下,淘汰旧内容的策略。LRU ... Least Recent Used,淘汰掉最不经常使用的。可以稍微多补充两句,因为计算机体系结构中,最大的最...转载 2018-03-13 11:49:55 · 6093 阅读 · 2 评论 -
ThreadLocal记录
写一点ThreadLocal的学习记录。没有在生产工作中使用过ThreadLocal,所以对ThreadLocal的概念比较模糊。简单记录一下想法,以后再做论证。1.ThreadLocal线程安全,线程安全的原因与同步方法或变量的原因不同,是因为ThreadLocal为每一条线程单独维护数据,数据在线程之间不共享,自然解决了多线程数据安全的问题。2.ThreadLocal为每条线程单独维护数据,是...原创 2018-03-29 18:51:56 · 193 阅读 · 0 评论 -
redis持久化
转载自:https://blog.csdn.net/wzqzhq/article/details/64920996 概述Redis的强大性能很大程度上都是因为所有数据都是存储在内存中的,然而当Redis重启后,所有存储在内存中的数据将会丢失,在很多情况下是无法容忍这样的事情的。所以,我们需要将内存中的数据持久化!典型的需要持久化数据的场景如下:将Redis作为数据库使用; 将Re...转载 2018-09-25 14:22:58 · 137 阅读 · 0 评论 -
多线程的一些问题和回答
已知线程有五大状态 (图来自:https://blog.csdn.net/u012403290/article/details/64910926?locationNum=11&fps=1)新建状态:新建线程对象,并没有调用start()方法之前就绪状态:调用start()方法之后线程就进入就绪状态,但是并不是说只要调用start()方法线程就马上变为当前线程,在变为当前线程之前都是为就绪状...原创 2018-04-09 19:49:59 · 776 阅读 · 1 评论 -
ThreadPoolExecutor的源码解读
public class ThreadPoolExecutor extends AbstractExecutorService ThreadPoolExecutor 继承了ExecutorService接口的抽象实现类AbstractExecutorService,提供了四个构造方法供编码者使用:前面三个方法都是给定默认参数替代没有传递的参数然后this调用最后一个满参数的构造函数,源代码如...原创 2018-04-11 17:38:02 · 354 阅读 · 0 评论 -
sleep和wait的区别,以及源码解读
首先要明确,wait是Object类的方法,也就是说,所有的对象都有wait方法,而且都是Object中的wait方法因为wait方法被标为final无法被重写,源码如下:[java] view plain copypublic final native void wait(long timeout) throws InterruptedException; native关键字修饰,表示...原创 2018-04-11 17:38:22 · 2381 阅读 · 0 评论