自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

pbaabc的专栏

学也无涯

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

原创 汉字占用字节

汉字占用字节从一行代码显示说起# fo.write("学习派森笔记\n")str = fo.read(9) 读取的字符是: 学习派str = fo.read(10)读取的字符是: 学习派�str = fo.read(11)读取的字符是: 学习派�str = fo.read(12)读取的字符是: 学习派森可以看出,utf-8 汉字占用3字节扩展:...

2018-03-27 09:43:18 491

原创 Elasticsearch版本2.4.1创建索引报错

这个是jackson引用的版本不一致,可以看maven中已有的相关jackson版本,然后引用同样的版本。 来源于http://blog.csdn.net/u014231523/article/details/52816218

2018-03-15 13:57:24 388

原创 Java进阶(一)Java内存解析

栈、堆、常量池等虽同属Java内存分配时操作的区域,但其适用范围和功用却大不相同。本文将深入Java核心,简单讲解Java内存分配方面的知识。首先我们先来讲解一下内存中的各个区域。stack(栈) 存放基本类型的数据和对象的引用,即存放变量。如果存放的是基本类型数据(非静态变量),则直接将变量名和值存入stack中的内存中;如果是引用类型,则将变量名存入栈,然后指向它new出的...

2018-03-12 09:34:28 225

原创 JAVA 类加载器

  今天我们将类加载机制5个阶段中的第一个阶段,加载,又叫做装载。为了便于阅读,以下都叫做装载。   装载的第一步就是要获得二进制的字节流,它可以从读.class文件获得,也可以从网络中接收别人发送的字节流。反正只要符合虚拟机规定的字节流格式都可以进入这个阶段。   有了字节流之后,要进行装载还需要一个工具,那就是加载器了。加载器既可以使用系统提供的引导类加载器,也可以使用用户自己定义加载...

2018-03-10 15:40:00 220

原创 jvm JAVA 类加载机制

  从本篇博文开始,我们就进入虚拟机类加载机制的学习了。那么什么是类加载呢?当我们写完一个Java类的时候,并不是直接就可以运行的,它还要编译成.class(字节码)文件,再由虚拟机解释给当前的操作系统去执行。这些过程都是我们看不见的,我们能看见的也就是一个.class文件。既然虚拟机要解释这些.class文件给当前的操作系统听,那么他怎么获得这些.class文件呢?虚拟机获得这些.class文件...

2018-03-10 12:19:07 169

原创 jvm 阶段回顾

  内存基本分为JAVA栈、本地方法栈、堆和方法区。   首先栈存放的是基本类型变量,局部变量,和对象的引用,他在内存中是一块连续的区域,有大小限制,是由系统自动分配的,因此它的读写速度比较快,而且会自动释放掉为该变量所分配的内存空间;还有一点就是他还存放线程调用方法时存储局部变量表,操作,方法出口等与方法执行相关的信息。   堆的话是存放对象和数组;在运行时动态分配内存(比如 new()...

2018-03-10 12:16:01 138

原创 jvm JAVA 可视化分析工具

  经过前几篇博文对堆内存以及垃圾收集机制的学习,相信小伙伴们已经建立了一套比较完整的理论体系!本篇博客就根据已有的理论知识,通过可视化工具来实践一番。 我们今天要讲解的工具位于JDK目录的bin目录下,大家可以发现该目录下有很多可执行文件,这里都是JDK为我们提供用于分析内存的一些工具。我们重点看看jconsole.exe,JAVA监视与管理控制台。   再双击运行可视化工具,这里会让你...

2018-03-10 12:13:20 619

原创 jvm收集器

年轻代收集器STW即GC时候的停顿时间,他会暂停我们程序中的所有线程。如果STW所用的时间长而且次数多的话,那么我们整个系统稳定性以及可用性将大大降低。  因此我们在必要的时候需要对虚拟机进行调优,调优的主要目标之一就是降低STW的时间,也就是减少Full GC的次数。那么这里我们从调优的角度来分析各个收集器的优势与不足。   首先从作用于年轻代的收集器开始(采用复制的收集算法):...

2018-03-10 12:07:10 169

原创 jvm 从GC日志分析堆内存

  在前面的文章中,我们只设置了整个堆的内存大小。但是我们知道,堆又分为了新生代,年老代。他们之间的内存怎么分配呢?新生代又分为Eden和Survivor,他们的比例大小能改变吗?其实这些都是可控的,以前没有讲到是因为就算讲了也只是讲讲而已,看不到实质性的东西。因此这章我们通过分析GC日志来一步步讲解如何细化设置堆内存。   首先我们来了解几个相关的参数:-XX:+PrintGCDeta...

2018-03-10 11:49:47 285

原创 jvm JAVA GC之标记

  堆分为年轻代和年老代。永久代是非堆内存,它又叫做方法区(一般的说法),主要存储已被加载的类信息、常量、静态变量。而该区域在java8已被删除,取而代之的是元空间,我会在后面的章节细讲。什么是标记?怎么标记?  第一个问题相信大家都知道,标记就是对一些已死的对象打上记号,方便垃圾收集器的清理。 至于怎么标记,一般有两种方法:引用计数和可达性分析。   引用计数实现起来比较简单,就...

2018-03-10 11:39:28 510 1

原创 jvm 利用MAT排查堆溢出

如何设置以及当发生堆溢出的时候怎么排查问题。先看一小段代码:   代码中使用了一个无限循环来为list添加对象,如果采用默认的堆大小的话可能要等待好久才能出现堆溢出的错误,因此我们要将其设置小一点:   -Xms10m -Xmx10m -XX:+HeapDumpOnOutOfMemoryError,elipse中的设置方法我们在第一章讲过了,这里不多说啦。-Xms10m,意思就是堆的最小内...

2018-03-10 11:33:39 156

原创 jvm 内存分配与回收策略

虚拟机中的堆,他是整个内存模型中占用最大的一部分,而且不是连续的。当有需要分配内存的时候,一般有两个方法分配,指针碰撞和空闲列表。该部分的内存回收是由虚拟机的垃圾收集器GC进行管理的。   刚刚粗略的回忆了上一博文所讲的内容,而这一章我们的重点还在堆上面。之前有简单的提到过新生代和老年代,今天就给大家好好梳理下这部分。   堆是存放对象以及数组的区域,但不是胡乱的有空间就分配的内存。堆在内...

2018-03-10 11:28:54 143

原创 jvm 栈和堆

  若想使自己编写的Java程序高效运行,以及进行正确、高效的异常诊断,JVM是不得不谈的一个话题。本”JVM进阶“专栏大部分内容均来源于经典书籍《深入理解Java虚拟机》。    栈  下面言归正传,本文重点从虚拟机内存模型(运行时数据区域)入手。先看图:   这是一张比较官方的虚拟机模型图,今天讲的就是虚线框中栈的部分。   栈是我们最常用的内存区域。它主要用来存放基本类...

2018-03-10 11:20:11 181

原创 Maven中测试插件(surefire)的相关配置及常用方法

1. 在Maven中配置测试插件surefire <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version&...

2018-03-10 11:05:52 1803

原创 maven 版本控制

现在所说的maven版本不同于SVN的版本控制之前我们说过Maven的版本分为快照和稳定版本,快照版本使用在开发的过程中,方便于团队内部交流学习。而所说的稳定版本,理想状态下是项目到了某个比较稳定的状态,这个稳定包含了源代码和构建都要稳定。一、如何衡量项目的稳定状态所有的自动化测试应当全部通过项目没有配置任何快照版本的依赖项目没有配置任何快照版本的插件项目所包含的代码都已经...

2018-03-10 10:54:44 612

原创 git 标签管理

发布一个版本时,我们通常先在版本库中打一个标签(tag),这样,就唯一确定了打标签时刻的版本。将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来。所以,标签也是版本库的一个快照。新建标签Git 使用的标签有两种类型:轻量级的(lightweight)和含附注的(annotated)。轻量级标签就像是个不会变化的分支,实际上它就是个指向特定提交对象的引用。而含附注标签...

2018-03-10 10:22:00 145

原创 git 远程管理

开篇就提到过,Git是一个分布式版本管理系统。但是到现在为止,我们所有的演练都是在本地Git仓库。如果想与他人合作,还需要一个远程的 Git 仓库。尽管技术上可以从个人的仓库里推送和拉取修改内容,但我们不鼓励这样做,因为一不留心就很容易弄混其他人的进度。另外,你也一定希望合作者们即使在自己不开机的时候也能从仓库获取数据——拥有一个更稳定的公共仓库十分有用。因此,更好的合作方式是建立一个大家都可以访...

2018-03-10 10:12:59 246

原创 git 分支管理

当我们初始化Git仓库的时候,Git会默认创建一个名为master的主分支。在实际工作中,主分支要求是一个稳定、健壮、安全的主线,一般不允许在主分支上直接进行开发,而是拉取一个新的分支,开发、测试完成后,再将分支合并到主分支上。使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作。在很多版本控制系统中,这是个昂贵的过程,常常需要创建一个源代码目录的完整副本,对大型项目来说会...

2018-03-10 09:41:50 249

原创 git 辅助命令

熟悉了Git的基本操作之后,再来研究一下Git为我们提供的基础设施服务。正如一个程序员,只会写代码是远远不够的,还得知道怎么吃饭,怎么睡觉,怎么谈恋爱,怎么耍流氓……会了这些才能写出更好的代码,这就是所谓的“基础设施服务”或者“外围服务”。git config一般在新的系统上,我们都需要先配置下自己的 Git 工作环境。配置工作只需一次,以后升级时还会沿用现在的配置。当然,如果需要,随时可...

2018-03-09 16:00:15 155

原创 git 基础命令

三个工作区域使用Git之前,首先要弄清Git的三个管理区域,有助于理解Git的运行原理,以及每个Git命令对文件造成的影响。对于任何一个文件,在本地的Git内部都有三种状态:l 已修改(modified) 表示修改了某个文件,但还没有提交保存。包括新增、删除了一个文件,也属于已修改状态的一种。l 已暂存(staged) 表示把已修改的文件放到了暂存区,也就是放到了下次提...

2018-03-09 15:49:10 233

原创 Git是什么

为什么使用Git孔子曾经曰过的,名正则言顺 言顺则事成。我们在学习一项新技术之前,弄清楚为什么要学它至关重要,至于为什么要学习Git,我用一段if-else语句告诉你原因:if(你相信我){ 我推荐你学习;} else if(诚然,我又不是什么大牛,你可以不相信我,但是你应该相信大多数人的选择){ 世界上越来越多的人、越来越多的项目在使用Git,大势所趋,...

2018-03-09 15:33:58 165

原创 maven 依赖关系

在maven的管理体系中,各个项目组成了一个复杂的关系网,但是每个项目都是平等的,是个没有贵贱高低,众生平等的世界,全球每个项目从理论上来说都可以相互依赖。就是说,你跟开发Spring的大牛们平起平坐,你的项目可以依赖Spring项目,Spring项目也可以依赖你的项目(虽然现实中不太会发生,你倒贴钱人家也不敢引用)。项目的依赖关系主要分为三种:依赖,继承,聚合依赖关系依赖关系是最常用...

2018-03-09 15:18:22 207

原创 maven 约定优于配置

maven的配置文件看似很复杂,其实只需要根据项目的实际背景,设置个别的几个配置项而已。maven有自己的一套默认配置,使用者除非必要,并不需要去修改那些约定内容。这就是所谓的“约定优于配置”。文件目录maven默认的文件存放结构如下:每一个阶段的任务都知道怎么正确完成自己的工作,比如compile任务就知道从src/main/java下编译所有的java文件,并把它的输出clas...

2018-03-09 14:53:45 390

原创 maven pom.xml配置文件详解

setting.xml主要用于配置maven的运行环境等一系列通用的属性,是全局级别的配置文件;而pom.xml主要描述了项目的maven坐标,依赖关系,开发者需要遵循的规则,缺陷管理系统,组织和licenses,以及其他所有的项目相关因素,是项目级别的配置文件。基础配置一个典型的pom.xml文件配置如下:<project xmlns="http://maven.apache....

2018-03-09 14:36:13 135

原创 Maven仓库

本地仓库Maven一个很突出的功能就是jar包管理,一旦工程需要依赖哪些jar包,只需要在Maven的pom.xml配置一下,该jar包就会自动引入工程目录。初次听来会觉得很神奇,下面我们来探究一下它的实现原理。首先,这些jar包肯定不是没爹没娘的孩子,它们有来处,也有去处。集中存储这些jar包(还有插件等)的地方被称之为仓库(Repository)。不管这些jar包从哪里来的,必须存...

2018-03-09 14:15:33 405

原创 Maven是什么

首先,Maven的正确发音是[ˈmevən],而不是“马瘟”以及其他什么瘟。Maven在美国是一个口语化的词语,代表专家、内行的意思,约等于北京话中的老炮儿。一个对Maven比较正式的定义是这么说的:Maven是一个项目管理工具,它包含了一个项目对象模型 (POM:Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统...

2018-03-09 13:42:30 191

原创 Maven命令

常用命令从某种意义上来说,软件是帮助不懂程序的人来操作计算机的,图形化界面尤其如此。在上个世纪,比尔盖茨之所以成为世界首富,微软之所以IT界的巨鳄,就是因为Windows开图形化操作之先河,并抢先占领了全球市场,笑傲江湖数十年,至今依然宝刀未老。诚然,现在几乎每种软件都有图形化界面,用鼠标点击几下就可以完成操作。Maven也不例外,在各类IDE中都有成熟的插件来简化操作。但是作为开发人...

2018-03-09 12:40:30 152

转载 Maven插件

Maven本质上是一个插件框架,它的核心并不执行任何具体的构建任务,所有这些任务都交给插件来完成,像编译是通过maven-compile-plugin实现的、测试是通过maven-surefire-plugin实现的,maven也内置了很多插件,所以我们在项目进行编译、测试、打包的过程是没有感觉到。进一步说,每个任务对应了一个插件目标(goal),每个插件会有一个或者多个目标,例如mave...

2018-03-09 12:00:05 113

转载 Maven生命周期

我们在开发项目的时候,不断地在编译、测试、打包、部署等过程,maven的生命周期就是对所有构建过程抽象与统一,生命周期包含项目的清理、初始化、编译、测试、打包、集成测试、验证、部署、站点生成等几乎所有的过程。Maven有三套相互独立的生命周期,请注意这里说的是“三套”,而且“相互独立”,初学者容易将Maven的生命周期看成一个整体,其实不然。这三套生命周期分别是:CleanLifecyc...

2018-03-09 11:50:06 299

转载 maven setting.xml配置文件详解

setting.xml配置文件maven的配置文件settings.xml存在于两个地方:1.安装的地方:${M2_HOME}/conf/settings.xml2.用户的目录:${user.home}/.m2/settings.xml前者又被叫做全局配置,对操作系统的所有使用者生效;后者被称为用户配置,只对当前操作系统的使用者生效。如果两者都存在,它们的内容将被合并,并且用户范围...

2018-03-09 11:14:42 183

转载 国内maven库镜像(阿里云)

原来的maven地址应该是:http://repo1.maven.org/maven2/还有一个: http://central.maven.org/maven2/但是也实在是太慢了。最近找到阿里云的好像可以。配置如下:<mirrors> <mirror> <id>alimaven</id> &lt...

2018-03-09 10:50:10 29353 1

转载 使用ajaxfileupload.js实现上传文件功能

使用ajaxfileupload.js实现上传文件功能一、ajaxFileUpload是一个异步上传文件的jQuery插语法:$.ajaxFileUpload([options])options参数说明: 1、url           上传处理程序地址 2、fileElementId      文件选择框的id属性,即的id 3、secureuri        是否启用安全提交,默认为f

2017-10-25 19:09:54 305

原创 mysql设置远程访问

mysql设置远程访问本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl + Q插入链

2017-04-15 19:25:04 215

原创 以后做事的规则

不要做第二天的计划,不要做下午的计划,都没有用。每次做事情都像udp一样,做当下的事情,就可以了。其他还是不要想的好!没有,每次都是完蛋了。不做计划了,就这样做把,跟着心走了。不要玩一些没有用的东西!游戏,对象之类的东西。...

2016-10-05 13:58:14 105

原创 又打游戏了

好久不打游戏了,今天又打了,不很高兴,以后还是生活简单点,不要做无谓的的其他繁琐事情,忍受孤独和寂寞,做好自己希望做好的事情。持之以恒,心情平静!...

2016-10-05 13:43:18 97

原创 easyui系列2

2.jquery easyui组件 2.1 怎样使用jquery easyui       导入jquery,基于他。然后导入jquery easyui 。导入时注意顺序,都是压缩过的。不需要看源码。       导入样式,很多css。导入easyui.css 即可,拖进来即可       小图标:自己写一个 themes/icon使用        国际化:easyu...

2016-10-03 11:41:52 97

原创 activemq

1.Activemq学习笔记1面向消息的中间件:MOM利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。一个MOM系统,通常包括客户端,message,MOM。客户端发送或接受消息,message封装了要传递的内容,MOM可以存储和转发消息。通过MOM间接传递。MOM好处:降低系统间通信复杂度,只需关心如何和MOM进行消息接受和发送...

2015-12-07 21:44:51 113

原创 http协议

tcp、ip协议,用于定义浏览器和服务器交互过程。通讯格式,用于定义客户端和服务器通信格式。http1.1和http1.0:在一个连接上获取多个web资源。http请求:1.请求包括的内容:请求行,消息头,实体内容请求行:请求方式,默认是get。get在url中显示,post请求实体内容发送数据。消息头:accept支持的类型;accept-charset;encoding压缩...

2015-09-13 15:33:02 56

原创 web总结二

1.tomcat端口配置,修改server.xml2.虚拟目录映射方式:在server.xml文件中的host元素中配置,该方式需要重启加载server文件,不建议;让tomcat自动映射:自动管理webapps目录下应用,外界可直接访问。conf/catalina/localhost 建立xml文件,文件名即虚拟目录。文件中添加context元素。代表一个应用。docbase好处...

2015-09-13 14:29:20 58

原创 web总结(一)

一。基本概念1.静态资源,动态资源2.多个web资源组合成web应用,所在目录交给web服务器管理,称为目录映射二。web服务器weblogic,websphere,tomcat,iis三。搭建环境tomcat...

2015-09-13 14:09:00 68

空空如也

空空如也

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

TA关注的人

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