自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

路漫漫其修远

我有明珠一颗,久被尘劳关锁。今日尘尽光生,照破青山万朵。

  • 博客(38)
  • 收藏
  • 关注

原创 Quartz入门 : 二

1.在创建job实例时,可以对job的jobDataMap中存放数据,供job触发后使用public class JobTest1 implements Job { @Override public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { ...

2019-11-12 11:55:29 198 1

转载 JAVA内存图解

部分转载自:https://blog.csdn.net/hu1991die/article/details/430522811. JAVA内存结构 2. JVM运行时数据区内存结构 ...

2019-11-12 11:54:32 202

原创 HashMap与HashTable的区别

线程安全 HashMap线程不安全而HashTable线程安全 也可以通过以下代码将hashMap转化为线程安全的实现: HashMap test = new HashMap(); Map synchronizedMap = Collections.synchronizedMap(test); ...

2019-04-16 11:41:26 400

转载 Dubbo实现原理简单分析

文章转自地址:阿里巴巴Dubbo实现的源码分析Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。 其核心部分包含:远程通讯: 提供对多种基于长连接的NIO框架抽象封装,包括多种线程模型,序列化,以及“请求-响应”模式的信息交换方式。 集群容错: 提供基于接口方法的透明远程过程调用,包括多协议支持,以及软负载均衡,失败容错,地址路由,...

2019-04-10 11:22:23 246

原创 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 1343 1

转载 redis持久化

转载自:https://blog.csdn.net/wzqzhq/article/details/64920996 概述Redis的强大性能很大程度上都是因为所有数据都是存储在内存中的,然而当Redis重启后,所有存储在内存中的数据将会丢失,在很多情况下是无法容忍这样的事情的。所以,我们需要将内存中的数据持久化!典型的需要持久化数据的场景如下:将Redis作为数据库使用; 将Re...

2018-09-25 14:22:58 107

原创 短链接实现方法

短链接只有十几位,有时候却可以代替几十位上百位字母的url进行使用,之前一直没注意,今天想起来研究一下。略微搜索资料,发现短链接并不是包含了原来几十位上百位的url的全部信息,而是短链指向一个跟你原链接可能完全不同的IP,短链中携带的参数经这个IP的服务解析后,或是还原,或者根据key找value,得到短链所代表的原链接,再发送301重定向请求,指向你所想请求的正式地址。例如:  www.t.cn...

2018-07-09 17:13:15 3130 1

转载 Spring Boot与Spring Cloud是什么关系?

本文转自:https://zhuanlan.zhihu.com/p/38566684SpringBoot先于Spring Cloud问世。SpringBoot相当于脚手架,借助他可以快速搭建房子,它本身不具备任何功能属性,值是普通房间,没有其他任何功能。什么是Spring BootSpring Boot简化了基于Spring的应用开发,通过少量的代码就能创建一个独立的、产品级别的Spring应用。...

2018-07-02 18:08:28 244

原创 Java面试内容整理

只是方向上的整理,不涉及到具体的问题和答案。Java基础:    1.     数据结构:        a)      HashMap        b)      ArrayList和LinkedList        c)       TreeSet    2.     JVM原理:        a)      GC机制        b)      如何调优    3.     多线程:...

2018-05-23 16:38:18 175

原创 Quartz入门 : 一

引入xml文件:        <!-- quartz --> <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> &lt...

2018-05-23 14:40:43 268

原创 JDK8相关:Collection类stream()+filter()+forEach()方法的联合使用

        List<String> strArr = Arrays.asList("1", "2", "3", "4"); strArr.stream().filter(str ->{ return "2".equals(str)?true:false; }).forEach(str ->{

2018-05-22 15:41:18 25928

转载 JAX-RS规范-常用注解浅析

一、@Path  若希望一个Java类能够处理REST请求,则这个类必须至少添加一个@Path("/")的annotation;  对于方法,这个annotation是可选的,如果不添加,则继承类的定义。(1)@Path里的值可以是一个复杂的表达式,例如@Path("{id}") ,其中 {id}表达式代码了一个模板参数;         一个模板参数是一个定义在@Path里的通配符,它以 { 开...

2018-05-22 10:37:01 1270

原创 JDK8特性:lambda表达式简单使用介绍

新公司的代码中很多使用的 -> 这样的写法,看得我一脸懵逼,查了一下才知道这事JDK8提供的新特性,lambda表达式,在一定程度上可以简化某些代码的写法,下面我们就来一起看一下。1.对匿名内部实现的支持:        在java中使用多线程,一般会添加一个java类实现Runable接口或者继承Thread类。也还有一种比较粗暴的方式就是创建匿名内部类,如://标准写法 ...

2018-05-21 17:24:23 453

原创 jvm内存分区和GC机制详解:一

按照对象的生存与回收进行划分:    首先明确,这一部分都是在jvm的堆上进行操作的,jvm对所有的线程提供同一个堆供其进行操作,而为每一个线程单独分配一个栈供其使用。    所以堆内存中所有的数据是线程们都可以进行操作的,而且也因为jvm只提供了一个堆内存,才有了jvm独特的GC机制和堆内存的划分。(图来自 https://www.cnblogs.com/ygj0930/p/6522828.ht...

2018-04-27 18:14:45 1615

原创 数据库优化

索引:    1.如何建立索引        CREATE UNIQUE INDEX 索引名称 ON 表名称 (列名称)    2.为什么索引可以优化查询        索引的功能主要就是根据建立了索引的那列,对数据进行规则化排列,等下次按照索引条件查询时,可以按照索引类型快速定位数据,不需要像没建立索引时,全表扫描。        索引的规则与索引引擎有关,mysql支持多个索引引擎,如BTre...

2018-04-19 11:10:54 193

原创 Mybatis动态代理源码解读一

Mybatis的使用只需要创建一个DAO层接口,配合相应Mapper.xml的sql文件以及配置即可使用。那么到底是什么力量让没有手动实现的接口完成了对数据库的链接、查询、数据组装等工作了,这篇文章主要就是沿着Mybatis的源码分析一下这个问题。从Mybatis的入门开始,最简单Mybatis初始化代码需要一个mybatis-config.xml的配置文件来构建一个叫做SqlSessionFac...

2018-04-18 00:06:54 3215

原创 简单抢购系统设计

面试或者工作中经常能遇到类似于抢购或者是并发争夺默写限量资源的需求,有一些想法但是比较乱,这里刚好整理一下。一个抢购活动主要由这几部分组成        1.页面刷新-刷新时间/可购买数量        2.下单-争夺购买资格        3.支付-更新订单状态页面刷新处理办法:    1.页面静态化    2.反向代理缓存静态页面    3.所需动态参数通过接口获得,不要经过框架渲染    4...

2018-04-16 22:50:08 2142 1

原创 简单的多生产多消费模式代码

资源描述类:/** * 资源描述类 * @author gaojh * */public class Product { List<String> product = null; public Product() { super(); this.product = new ArrayList<>(); } /** * 生产方法 *...

2018-04-16 16:25:25 284

原创 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 119

原创 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 2358

原创 ThreadPoolExecutor的源码解读

public class ThreadPoolExecutor extends AbstractExecutorService    ThreadPoolExecutor 继承了ExecutorService接口的抽象实现类AbstractExecutorService,提供了四个构造方法供编码者使用:前面三个方法都是给定默认参数替代没有传递的参数然后this调用最后一个满参数的构造函数,源代码如...

2018-04-11 17:38:02 333

原创 多线程的一些问题和回答

已知线程有五大状态 (图来自:https://blog.csdn.net/u012403290/article/details/64910926?locationNum=11&fps=1)新建状态:新建线程对象,并没有调用start()方法之前就绪状态:调用start()方法之后线程就进入就绪状态,但是并不是说只要调用start()方法线程就马上变为当前线程,在变为当前线程之前都是为就绪状...

2018-04-09 19:49:59 743 1

原创 ConcurrentHashMap与HashMap的区别,以及怎么简单自己实现ConcurrentHashMap

1.HashMap是线程不安全的,所以效率相对于HashTable较高。HashTable是线程安全的,所以相对于HashMap效率较低。2.ConcurrentHashMap可以看作是HashMap的线程安全版本,但是内部实现机制与HashTable不同。在不同版本的JDK中有不同的实现。3. HashMap的键值对允许有null,但是ConCurrentHashMap都不允许。HashTabl...

2018-04-08 18:57:02 1034

原创 ThreadLocal记录

写一点ThreadLocal的学习记录。没有在生产工作中使用过ThreadLocal,所以对ThreadLocal的概念比较模糊。简单记录一下想法,以后再做论证。1.ThreadLocal线程安全,线程安全的原因与同步方法或变量的原因不同,是因为ThreadLocal为每一条线程单独维护数据,数据在线程之间不共享,自然解决了多线程数据安全的问题。2.ThreadLocal为每条线程单独维护数据,是...

2018-03-29 18:51:56 185

原创 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 589

转载 LRU原理和Redis实现——一个今日头条的面试题

转载自知乎:https://zhuanlan.zhihu.com/p/34133067很久前参加过今日头条的面试,遇到一个题,目前半部分是如何实现 LRU,后半部分是 Redis 中如何实现 LRU。我的第一反应是操作系统课程里学过,应该是内存不够的场景下,淘汰旧内容的策略。LRU ... Least Recent Used,淘汰掉最不经常使用的。可以稍微多补充两句,因为计算机体系结构中,最大的最...

2018-03-13 11:49:55 5978 2

原创 个人电脑创建mysql数据库

自己打算做点东西不能用公司的数据库,于是在个人机上装了个mysql数据库。准备:    1.mysql5.0安装包,来自公司文件服务器   2.电脑一台,来自淘宝安装步骤截图:            注意这里的安装位置,Typical模式无法更换安装位置。    然后可能会有权限申请弹出,注意申请者是否为Mysql程序,点击允许            配置向导过程截图(重要):    有些机器可能...

2018-03-01 13:27:09 15547 2

原创 自定义注解(@interface)学习

  @interface    关键字表示本类为注解类,类结构:            public @interface 自定义注解名 { 自定义注解体 }    注解体中支持的元素类型:    1.所有基本数据类型(int,float,boolean,byte,double,char,long,short)    2.String类型    3.Class类型    4.enum类型    5...

2018-02-28 18:19:04 4717 1

转载 阅读阿里巴巴Java开发手册,截取一些需要注意的地方

原文出自  阿里巴巴Java开发手册,禁止用于商业用途,违者必究【推荐】集合初始化时,指定集合初始值大小。 说明:HashMap 使用 HashMap(int initialCapacity) 初始化, 正例:initialCapacity = (需要存储的元素个数 / 负载因子) + 1。注意负载因子(即loader factor)默认为 0.75,如果暂时无法确定初始值大小,请设置为 16(即...

2018-02-27 16:44:28 257

转载 Java web相关 -- Cookie相关

Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。 Web应用程序是使用HTTP协议传输数据的。HTTP协议是无状态的协议。一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接。这就意味着服务器无法从连接上跟踪会话。 即用户A购买了一件商品放入购物车内,当再次购买商品时服务器已经无法判断该购买行为是属于用户A的会话还是用户B的...

2018-02-26 17:25:49 125

转载 Java web相关 -- SESSION相关

一个常见的误解是以为session在有客户端访问时就被创建,然而事实是直到某server端程序调用 HttpServletRequest.getSession(true)这样的语句时才被创建,注意如果JSP没有显示的使用 <% @page session=”false”%> 关闭session,则JSP文件在编译成Servlet时将会自动加上这样一条语句 HttpSession ses...

2018-02-26 16:53:23 225

转载 JVM什么情况下会触发Full GC(Major GC)

除直接调用System.gc外,触发Full GC执行的情况有如下四种。1. 旧生代空间不足旧生代空间只有在新生代对象转入及创建为大对象、大数组时才会出现不足的现象,当执行Full GC后空间仍然不足,则抛出如下错误:java.lang.OutOfMemoryError: Java heap space 为避免以上两种状况引起的FullGC,调优时应尽量做到让对象在Minor GC阶段被回...

2018-02-26 11:21:37 22162

转载 JVM的GC机制初探

JVM内存管理和JVM垃圾回收JVM内存组成结构JVM内存结构由堆、栈、本地方法栈、方法区等部分组成,结构图如下所示:1)堆所有通过new创建的对象的内存都在堆中分配,其大小可以通过-Xmx和-Xms来控制。堆被划分为新生代和旧生代,新生代又被进一步划分为Eden和Survivor区,最后Survivor由FromSpace和ToSpace组成,结构图如下所示:新生代。新建的对象都是用新生代分配内...

2018-02-26 11:14:58 867

转载 spring完整配置文件(applicationContext.xml)

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xmlns:p="http://www.springframewo

2018-02-24 16:33:59 11756

原创 spring注解整理学习

1. @Component表示是受Spring 管理组件的通用形式,@Component注解可以放在类的头上。 @Component不推荐使用。好像没什么实质性的意义。 2. @Controller对应表现层的Bean,也就是Action。如果@Controller不指定其value="",则默认的bean名字为这个类的类名首字母小写。如果指定@Controller(value="UserActi...

2018-02-24 16:26:46 273

转载 mybatis缓存机制初探

本文转载自凯伦,美团点评后端研发工程师,2016年毕业于上海海事大学,现从事美团点评餐饮平台相关的开发工作。公众号ID: KailunTalk,欢迎关注,一起探讨更多技术知识。前言MyBatis是常见的Java数据库访问层框架。在日常工作中,开发人员多数情况下是使用MyBatis的默认缓存配置,但是MyBatis缓存机制有一些不足之处,在使用中容易引起脏数据,形成一些潜在的隐患。个人在业务开发中也...

2018-02-24 15:59:49 199

转载 mybatis面试题

Mybatis技术内幕系列博客,从原理和源码角度,介绍了其内部实现细节,无论是写的好与不好,我确实是用心写了,由于并不是介绍如何使用Mybatis的文章,所以,一些参数使用细节略掉了,我们的目标是介绍Mybatis的技术架构和重要组成部分,以及基本运行原理。博客写的很辛苦,但是写出来却不一定好看,所谓开始很兴奋,过程很痛苦,结束很遗憾。要求不高,只要读者能从系列博客中,学习到一点其他博客所没有的技...

2018-02-24 15:54:00 154

转载 spring面试题

1.谈谈你对spring IOC和DI的理解,它们有什么区别?IoC Inverse of Control 反转控制的概念,就是将原本在程序中手动创建UserService对象的控制权,交由Spring框架管理,简单说,就是创建UserService对象控制权被反转到了Spring框架DI:Dependency Injection 依赖注入,在Spring框架负责创建Bean对象时,动态的将依赖对...

2018-02-24 15:51:14 322

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除