自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 收藏
  • 关注

原创 ln使用-linux下软链接和硬链接(符号链接)区别

一、概念链接:一种对文件的引用,分为硬链接和软链接(符号链接)。索引节点(inode):在Linux系统中,内核为每一个新创建的文件分配一个inode(索引结点),每个文件都有一个惟一的inode号,我们可以将inode简单理解成一个指针,它永远指向本文件的具体存储位置。文件属性保存在索引结点里,在访问文件时,索引结点被复制到内存,从而实现文件的快速访问。系统是通过索引节点(而不是文件名)来定位每...

2018-06-20 16:22:50 4122 1

原创 Java ServiceLoader使用和解析

一、使用场景一般使用接口的实现类都是静态new一个实现类赋值给接口引用,如下:HelloService service = new HelloImpl();如果需要动态的获取一个接口的实现类呢?全局扫描全部的Class,然后判断是否实现了某个接口?代价太大,一般不会这么做。一种合适的方式就是使用配置文件,把实现类名配置在某个地方,然后读取这个配置文件,获取实现类名。JDK给我们提供的TestSer...

2018-05-14 13:51:19 21160 1

转载 C语言内存对齐和结构补齐

首先我们先看看下面的C语言的结构体:[cpp] view plaincopytypedef struct MemAlign  {      int a;      char b[3];      int c;  }MemAlign;      以上这个结构体占用内存多少空间呢?也许你会说,这个简单,计算每个类型的大小,将它们相加就行了,以32为平台为例,int类型占4字节,char占用1字节,所以...

2018-05-12 11:55:52 11510 6

原创 TimeUnit使用和解析

https://blog.csdn.net/yuanyl/article/details/45098331http://www.bianceng.cn/Programming/Java/201312/38938.htm

2018-05-12 11:50:02 5260

原创 Java线程状态分析/线程状态转换图

注:以下代码讲解基于JDK1.8.0_144一、线程状态分类 线程一共有六种状态,分别为New、RUNNABLE、BLOCKED、WAITING、TIMED_WAITINGTERMINATED,同一时刻只有一种状态,通过线程的getState方法可以获取线程的状态。二、线程状态讲解2.1 NEW      /**         * Thread state for a thread which ...

2018-05-12 10:16:16 19297 4

原创 JDK源码解析/深入理解Reference和ReferenceQueue

一、Reference简介1.reference状态Active:新创建的实例状态,当被垃圾收集器回收时,如果实例注册时候指定了队列,则变成Pending状态,否则变成Inactive状态。Pending:pending-Reference列表的一个元素,等待被Reference-handler线程入队。解注册的实例不会是这种状态。Enqueued:实例创建的时候指定的queue的一个元素,当实例...

2018-04-27 20:36:04 599

原创 Java弱引用、软引用、强引用、虚引用

一、 概念。        强引用 -> Object strong = new Object(); ,类似这种代码,都是强引用,即使OutOfMemory,也不会被回收。通过设置strong = null,可以去除强引用。        软引用 -> SoftReference,在OutOfMemory时被回收。用来描述一些还有用但是并非必须的对象。可以和一个引用队列(Referen...

2018-04-27 20:17:11 766

原创 对象内存直接在老年代分配

对象优先在新生代分配,但是有的情况对象直接在老年代分配,如下:1、分配的对象大小大于eden space。适合所有收集器。2、eden space剩余空间不足分配,且需要分配对象内存大小不小于eden space总空间的一半,直接分配到老年代,不触发Minor GC。适合-XX:+UseParallelGC、-XX:+UseParallelOldGC,即适合Parallel Scavenge。3、...

2018-04-26 12:59:24 2966

原创 查看JVM使用的垃圾收集器/设置垃圾收集器JVM参数

一、设置垃圾收集器参数-XX:+UseSerialGC,虚拟机运行在Client模式下的默认值,Serial+Serial Old。-XX:+UseParNewGC,ParNew+Serial Old,在JDK1.8被废弃,在JDK1.7还可以使用。-XX:+UseConcMarkSweepGC,ParNew+CMS+Serial Old。-XX:+UseParallelGC,虚拟机运行在Serv...

2018-04-25 20:51:40 10828

原创 垃圾收集器类型简单介绍

一、新生代收集器1. Serial收集器  单线程收集、暂停所有用户线程,采用复制算法。单CPU环境效果最佳。建议Client模式下的虚拟机使用。2. ParNew收集器 多线程收集、暂停所有用户线程,采用复制算法。使用-XX:+UseParNewGC强制指定。3. Parallel Scavenge   多线程收集、暂停所有用户线程,采用复制算法。吞吐量优先收集器。目标达到一个可控制的吞吐量,即...

2018-04-25 19:53:14 158

原创 Minor GC和Full GC触发条件

一、Minor GC触发条件     1、eden区满时,触发MinorGC。即申请一个对象时,发现eden区不够用,则触发一次MinorGC。      注:新生代分为三个区域,eden space, from space, to space。默认比例是8:1:1。在MinorGC时,会把存活的对象复制到to space区域,如果to space区域不够,则利用担保机制进入老年代区域。     ...

2018-04-25 19:13:35 6849 3

原创 eclipse设置运行JVM参数

Eclipse设置JVM参数:->Run Configurations ->VM arguments,如下:

2018-04-25 15:28:32 4315

原创 如何逃脱垃圾回收

关于垃圾回收的触发机制,参考MinorGC和FullGC触发条件,本篇就是从其扩展而来。判断一个对象是否存活,除了GC Roots引用之外,还有一个条件就是对象是否重写了finalize方法,如果对象重写了该方法,则会交给FQueue队列去执行,如果执行该方法后被重新关联,则在下次回收时不会被回收,否则下次回收,该方法只执行一次。注:如果在finalize方法里面被重新引用,则下次GC不会被回收。...

2018-04-25 15:24:26 255

原创 Java获取文件path—getPath、getAbsolutePath、getCanonicalPath区别

一、三者相同点1、路径分隔符根据操作系统改变,Windows操作系统使用"\"分隔,Unix操作系统使用"/"分隔。2、路径最后一个字符不为分隔符。二、getAbsolutePath、getCanonicalPath相同点  相对路径都会以当前代码执行路径以父路径取绝对路径。如/home在Windows操作系统下属于相对路径,D:在Unix操作系统下属于相对路径。三、getCanonicalPat...

2018-04-24 14:21:52 1429

原创 使用Nexus和mvn deploy:deploy-file上传文件到中央库(Maven仓库)

一、使用Nexus上传文件到中央库1. 访问Nexus网站,右上角登陆。2.左边导航栏,点击Views/Repositories,点击Repositories。3、右侧显示所有的仓库信息。选择需要上传的仓库,点击。右侧下方显示该仓库的所有信息。4、切换到Artifact Upload标签。5、GAV定义a、上传POM文件b、填写GAV信息。6、上传文件二、使用mvn deploy:deploy-f...

2018-04-23 19:55:37 20080

原创 打印出数组重复的数字/数值个数

题目: 有一个长度为n的数组,里面所有元素的值都为整数,且范围为0到n-1。请列出数组中整数元素出现的次数。例:输入数组:{ 1, 6, 5, 3, 12, 2, 3, 2, 0, 1, 7, 4, 5 }打印:1 26 15 23 212 12 20 17 14 1方法有如下两种:一、用一个额外的数组记录重复情况,因为元素的值不可能超过下标,所以可以把元素的值当作额外数组的下标,...

2018-04-23 10:58:43 2272

原创 判断数组是否有重复的数字

题目:有一个长度为n的数组,里面所有元素的值都为整数,且范围为0到n-1。请输出任意一个重复的数字,即判断数字是否重复即可。例:输入数组:{ 1, 6, 5, 3, 12, 2, 3, 2, 0, 1, 7, 4, 5 }打印出1、5、3、2任意一个即可。方法有如下三种:一、用一个额外的数组记录重复情况,因为元素的值不可能超过下标,所以可以把元素的值当作额外数组的下标,如果该下标已被标记,则打印出...

2018-04-23 10:13:16 8720

原创 文件权限问题汇总-使用Maven修改文件权限/Maven assembly配置解析

Maven主要使用assembly插件来修改文件权限,用的标签为<fileMode/>和<directoryMode/>,分别用来修改文件权限和目录权限。注:assembly插件的版本需要注意,之前用的3.1.0的版本,<fileMode/>和<directoryMode/>都不生效,最后切换成2.4.1版本才可以。具体原因没有去查,不知道是不是3....

2018-04-19 19:59:35 6331 1

原创 JDK和JRE区别

简单解释:JDK 全称 Java Development Kit  ——  Java开发工具,主要是开发使用,常用工具的javac、javap、jstack都在内。JRE 全程 Java Runtime Environment  —— Java运行环境,主要是用来运行java程序,所以java、javaws都在内。下面截图JDK1.8.0_144:ls -l jdk1.8.0_144ls -l j...

2018-04-17 20:31:34 250

原创 文件权限问题汇总-使用ant修改文件权限

    Ant使用修改文件权限用的是<chmod>标签,实际调用的是命令chmod。关于文件权限的内容,可参见Linux/Unix系统文件权限解析。具体的<chmod>可查看Ant手册,以下为一些例子,使用的Ant版本是1.9.7。 perm的表达式,参照命令chmod。1、<chmod file="testFile.txt" perm="ugo+rx"/>修改...

2018-04-16 13:41:45 1862

原创 页面加载多个并发请求卡主

    最近遇到一个问题,页面通过ajax异步访问多个web请求卡住,页面上按钮点击都没有反应。一开始以为是ajax的原因,通过调试发现,后台同时接收到了6个请求,即其它请求还没有传到后台,这才确定是浏览器限制了并发请求的个数。   解决方案:资源放在不同的域下面。以下为相关资料:           浏览器允许的并发请求资源数是什么意思?           Why do big sites h...

2018-04-13 20:12:13 3000

原创 Linux用户和用户组简单操作

1、增加一个组(组ID从500开始递增)groupadd groupA2、增加两个用户(用户ID从500开始递增)useradd -g 502  userAuseradd -g 502  userA2注:-G 指定附加用户组,同时还会为此用户创建一个属于他自己的新组。可以指定多个。-g指定组的UID。-p 为密码的密文使用passwd 用户名  修改密码3、查看组cat /etc/group | ...

2018-04-11 19:32:00 143

原创 文件权限问题汇总-Linux/Unix系统文件权限解析

使用命令ls -l或者ll时,会出现以下结果:文件属性   文件个数  所属用户 所属组   文件大小   文件日期    文件名drwxrwxr-x   2        userA    groupA   4096     Apr 11 2017  testDir-rw-rw-r--    1         userA    gorupA    72       Apr 11 15:00  ...

2018-04-11 19:26:02 1962

原创 getBoolean和parseBoolean的区别

    一直以为getBoolean拿不到系统属性就直接用的值,too young to simple,代码如下:  getBoolean:如果系统属性不存在name或者系统属性name对应的值不为true,则返回false,否则返回true。parseBoolean:如果s不为true,则返回false,否则返回true。测试代码如下:...

2018-02-10 15:35:43 1706

原创 Restful注入参数

如果多个方法共用相同的元素,可以注入为成员变量,但是前提不能是Singletons类型的资源。    注意:在构造方法完成之后才会初始化注入资源。

2017-11-16 20:33:40 738

原创 Restful获取Path所有占位符,Context的使用

问题:如何获取一个Path里面的所有占位符?    答:使用@Context注解。

2017-11-16 14:21:51 1310

原创 关于restful的segment小例子,restful正则表达式例子

  问题:当不确认path具体的长度,即到底是a/b/c还是a/b,怎么办?   答:可以使用正则表达式占位,使用segment分解。 首先定义一个class,指定Path。 1、使用date正则表达式占位,后面可以有多条内容。  2、具体的Path优先级更高。3、可以使用多个正则表达式拼接4、通过MatrixParameters可分解键值对。...

2017-11-16 11:32:52 2302

原创 初探RESTful——使用Grizzly和Jersey搭建RESTful环境

Grizzly:轻量级Web容器,用来运行RESTful服务,类似于TomcatJersey:是一个开源的、产品级别的JAVA框架,支持JAX-RS API并且是一个JAX-RS(JSR 311和 JSR 339)的参考实现,简单的说,就是写RESTful服务用的。Grizzly的相关的依赖:    org.glassfish.grizzly    grizzl

2017-10-14 11:41:24 1352

原创 初探RESTful——RESTful简介

RSETful只是一种架构,一种设计风格。通俗的说,就是你的代码按照它规定的样子来写,其余的由Web容器去做。中间交互的仍然是HTTP协议。    还是有点抽象,跟着后面的例子慢慢看吧。

2017-10-14 11:31:05 341

原创 修改Redhat系统时间,重启机器失败

由于修改了Redhat系统时间,重启机器,发现机器启动失败。    查看异常信息:UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY.   由于时间不一致导致的,之前是2017年,现在改成了2016年,使用以下命令修复:   fsck -y /dev/sda1   重启,发现sda3有同样的问题,继续执行:  fsck -y /dev/s

2016-12-10 10:31:38 786

原创 Nginx的keepalive_timeout和TCP的keepalive

keep alive,分为HTTP层的Keep-Alive和TCP层的KeepAlive,两者是不同的概念。    一般的通信过程为:TCP层握手 -> HTTP层请求响应 -> TCP层关闭连接   TCP层的KeepAlive为TCP层握手结束之后保持连接,其timeout为TCP层握手结束之后能保持多长时间,如果在这个时间范围内客户端没有数据传输,则关闭连接。   HTTP层的K

2016-12-06 13:21:00 8389

原创 Weblogic如何通过JMX监控JDBC资源(数据源)数据

今天一同事问到了我这个问题,由于本人对Weblogic不太了解,所以决定先尝试一下。    新建一个数据源,通过传统的Jconsole连接(需要在Weblogic启动参数中配置jmx参数,这里省略),在MBean一栏中 没有找到关于JDBC资源的监控项。通过查找资料,发现可以通过IIOP访问,步骤如下:1、在${WLS_HOME}/lib下面执行 java -j

2016-11-01 20:15:52 7744

原创 Maven如何设置JVM参数

使用Maven突然出现了Java heap space,一般出现这个问题就是堆内存不够了,这时候需要修改JVM参数,查看Maven的可执行文件。在${MAVEN_HOME}/bin目录下,存在两个文件,mvn和mvn.bat(mvn.cmd)。    如果是windows,则修改mvn.batt(mvn.cmd)文件,如果是linux,则修改mvn文件。    mvn.bat(mvn.cm

2016-09-10 10:58:06 17664 1

原创 如何使用Maven编译Github上的工程

从Github上下载了一个工程,依赖的包实在太多,于是乎下载了一个Maven来编译。    先官网下载了一个最新的Maven,然后修改其settings.xml,设置本地库路径:D:/repository,如果需要设置中央库,按照以下方式设置即可:          maven-net-cn      central      Maven China Mirror.

2016-09-09 15:37:54 3054

原创 Tomcat处理过期Session

一、先介绍一下Tomcat的后台处理线程,首先是与该线程至关重要的属性:backgroundProcessorDelay。    在每个Container启动的时候会根据backgroupProcessorDelay来决定是否启动ContainerBackgroundProcessor线程。    backgroupProcessorDelay作为ContainerBase的属性,默认

2016-09-08 16:27:32 2336

原创 Java7的try新功能

今天研究tomcat8的代码,发现try居然可以用括号,顿时觉得自己已经落后几万步了,百度了一下,发现这是Java7的新功能。    赶快来写个例子试试看:   以前写代码,总是要在finally里面把资源关闭,现在省事多了。try()里面的资源会自动关闭,只要该资源实现了AutoCloseable接口。调试了一下运行步骤:1、初始化资源,出现异常,执行步骤4、5,正常,执

2016-09-08 14:36:45 430

原创 Zookeeper使用-启动显示成功实际却失败

最近在搞Codis的Redis集群,里面使用到了zookeeper,启动zookeeper,启动返回成功信息,日志为空,端口也没有监听,使用status命令,居然卡在那里返回不了,也没有任何信息。后面突然想起来新建codis-server的时候,需要用到glibc2.14,执行了export LB_LIBRARY_PATH=/opt/glibc-2.14/lib:$LB_LIBRARY_PATH命

2016-09-03 14:38:23 1521

空空如也

空空如也

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

TA关注的人

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