【Maven】【gradle】java.io.IOException: No locks available常见解决方案

thumbnail: /images/maven_tb.png
banner: /images/maven_bner.png

Java.io.IOException: No locks available
    at sun.nio.ch.FileChannelImpl.lock0(Native Method)
    at sun.nio.ch.FileChannelImpl.lock(FileChannelImpl.java:784)
    at java.nio.channels.FileChannel.lock(FileChannel.java:865)

能够下载依赖的jar包,但是每下载一次都会跑出No locks available异常,而且每个jar下载都需要等待很久。

最后通过 df -T -h 命令才发现当前目录挂载的是NFS。

Read More

Java, 基础(面试题)总结(分享-交流)

1. Finally,final,finalize

  • Finally:
    释放资源(内存之外的,打开的文件、连接、屏幕上的图形,,)

    • 总会执行
    • 非后台线程结束,后台线程被强关,不会执行finally
    • 当try和catch中有return时,finally在return之后执行,但是返回值不会改变(finally中不会改变已保存的返回结果)
    • finally中最好不要包含return,否则程序会从finally中退出,返回值不是try或catch中保存的返回值。
  • final:
    基本数据类型:不可更改
    类:不可继承
    对象:引用不可变,对象内容可变

  • finalze:
    回收前调用,不适合用来清理或释放资源。对象免死最后机会!保证会被调用,但不保证会执行完(在低优先级线程中执行)

    Read More

SDN笔记

命令:
virsh net-list 查看网桥

札记:
ovs超过1.9 无法配合kvm libirt
ubuntu 14.04 apt-cache ovs默认版本2.02
ubuntu server 制作简单U盘系统版不可用

ovs-brcompatd is not running ?
安装ubuntu server

Read More

【算法】求全排列 回溯 交换 DFS JAVA

思路简述:
一个全排列其实就是一条把数组无重复遍历一遍的DFS过程
思路一:简单回溯

  1. 一个List存遍历路径,从第N个“结点”到第N+1个“结点”是只需要找一个未遍历的结点就行
  2. 一个关键点在于查找 下一个可遍历“结点”, 可以用SET辅助List存放已遍历结点,List中存遍历书序(文中方法未用SET,复杂度较高,但是可以在Leetcode上AC);也可用一个数据结构完成: LinkedHashMap,即可保存插入顺序,也可O(1)判断是否存在某元素。
  3. 回溯: 选中某一子“结点”递归下去之后,要回溯查找另一“子节点”,这就是回溯的过程,通过把某时刻路径中最后结点删除,添加下一“子节点”实现

    Read More

笔记-数据库索引原理

强烈建议参阅链接:http://www.linezing.com/blog/?p=798#nav-1

索引问题就是一个查找问题。。。


数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询、更新数据库表中数据。索引的实现通常使用B树及其变种B+树
在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法。这种数据结构,就是索引。
为表设置索引要付出代价的:一是增加了数据库的存储空间,二是在插入和修改数据时要花费较多的时间(因为索引也要随之变动)。
索引
上图展示了一种可能的索引方式。左边是数据表,一共有两列七条记录,最左边的是数据记录的物理地址(注意逻辑上相邻的记录在磁盘上也并不是一定物理相邻的)。为了加快Col2的查找,可以维护一个右边所示的二叉查找树,每个节点分别包含索引键值和一个指向对应数据记录物理地址的指针,这样就可以运用二叉查找在O(log2n)的复杂度内获取到相应数据。

创建索引可以大大提高系统的性能

Read More

Java 类加载机制学习

虚拟机类加载机制:

  虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型。
  Java语言里,类型的
加载连接过程是在程序运行**期间完成的。

类的生命周期:
  加载 loading
  验证 verification
  准备 preparation
  解析 resolution
  初始化 initialization
  使用 using
  卸载 unloading

  加载验证准备初始化卸载5个阶段顺序是确定的,按这个顺序“开始”的。
    解析可能发生在初始化之后,为了支持动态绑定通常互相交叉地混合进行一个阶段执行的过程中调用、激活另一阶段。

主动引用&被动引用:


Read More