java
奔跑的小车车
这个作者很懒,什么都没留下…
展开
-
WEB-INFO和META-INFO作用说明
/WEB-INF/web.xmlWeb应用程序配置文件,描述了 servlet 和其他的应用组件配置及命名规则。 /WEB-INF/classes/包含了站点所有用的 class 文件,包括 servlet class 和非servlet class,他们不能包含在 .jar文件中。 /WEB-INF/lib/存放web应用需要的各种JAR文件,放置仅在这个应用中要转载 2016-01-17 20:19:59 · 1428 阅读 · 0 评论 -
高并发系列(三)--线程安全性详解(原子性)
一、概念1.定义:当多个线程访问某个类时,不管运行时环境采用何种调度方式或者这些进程将如何交替执行,并且在主调代码中不需要任何额外的同步或协同,这个类都能表现出正确的行为,那么就称这个类是线程安全的。2.线程安全性:原子性:提供了互斥访问,同一时刻只能有一个线程来对它进行操作。 可见性:一个线程对主内存的修改可以及时的被其他线程观察到。 有序...原创 2019-07-13 15:40:16 · 733 阅读 · 0 评论 -
设计模式系列(五)--单例模式详解,面试只要看这一篇文章就够了!
01、概念一、概念1.定义:保证一个类仅有一个实例,并提供一个全局访问点。2.类型:创建型。3.适用场景:想确保任何情况下都绝对只有一个实例。4.优点:a.在内存里只有一个实例,减少了内存开销;b.可以避免对资源的多重占用;c.设置全局访问点,严格控制访问。5.重点:a.私有改造器;b.线程安全;c.延迟加载;d.序列化和反序列化安全...原创 2019-06-26 20:12:37 · 218 阅读 · 0 评论 -
线上问题处理干货(系列二)--如何分析docker Java项目内存泄露和溢出等问题?
01、线上JVM调优1.主要参数#JVM x参数#非标准化参数-Xint: 解释执行-Xcomp:第一次使用就编译成本地代码-Xmixed:混合模式,JVM自己来决定是否编译成本代码#XX参数分类格式:-XX:[+-]<name>表示启用或者禁用name属性比如: -XX:+UseConcMarkSweepGC -XX:UseG1GC非Boolean类型格...原创 2019-05-25 18:57:15 · 7905 阅读 · 0 评论 -
Maven工具系列(三)--详解Maven原理,只要一篇就够了!
01.Maven核心概念1.项目对象模型说明:maven根据pom.xml文件,把它转化成项目对象模型(POM),这个时候要解析依赖关系,然后去相对应的maven库中查找到依赖的jar包。在clean,compile,test,package等阶段都有相应的Plug-in来做这些事情。而这些plug-in会产生一些中间产物。2....原创 2019-04-21 00:06:31 · 603 阅读 · 0 评论 -
kafka优化(系列四):kafka配置优化和kafka批量消费,提高分区数量
往期精选 第一篇我们讲到了docker的单机搭建。 第二篇我们讲到了与springboot的整合。 第三篇我们讲到了kafka的原理。 这一篇我们将叙述,我是怎么在项目中进行对kafka优化的我们将从三方面进行考虑,一是代码;二是配置;三是集群。项目背景,做数据迁移工作后面我将写几篇文章讲诉我们是怎么对百万数据进行迁移的工作)。主要场景利用kafka做...原创 2019-04-02 21:02:27 · 22872 阅读 · 3 评论 -
Redis(五)--详解布隆过滤器和缓存穿透解决方案
一、使用场景1.布隆过滤器的特性是:去重,多数去重场景都跟这个特性有关。比如爬虫的时候去掉相同的URL,推送消息去掉相同的消息等。2.解决缓存击穿的问题。3.反垃圾邮件,从数十亿个垃圾邮件列表中判断某邮箱是否垃圾邮箱(同理,垃圾短信).二、概念其内部维护一个全为0的bit数组,需要说明的是,布隆过滤器有一个误判率的概念,误判率越低,则数组越长,所占空间越大。误判...原创 2019-04-02 20:59:35 · 5341 阅读 · 1 评论 -
Spring注解详解
概述注释配置相对于 XML 配置具有很多的优势:它可以充分利用 Java 的反射机制获取类结构信息,这些信息可以有效减少配置的工作。如使用 JPA 注释配置 ORM 映射时,我们就不需要指定 PO 的属性名、类型等信息,如果关系表字段和 PO 属性名、类型都一致,您甚至无需编写任务属性映射信息——因为这些信息都可以通过 Java 反射机制获取。注释和 Java 代码位于一个文件中,转载 2016-12-04 22:38:06 · 339 阅读 · 0 评论 -
ThreadPoolExecutor线程池源码解读
主要变量:private volatile int corePoolSize;private volatile int maximumPoolSize;private volatile int poolSize;构造函数:也就是创建类的时候,需要注入参数。 public ThreadPoolExecutor(int corePoolSize,原创 2016-07-02 23:59:25 · 551 阅读 · 0 评论 -
StringUtils源码
根据源码来,可以自己自定义工具类,学习源码的最大的好处。/* * Copyright 2002-2012 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in com转载 2016-07-10 13:47:55 · 1547 阅读 · 0 评论 -
开源协议
BSD开源协议(original BSD license、FreeBSD license、Original BSD license)BSD开源协议是一个给于使用者很大自由的协议。基本上使用者可以”为所欲为”,可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。但”为所欲为”的前提当你发布使用了BSD协议的代码,或则以BSD协议代码为基础做二次开发转载 2016-01-31 22:03:34 · 244 阅读 · 0 评论 -
Effective Java 读书笔记或学习笔记
本文主要截图或者代码来自EffectIve Java,所有归属该书作者。1.泛型的优化请不要在新的代码中使用原生态类型。如果使用原生态类型,就失掉了泛型在安全性和表达性方面的所有优势。一般使用在集合、类(DAO)、方法上。2.消除非受检警告Set exaltation = new HashSet();会出现警告----->解决Set exaltation原创 2016-01-14 09:43:51 · 303 阅读 · 0 评论 -
JAVA移位运算符
注:本篇文章转自iteye的loving863博客,所有权属于该作者。移位运算符就是在二进制的基础上对数字进行平移。按照平移的方向和填充数字的规则分为三种:>(带符号右移)和>>>(无符号右移)。 在移位运算时,byte、short和char类型移位后的结果会变成int类型,对于byte、short、char和int进行移位时,规定实际移动的次数是移动次数和32的余数,也就是移位33转载 2016-01-29 22:43:52 · 1065 阅读 · 0 评论 -
高并发系列(九)--线程池详解和参数设置(绝对干活)
一、点题这篇将介绍线程池的使用,我们时常就有一个这样的疑问,为什么要使用线程池?不是有更简单的方式创建和开启线程?还有怎么使用线程池?线程池怎么与Springboot整合,意思就是怎么使用使用springBoot机制管理?带着这些疑问开启这篇文章之旅。本篇的文章主要内容:1.概念。2.线程池。3.线程池配置。4.Springb...原创 2019-07-21 15:48:41 · 2240 阅读 · 2 评论