自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 资源 (1)
  • 收藏
  • 关注

原创 IOC(二). IOC容器初始化过程 -> this.register(annotatedClasses);

二. 注册当前的配置类信息——->this.register(annotatedClasses);就一行代码,通过上面初始化的注解reader注册配置类的bean定义信息。this.reader.register(annotatedClasses);通过遍历所有的配置类,进行注册for(int var4 = 0; var4 < var3; ++var4) { Cl...

2020-03-09 19:56:07 242

原创 IOC(一). IOC容器初始化过程 -> AnnotationConfigApplicationContext.this()方法

一. 初始化两个扫描器,并且价值基础的注解过滤器的BeanPostProcessor的bean定义 --—> this()this.reader = new AnnotatedBeanDefinitionReader(this); 注解读取器,注入了基本的processor Bean定义this.beanNameGenerator = new AnnotationBeanNameGe...

2020-03-09 19:52:58 231

原创 为什么不要用select *

主要从以下几个角度:1. 程序变更问题,出现不可以预知隐患;假设某一天修改了表结构,如果用select *,返回的数据必然会会变化,客户端是否对数据库变化作适配,是否所有地方都做了适配,这都是问题。2. 性能问题a. 使用了select ,必然导致数据库需要先解析代表哪写字段,从数据字段中将*转化为具体的字段含义,存在性能开销;b. 不可能对所有字段建索引,在索引优化必然会有局限性,导致...

2019-06-28 10:25:07 4167 4

原创 synchronize字节码解析

源java文件: public class TestSynchronize { static volatile int b; public static void main(String[] args) { String s = new String("xxx"); int a = 10; ...

2019-06-25 18:01:22 256

原创 java字节码解析学习

java字节码表java源码:public class TestByteCode { public static void test() { int a = 10; int b = 10; int c = (a+b)*10; System.out.println(c); } publ...

2019-06-25 17:33:32 409

转载 【转载】redis.conf文件详解

#redis.confRedis configuration file example../redis-server /path/to/redis.conf################################## INCLUDES ####################################这在你有标准配置模板但是每个redis服务器又需要个性设置的时候很有用。i...

2019-06-24 10:28:12 98

原创 HashMap的put和get数据流程揭秘

本文是针对JDK1.8中的HashMap,之前以为已经懂的不错了,结果发现很多关键点没明白1. 先说HashMap的数据结构核心数据结构就三个:数组,链表,Tree数组Node<K,V> table数据就是个简单的Node数组,存放的是当前索引应第一个Node<K,V>对节点,或者是空(说明没有存放数据)链表如果挂在同一个索引下的数据Node个数小于变Tree...

2019-06-21 17:46:09 707

原创 知识树

在梳理自己的知识树,发现很多东西比较模糊,也发现东西很多不懂,需要慢慢完善,应该总比瞎摸好,也希望多交流

2019-06-20 16:22:39 332

转载 【转载】Hibernate常见知识点

转载自:https://www.cnblogs.com/Java3y/p/8535459.htmlHibernate工作原理及为什么要用?读取并解析配置文件读取并解析映射信息,创建SessionFactory打开Sesssion创建事务Transation持久化操作提交事务关闭Session关闭SesstionFactory使用Hibernate框架就不用我们写很多繁琐的S...

2019-06-20 11:13:24 112

原创 Maven项目使用Hibernate简单案例

之前用过SPRING BOOT 带的JPA进行过数据库操作,一直没用过Hibernate和Mybatis, 这里记录下用eclipse build 一个使用Hibernate的maven项目。一个maven项目使用Hibernate主要有以下几步:使用eclipse创建一个maven project;pom.xml文件中引入Hibernate相关的包;hibernate-core是H...

2019-06-19 17:36:07 1582

原创 MYSQL两种引擎:InnoDB和MYISAM主要区别和选择考虑点

mysql数据库中常见的两种引擎分别是InnoDB和MYISAM,mysql默认使用MYISAM,两者的主要区别和选择考虑点都是需要注意,如果是面试的时候也经常会问到。简单来讲,MYISAM比较粗暴,InnoDB比较精细。具体体现在哪些方面呢?主要如下:MYISAM只有表锁,一锁就锁整张表,非常的粗暴;InnoDB支持表锁和行锁,提供更加细粒度的控制,支持外键约束MYISAM不支持事务,I...

2019-04-26 17:45:08 266

原创 数据库新增列遇到的问题

难免会遇到线上环境数据表需要新增列的情况,如果的大表新增列的情况下,那就需要谨慎,新增列可能会导致长时间锁表,影响线上访问。以下是我遇到的数据库表新增列的情况(数据库名和表名用DB1和TABLE1代替),数据库为ORACLE,为新增列时做的测试,总共三种类型的语句:新增列,但不设置默认值新增列,设置默认值新增列,设置默认值,并且设置新增列值为NOT NULL以下为抽取出的各个语句执行...

2019-04-24 15:49:58 873

转载 redis的优化 cpu与redis进程的绑定

“我们不能任由操作系统负载均衡,因为我们 自己更了解自己的程序,所以,我们可以手动地为其分配CPU核,而不会过多地占用CPU0,或是让我们关键进程和一堆别的进程挤 在一起。”。在文章中提到了 Linux下的一个工具,taskset,可以设定单个进程运行的CPU。以下均以redis-server 举例。1)显示进程运行的CPU命令taskset -p 21184显示结果:pid 2118...

2018-12-27 10:54:52 1273

原创 elasticsearch聚合及查询详细报文

本文基于elasticsearch java客户端elasticsearch-5.5.2.jar在工作中遇到一些问题,存储大量数据,本来是计划用OpenTSDB存储这些数据,因为这些数据可以描述为点,具有比较明确的时序特性,但实际中用的OpenTSDB不稳定,并且调研发现ES也可以存这批数据,相对来讲扩展性更好。查询json报文格式:{ &amp;quot;query&amp;quot;: { &amp;quot;bool&amp;quot;: {...

2018-12-17 12:02:39 1005

转载 【转载】java 性能优化:35 个小细节,让你提升 java 代码的运行效率

原文地址:https://www.cnblogs.com/Qian123/p/6046096.html满满的干货!前言代码 优化 ,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是,吃的小虾米一多之后,鲸鱼就被喂饱了。代码优化也是一样,如果项目着眼于尽...

2018-11-23 18:17:07 124

原创 JS split使用

最近一直在实现新需求,其中碰到一个小问题,关于JS split的使用和Java中字符串的split使用没区分开,导致一个bug。在Java中如果分割符是正则表达式中的符号,那么以这个字符作分割时,需要添加转义,比如如果字符串以|分割,那么正确的写法是str.split(&quot;\|&quot;);正确示例: String str = &quot;a|b|c&quot;; String[] result = str...

2018-11-21 11:50:19 653

翻译 【翻译】OpenTSDB 2.3 文档-查询过滤器(Query Filters)

【翻译】OpenTSDB 2.3 文档-查询过滤器(Query Filters)

2018-11-08 11:00:25 1775

原创 Java对象深度复制和序列化总结

经常会碰到对象复制的问题,这个问题比较基础,同时与JVM内存模型挂钩。实现Cloneable接口默认的clone方法是浅拷贝通过实现Cloneable接口的方式实现深度拷贝的方法是重写clone方法,并对当前对象内所有引用进行拷贝使用序列化方式可以简便实现深度拷贝参考文章:https://www.cnblogs.com/NaLanZiYi-LinEr/p/9192734.htmlh...

2018-11-07 11:58:04 807

转载 很棒的开源监控系统原理系列文章:UAV MOF工作原理之Agent注入机制原理

原文链接:https://mp.weixin.qq.com/s/eA6nuYPVvgoCWO4E3yP4BQ也可关注公众号:UAVStack智能运维大家好,UAVStack推送时间到~上月我们为大家介绍了UAVStack中的调用链技术,助力大家进行问题诊断和系统性能提升,希望大家有所收获;也可点击链接http://www.itdks.com/dakashuo/detail/16900观看相...

2018-11-07 10:28:22 296

翻译 【翻译】OpenTSDB 2.3 文档-降采样(Downsampling)

遇到了点采样的问题,发现采样的文档很少,示例也很少,翻译下,顺便理解下配置。Downsampling(降采样)Downsampling是降低数据采样率或分辨率的过程。例如,假设温度传感器每秒向OpenTSDB系统发送数据。如果用户在一小时的时间跨度内查询数据,他们将收到3,600个数据点,这些数据点可以很容易地绘制出来。但是现在,如果用户要求整整一周的数据,他们将收到604,800个数据点,这...

2018-11-06 10:35:59 5379

翻译 【翻译】OpenTSDB 2.3文档--查询优化

查询性能查询性能对任何数据库系统都至关重要。此页面列出了一些常见的OpenTSDB问题以及提高性能的方法。高速缓存此时,OpenTSDB没有内置缓存(除了内置GUI,将缓存PNG图像文件60秒)。因此,我们依赖于底层数据库的缓存。在HBase(最常见的OpenTSDB后端)中,存在块高速缓存的概念,其将在写入和读取时在存储器中存储行和列的块。Nick Dimiduck‘s Block Cac...

2018-11-02 17:16:11 893

翻译 【翻译】OpenTSDB 2.3 文档--聚合

聚合OpenTSDB旨在通过查询有效地组合多个不同的时间序列。这样做的原因是,当用户查看他们的数据时,他们通常会从较高的级别开始询问诸如“数据中心的总吞吐量是多少?”之类的问题。或“按地区划分的当前用电量是多少?”。在查看这些高级别值之后,可能会出现一个或多个值,因此用户可以深入研究更详细的数据集,例如“我的LAX数据中心主机的吞吐量是多少?”。我们希望能够轻松回答这些高级问题,但仍然可以深入了...

2018-11-02 16:22:47 511

翻译 【翻译】OpenTSDB 2.3-- 数据查询和读取

查询或读取数据OpenTSDB提供了许多提取,操作和分析数据的方法。可以通过CLI工具、HTTP API查询数据,可以通过GnuPlot图来查看数据。有的开源工具,如Grafana和 Bosun也可以访问TSDB数据以展示数据。OpenTSDB基于标签的系统在查询上可能有点棘手,因此请仔细阅读本文档并查看以下页面以获取更深入的信息。此页面上的查询示例基于HTTP API。了解指标和时间序列...

2018-11-02 15:12:53 2258 1

翻译 【翻译】OpenTSDB 2.3 文档--HTTP API介绍

HTTP APIOpenTSDB提供基于HTTP的应用程序编程接口,以实现与外部系统的集成。几乎所有OpenTSDB功能都可通过API访问,例如查询时间序列数据,管理元数据和存储数据点。在研究各数据点信息之前,请阅读整个页面以获取有关标准API行为的重要信息。概览HTTP API本质上是RESTful,通过实现RESTful来对外支持访问,并非所有客户端都遵循严格的REST协议。默认数据交换...

2018-11-02 10:17:07 509

转载 【转载】Elasticsearch-基础介绍及索引原理分析

ES基础数据结构分析的非常透彻,倒排索引,跳表,压缩技巧,联合索引等转载:https://www.cnblogs.com/dreamroute/p/8484457.html最近在参与一个基于Elasticsearch作为底层数据框架提供大数据量(亿级)的实时统计查询的方案设计工作,花了些时间学习Elasticsearch的基础理论知识,整理了一下,希望能对Elasticsearch感兴趣/想了...

2018-10-30 10:10:35 93

原创 Redis缓存避免缓存雪崩、缓存击穿、缓存并发问题解决实践方案

Redis缓存避免缓存雪崩、缓存穿透、缓存并发问题解决方案

2018-10-26 19:42:16 1319

原创 Java循环日志

现在大多情况下都使用日志组件,比如log4j、log4j2,这些组件的好处是比较通用,同时鉴于软件开发中的拿来主义,尽量用现成的代码减小工作任务,同时公用的框架能避免自己花大量时间去测试,因为大家都在测试;另一方面,使用日志组件比较简单,只要配置配置就好了。但是要自己实现一个循环日志,或者想探究循环日志原理是什么,怎么去做呢本文基于Jdk8,记录实现循环日志的基本原理和测试代码。...

2018-10-25 15:05:57 923

原创 JDK 8 try-with-resource的问题

JDK 7 try-with-resource实践

2018-10-22 14:32:13 2267

转载 【转载】java7的异常处理新特性

原文地址:https://my.oschina.net/fhd/blog/324484前辈们非常给力!addSuppressed()方法开发人员对异常处理的try-catch-finally语句块都比较熟悉。如果在try语句块中抛出了异常,在控制权转移到调用栈上一层代码之前,finally语句块中的语句也会执行。但是finally语句块在执行的过程中,也可能会抛出异常。如果finally语句...

2018-10-22 14:17:07 163

原创 接口BlockingQueue分析以及实现多个接口时的一点问题

在java并发包中,每种阻塞队列BlockingQueue都有各自的特性,但是他们都是BlockingQueue的实现,因此分析并发包中的具体实现的BlockingQueue不如先了解BlockingQueue接口各方法的意义,然后具体分析某一个具体BlockingQueue队列实现,最后推及所有BlockingQueue的特性。 public interface BlockingDeq...

2018-10-19 19:05:08 131

原创 Java中接口、类的继承和实现小问题

以下这个问题其实是一个很low的问题,但确实很基础今天在看JDK源码中发现这一行代码:public interface BlockingDeque&amp;lt;E&amp;gt; extends BlockingQueue&amp;lt;E&amp;gt;, Deque&amp;lt;E&amp;gt; 奇怪了,大神写的,我没这样用过,接口可以多继承接口?经过实验,得出以下结论:1. 类只能继承一个类,可以实现多个接口;2. 接...

2018-10-19 17:05:55 151

原创 Queue接口分析:add和offer区别,remove和poll方法到底啥区别

往队列中添加元素有两个方法,分布是add和offer方法,两者的入参和返回值都一样,或许很多同学都奇怪,为什么,要有这两个功能类似(都是添加元素),但方法名不一样的方法,看看源码的注释以下为Queue接口中方法定义:```public interface Queue&lt;E&gt; extends Collection&lt;E&gt; { /* * add方法,...

2018-10-19 16:42:59 6370

原创 Java ThreadLocal源码解析: ThreadLocalMap

ThreadLocalMap在比其中Thread和ThreadLocal部分要复杂很多,是ThreadLocal底层存储和核心数据结构。从整体上将,ThreadLocalMap底层是Entry数组,key值为ThreadLocal的hash code, 采用线性探测法解决哈希冲突。以下是ThreadLocalMap核心属性和方法,所有方法和属性都标识为private,仅为ThreadLocal可...

2018-09-30 15:31:59 161

原创 Java ThreadLocal源码解析: Thread和ThreadLocal

之前对TreadLocal有所理解,对原理也有所了解,但一直不深入,重新整理,希望借以加深理解和印象。在Jdk1.8中,ThreadLocal相关代码主要分为三部分:Thread,其中Thread中保存对ThreadLocal.ThreadLocalMap的引用,作为Thread类的default属性;ThreadLocal,类似于线程中的T和readLocal.ThreadLocalMa...

2018-09-30 12:03:11 211

原创 线上Redis禁用或重命名危险命令

和Mysql中查询使用select*一样,Redis中线上使用keys *命令,也是非常危险的。因此线上的Redis必须考虑禁用一些危险的命令,或者尽量避免谁都可以使用这些命令,Redis没有完整的管理系统,但是也提供了一些方案。Redis支持命令重命名和命令禁用。看下Redis的配置文件# Command renaming. 命令重命名## It is possible to chan...

2018-09-29 10:12:47 4692 2

原创 JSK1.8 String类部分关键源码分析

本文基于JDK1.8中的String类,看源码时无意发现String类中几个比较有意思的地方,特此记录下。String类的两个重要属性,final的字符数组和int的hash值,还有序列化相关的两个字段,这里不写;final char value[]初始化后将是不可以变的,与String类的final关键字相呼应,保证的字符串的不变性;特别是在初始化字符串对象时,如果常量池中存在该字符串,可以...

2018-09-27 12:09:07 170

原创 记RSA非对称加密RSAUtil包分享

本类结合了网上各种资源整合而成,可以生产RSA密钥对,解析公钥私钥,公钥加解密,私钥加解密。RSAUtil.javaimport java.security.InvalidKeyException;import java.security.InvalidParameterException;import java.security.KeyFactory;import java.secur...

2018-09-26 17:49:15 990

原创 记单例模式double check的正确写法及相关思考

今天读了一篇关于单例模式中Double Check的文章,初始有些疑惑,后来串起来一些知识,理一下对单例模式的一点理解。单例模式要求对象在全局范围内只能存在一个,故此实现单例模式有三个重要的点:构造方法私有化,保证此类不能外部初始化;静态并且私有的单例对象,保证此对象内部初始化时只有一个;静态并且公有的获取单例对象方法, 保证对外提供此单例的获取途径;以下为最简单的单例模式实现方法(...

2018-09-26 15:26:02 1471

原创 ScheduleThreadPoolExecutor线程池分析

ScheduleThreadPoolExecutor是官方推荐的取代Timer作定时任务的线程池,在研究ScheduleThreadPoolExecutor过程中发现此线程池无论什么时候都只会有核心线程数coreSize个线程在工作。这样就有个问题,如果任务较为繁重的情况下,或者单个任务执行时间较长的情况下,是否需要调整coreSize的大小。先从ScheduleThreadPoolExecu...

2018-09-19 19:43:57 2703

原创 Redis恢复被删掉了的key值

本文只是小实验,不供线上使用参考本文假定的情况是,某同学不小心手残,把redis中的一个key删掉了,想恢复被删掉的key的数据。对于mysql等数据库等,有完整的数据库日志,回滚或者看日志就可以考虑恢复,但redis没有。先提出猜想,可以,但redis必须开启aof持久化,同时如果开启了rdb持久化,需先删除rdb持久化文件。实验开始:第一步:准备redis环境清空redis数据,...

2018-09-18 18:44:15 5931

hibernate.zip

Hibernate入门demo,基于java实现,使用maven进行管理,简单的入门小工程,为了记录下,有兴趣可以看下

2019-06-19

空空如也

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

TA关注的人

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