- 博客(32)
- 资源 (3)
- 问答 (4)
- 收藏
- 关注
转载 JVM配置参数详解
一、堆参数设置-XX:+PrintGC 使用这个参数,虚拟机启动后,只要遇到GC就会打印日志-XX:+UseSerialGC 配置串行回收器-XX:+PrintGCDetails 可以查看详细信息,包括各个区的情况-Xms:设置Java程序启动时初始化堆大小-Xmx:设置Java程序能获得最大的堆大小-Xmx20m -Xms5m -XX:+Print...
2018-03-31 22:19:38 4656
原创 Flink实时数仓之用户埋点系统(二)
数据模型就是数据组织和存储方法,它强调从业务、数据存取和使用角度合理存储数据。只有将数据有序的组织和存储起来之后,数据才能得到高性能、低成本、高效率、高质量的使用。
2024-03-18 16:56:00 1267
转载 mybatis的一个bug,将整数0识别为null,导致sql执行失败
本文内容整理来源:http://blog.csdn.net/john1337/article/details/70230563今天在使用mybatis时遇到一个问题,Java代码中传递的整数0在mybatis中被识别成null[html] view plain copy<where>...
2018-11-09 10:39:15 765
转载 黑盒测试和白盒测试
1. 黑盒测试和白盒测试的直观图 从图中可以直接看出来,黑盒测试就当整个程序是个黑盒子,我们看不到它里面做了些什么事情,只能通过输入输出看是否能得到我们所需的来测试。而白盒测试可以当盒子是透明的,里面的一切我们都看的清楚,从而我们可以通过去测内部结构来测试。 2. 黑盒测试 (Black-Box Testing) 黑盒测试又称为功能测试、数据驱动测试或基于规格说明书的测试,是一种从...
2018-09-06 16:59:30 576
原创 mongodb聚合函数aggregation的用法
1、首先需要自定义一个类,来表示你需要统计的属性以及统计之后的结果,这里的_id表示我要统计的属性,count表示这个属性的项目总数class IntegralCount { int _id; int count; public int get_id() { return _id; } ...
2018-06-25 10:46:32 5796
转载 理解事务的4种隔离级别
数据库事务的隔离级别有4种,由低到高分别为Read uncommitted 、Read committed 、Repeatable read 、Serializable 。而且,在事务的并发操作中可能会出现脏读,不可重复读,幻读。下面通过事例一一阐述它们的概念与联系。Read uncommitted读未提交,顾名思义,就是一个事务可以读取另一个未提交事务的数据。事例:老板要给程序员...
2018-06-08 16:37:06 162
原创 手写HashMap
1、首先需要一个通用的接口,这个接口有put()、get()、size()方法,还有一个entry对象public interface MyMap&amp;lt;K,V&amp;gt; { public V put(K key,V value); public V get(K key); public int size(); public interface Entry&amp;...
2018-05-11 10:30:53 170
原创 mysql性能优化总结
看完高性能mysql这本书,对mysql性能优化有了更加深刻全面的了解,下面从以下几个方面总结如何优化Mysql查询性能:一、在创建数据库表时选择合适的列.我们在创建数据库表时所选择的列尽量满足一下几个条件: 1. 选择存储数据的最小数据类型。这样占用的内存最小,消耗的CPU资源最少。 2. 选择简单的数据类型。简单的数据类型通常需要最少的CPU周期,比如整型比字符串类型操...
2018-04-29 19:46:59 560
原创 重读高性能mysql—开启慢查询日志
开启慢查询日志,可以让MySQL记录下查询超过指定时间的语句,通过定位分析性能的瓶颈,才能更好的优化数据库系统的性能。二、参数说明slow_query_log 慢查询开启状态slow_query_log_file 慢查询日志存放的位置(这个目录需要MySQL的运行帐号的可写权限,一般设置为MySQL的数据存放目录)long_query_time 查询超过多少秒才记录三、设置步骤1.查看慢查...
2018-04-28 15:31:03 188
原创 虚拟机类加载机制
参考资料:深入理解Java虚拟机第七章。 一个Java源码如何编译解析然后被加载到虚拟机上运行的?,在彻底搞清楚这个问题之前首先问三个问题,类加载时期是什么时候?类加载的过程是什么?以及类加载究竟是什么?要想知道答案请看下面的介绍。 1、什么是虚拟机的类加载机制? 我们知道一个java源文件通过javac编译成字节码的class文件(通过这个文件中的数据格式可以分辨魔数、版本号、常量等)之后...
2018-04-07 20:24:23 298
转载 JDK动态代理详解
原文地址:https://blog.csdn.net/danchu/article/details/70146985 Java动态代理机制的出现,使得Java开发人员不用手工编写代理类,只要简单地制定一组接口及委托类对象,便能动态地获得代理类。代理类会负责将所有的方法调用分配到委托对象上反...
2018-03-31 12:03:23 178
转载 CGLIB详解(最详细)
转载地址:https://blog.csdn.net/danchu/article/details/70238002 什么是CGLIBCGLIB是一个强大的、高性能的代码生成库。其被广泛应用于AOP框架(Spring、dynaop)中,用以提供方法拦截操作。Hibernate作为一个比...
2018-03-31 11:52:28 76578 9
原创 从源码角度看Spring生命周期(官方最全)
Spring在beanfactory中给出了spring的生命周期的list列表 一、bean初始化前的处理Bean factory implementations should support the standard bean lifecycle interfacesas far as possible. The full set of initialization methods...
2018-03-29 12:12:37 453 1
转载 Mysql之Expain执行计划详解
使用explain关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的,分析你的查询语句或是表结构的性能瓶颈。explain执行计划包含的信息其中最重要的字段为:id、type、key、rows、Extra各字段详解idselect查询的序列号,包含一组数...
2018-03-21 10:37:32 318
原创 Mysql性能优化实战
1、索引设计规范 常见索引列建议: SELECT、UPDATE、DELETE语句的WHERE从句中的列 包含在ORDER BY、GROUP BY、DISTINCT中的字段,建议联合索引 多表JOIN的关联列 索引列的顺序: 区分度最高的列放在联合索引的最左侧 尽量把字段长度小的列放在联合索引的最左侧 使用最频繁的列放到联合索引的左侧 总结: 每个innodb表都要有一个主键 ...
2018-03-04 17:30:11 221
原创 Mysql数据库性能优化之查询性能优化
一、前言:为啥查询速度会变慢? 通常来说,查询的生命周期大致分为从客户端、到服务器,然后在服务器上进行解析,生成执行计划,执行,并返回结果给客户端。其中执行可以说是最重要的阶段,这其中包括了大量为了检索数据到存储引擎的调用以及调用后的数据处理,包括排序和分组等。在每一个消耗大量时间的查询案例中,我们都能看到一些不必要的操作、某些操作被额外重复执行了很多次、某些操作执行的太慢。优化查询的目的就是减...
2018-03-03 23:04:39 372
原创 mysql性能优化之创建高性能索引
索引对性能的优化十分重要,是对查询优化最有效的手段。 一、索引的类型 索引是在存储引擎层而不是服务层实现的。不同存储引擎的索引工作方式不一样。 1、B-Tree索引 它使用的是B-Tree数据结构来存储数据。b-tree索引能够加快访问数据的速度,因为存储引擎不在需要进行全表扫描来获取需要的数据,取而代之的是从索引的根节点开始进行搜索。根节点的槽中存放了指向子节点的指针,存储引擎根据这些指...
2018-03-03 11:40:12 189
原创 Mysql性能优化之数据类型优化
一、选择正确的数据类型对于获得高性能至关重要 1.1更小的通常更好 占用更少的磁盘、内存和CPU缓存 1.2尽量避免null 如果查询中包含可为null的列,对Mysql来说更难优化,因为可为null的列使得索引、索引统计和值都更复杂。会使用更多的存储空间. 2、整数和实数 整数tinyint、smallint、mediumint、int、bigint分别使用8,16,24,32,64...
2018-03-02 11:13:34 334
原创 从零开始搭建轻量级JavaWeb框架
项目地址:https://github.com/letterZhao/smartframework.git
2018-02-24 17:41:41 1135
原创 mongodb批量添加某列和批量修改某列的数据类型
1、批量向jd这个文档添加操作属性为state 值为0的列 这里默认为double类型db.jd_goods_code.update( {"state" : {$exists : false}}, {"$set" : {"state" : 0}}, false, true)2、批量更新state(double)的数据类型为Int32, type:1表...
2018-02-12 14:29:59 10175
原创 Java源码分析——ConcurrentHashMap
HashMap在高并发情况下添加值容易出现环形链,不能保证数据的安全性,所以ConcurrentHashMap作为替代方式出现了,concurrentHashmap比hashtable更加高效,因为hashtable是将整个对象锁住,当一个线程在操作时,其它线程不能有任何操作。要理解它只需要理解一个重要的概念segment。每一个segment相当于一个hashmap,有2的N次方多个,保
2018-02-01 21:54:52 168
原创 Java源码分析——hashmap
hashmap起初是一个长度为16的数组,这个数组中每个值都是一个node对象,每次根据hash算法给这个值一个下标,当这个下标出现冲突时,当前Node中的元素next属性就等于这个重复的node对象,和当前Node组成一个单项链表,当链表长度为8时把链表转化为红黑树来处理。这是为了减少哈希碰撞,当链表长度为8时及时转换,能提高map的效率1、在介绍hashmap之前首先简单来了解一下什么是二...
2018-01-31 15:33:04 241
原创 Java源码分析——LinkedList
1、linkedlist是一个双向链表,其中有三个成员变量,和一个私有静态内部类transient int size = 0; //linkedlist的逻辑长度transient Node first; //指向第一个node的引用transient Node last; //指向最后一个node的引用这里的node是linkedlist的中的私有静态内部类,有三个成员变
2018-01-30 16:42:10 296
原创 Java源码分析——ArrayList
1、Java数据结构中重要的接口和类 Java中数据结构主要在java.util这个包下面,而数据结构的超级接口为Collection和Map,Conllection接口下面有几个重要的接口List、Queue、Set;而Map下面有ConcurrentHashMap、HashMap、Hashtable几个重要的子类。接下里对这些重要的子类从源码的角度进行分析 2、List中的Arra
2018-01-30 14:42:19 317
原创 linux上安装rabbitmq
准备工作 首先下载好erlang rabitmq安装包上传到linux服务器,本地配置好Java环境变量安装erlang 输入以下命令yum install ncurses-devel./configure --prefix=/usr/local/erlang20 --enable-hipe --enable-threads --enable-smp-support
2018-01-28 10:39:18 166
原创 使用java实现工厂模式和代理模式
工厂模式 通过读取配置文件的方式创建beanpackage net.test.factory;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.HashMap;import java.util.Map;imp
2018-01-22 16:32:56 1816 1
原创 在linux下配置环境并安装jdk
在linux下安装jdk 1、首先保证window和linux相互通信,ping能传输数据 1.1虚拟机和物理机 桥接模式 1.2虚拟机的ip地址 授权文件 chown 777 /etc 使用root用户进入以下文件root>vi /etc/sysconfig/network-scripts/ifcfg-eth0 BOOTPROTO=static //配置静态ip
2017-11-29 17:50:27 175
原创 Java虚拟机学习之Java内存区域与内存溢出异常
Java虚拟机在在执行程序的过程中会将他所管理的内存划分为若干个不同的数据区域,这些 区域有各自不同的作用,以及创建和销毁的时间。Java虚拟机规范中包括以下几个运行时数据区域1.1程序计数器 是一块较小的内存空间,可以看做当前线程所执行的字节码的行号指示器。这个内存区域是java虚拟机规范中唯一个没有指定outofmemoryError情况的区域。 1.2Java虚拟机栈 线程私有的
2017-11-25 11:08:06 215
原创 使用java完成二分算法
使用java完成二分算法。自己写的可能有错package com.test;public class Test2 { // 使用二分算法计算某个数在哪个位置,即每次取中间值进行比较 // 如果这个数小了将最小值设为中间数,如果这个数大了将最大值设为中间数 // 重复以上步骤、但由于java每次进行除法后都是去掉小数点以后的数字。所以应该考虑最后一个值的情况 public
2017-11-04 16:07:51 745
原创 angularjs实现省市二级菜单(可以选择默认值)
使用数组格式的json数据折腾了一天,实现了级联菜单,但悲催的发现并不能去选择默认值。所以在网上又找了一种使用对象作为json数据,然后ngoptions的参数稍微复杂一点。 先贴angularjs代码<div class="form-group"> <label class="col-sm-2 control-label">所在省份</la
2017-09-29 15:52:05 1398
原创 省市二级级联json数据
[{"name": "北京","child": [{"name":"东城区"},{"name":"西城区"},{"name":"崇文区"},{"name":"宣武区"},{"name":"朝阳区"},{"name":"丰台区"},{"name":"石景山区"},{"name":"海淀区"},{"name":"门头沟区"},{"name":"房山区
2017-09-28 15:06:56 6445
java写的crm项目适合初学者
2017-09-22
angularjs 实现省市级联菜单的默认值显示问题
2017-09-28
idea环境下,使用tomcat7-maven启动web项目时不重新编译
2017-09-20
这个网页用到了什么技术,<script>标签,还有双大括号{{}}是什么意思
2017-09-04
TA创建的收藏夹 TA关注的收藏夹
TA关注的人