自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 java学习系列2(并发锁问题-乐观锁与悲观锁以及乐观锁的一种实现方式-CAS)

Java并发问题--乐观锁与悲观锁以及乐观锁的一种实现方式-CAS首先介绍一些乐观锁与悲观锁:  悲观锁:总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。再比如Java里面的同步原语synch

2017-10-28 11:49:22 306

转载 java学习系列4(Java 内存区域和GC机制)

目录Java垃圾回收概况Java内存区域Java对象的访问方式Java内存分配机制Java GC机制垃圾收集器Java垃圾回收概况  Java GC(Garbage Collection,垃圾收集,垃圾回收)机制,是Java与C++/C的主要区别之一,作为Java开发者,一般不需要专门编写内存回收和垃圾清理代 码,对内存泄露和溢出的问题,也不需要像C程序员那样战战兢兢。这是因为在J

2017-10-26 17:10:13 222

转载 java学习系列4(内存模型)

Java内存模型上面讲到了Java线程之间的通信采用的是过共享内存模型,这里提到的共享内存模型指的就是Java内存模型(简称JMM),JMM决定一个线程对共享变量的写入何时对另一个线程可见。从抽象的角度来看,JMM定义了线程和主内存之间的抽象关系:线程之间的共享变量存储在主内存(main memory)中,每个线程都有一个私有的本地内存(local memory),本地内存中存储了该线程以

2017-10-26 15:20:20 166

转载 java学习系列3(集合ConcurrentHashMap)

前言以前写过介绍HashMap的文章,文中提到过HashMap在put的时候,插入的元素超过了容量(由负载因子决定)的范围就会触发扩容操作,就是rehash,这个会重新将原数组的内容重新hash到新的扩容数组中,在多线程的环境下,存在同时其他的元素也在进行put操作,如果hash值相同,可能出现同时在同一数组下用链表表示,造成闭环,导致在get时会出现死循环,所以HashMap是线程不安全

2017-10-26 14:48:58 189

转载 java学习系列3(集合hashmap)

HashMap原理详解HashMap一 定义和创建  HashMap实现了Map接口,继承AbstractMap类。AbstractMap中包含了map的基本功能。     (1) 初始大小static final int DEFAULT_INITIAL_CAPACITY = 1 4; // aka 16从源码可以看出大小是16(1左移动4位1000 =

2017-10-25 14:02:03 179

转载 java学习系列2(多线程三)

本文主要接着前面多线程的两篇文章总结Java多线程中的线程安全问题。一.一个典型的Java线程安全例子 1 public class ThreadTest { 2 3 public static void main(String[] args) { 4 Account account = new Account("123456", 1000);

2017-10-25 13:49:04 204

转载 java学习系列2(多线程二)

本文承接上一篇文章《Java总结篇系列:Java多线程(一)》。四.Java多线程的阻塞状态与线程控制上文已经提到Java阻塞的几种具体类型。下面分别看下引起Java线程阻塞的主要方法。1.join()join —— 让一个线程等待另一个线程完成才继续执行。如A线程线程执行体中调用B线程的join()方法,则A线程被阻塞,知道B线程执行完为止,A才能得以继续执行。

2017-10-25 13:47:31 146

转载 java学习系列2(多线程一)

JAVA多线程实现方式主要有三种:继承Thread类、实现Runnable接口、使用ExecutorService、Callable、Future实现有返回结果的多线程。其中前两种方式线程执行完后都没有返回值,只有最后一种是带返回值的。1、继承Thread类实现多线程继承Thread类的方法尽管被我列为一种多线程实现方式,但Thread本质上也是实现了Runnable接口的

2017-10-25 11:31:58 243

转载 java学习系列1(面向对象)

一、面向过程的思想和面向对象的思想        面向对象和面向过程的思想有着本质上的区别, 作为面向对象的思维来说,当你拿到一个问题时,你分析这个问题不再是第一步先做什么,第二步再做什么,这是面向过程的思维,你应该分析这个问题里面有哪些类和对象,这是第一点,然后再分析这些类和对象应该具有哪些属性和方法。这是第二点。最后分析类和类之间具体有什么关系,这是第三点。        

2017-10-25 11:13:49 192

转载 ansible 基本概念,ad-hoc操作

ansible 是一个自动化的工具,主要用来管理配置文件,应用部署等作用。非常高效通过ssh协议,不需要mq,数据库,agentless的不需要在client上面安装agent,比较轻量级,兼容性比较好。ansible一般参数并发10个$ ansible atlanta -a "/sbin/reboot" -f 101指定user$ ansible

2017-10-19 15:53:23 360

转载 Spring、Spring MVC、MyBatis整合文件配置详解

使用SSM框架做了几个小项目了,感觉还不错是时候总结一下了。先总结一下SSM整合的文件配置。其实具体的用法最好还是看官方文档。Spring:http://spring.io/docsMyBatis:http://mybatis.github.io/mybatis-3/基本的组织结构和用法就不说了,前面的博客和官方文档上都非常的全面。jar包可以使用Maven来组织管理。来看

2017-10-19 14:19:05 184

转载 spring和springmvc父子容器的关系

大家都知道,在spring的配置中要分开配置service层的注解扫描,以及springmvc变现层的注解扫描,如下:[java] view plain copy  package="com.xxx.service">      package="com.xxx.controller" />  那么,问题来了,

2017-10-19 10:37:19 281

原创 元数据管理

什么是元数据大数据整个流程中,各种表的元信息和各种job的元信息。以及数据的流转过程,依赖及血缘关系。

2017-10-18 10:02:34 390

转载 shell中各种括号的作用()、(())、[]、[[]]、{}

一、小括号,圆括号()1、单小括号 ()   ①命令组。括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用。括号中多个命令之间用分号隔开,最后一个命令可以没有分号,各命令和括号之间不必有空格。   ②命令替换。等同于`cmd`,shell扫描一遍命令行,发现了$(cmd)结构,便将$(cmd)中的cmd执行一次,得到其标准输出,再将此输

2017-10-17 11:00:07 230

原创 shell中 >&2含义

echo "this is a test" >&2>&2 也就是把结果输出到和标准错误一样;之前如果有定义标准错误重定向到某file文件,那么标准输出也重定向到这个file文件。         其中&的意思,可以看成是“The same as”、“与...一样”的意思

2017-10-17 10:26:01 12948

转载 Linux shell脚本中shift的用法说明

shift命令用于对参数的移动(左移),通常用于在不知道传入参数个数的情况下依次遍历每个参数然后进行相应处理(常见于Linux中各种程序的启动脚本)。示例1:依次读取输入的参数并打印参数个数:run.sh:[java] view plain copy#!/bin/bash  while [ $# != 0 ];do  

2017-10-17 10:08:28 371

转载 Google EventBus 使用详解

EventBus是Google.Guava提供的消息发布-订阅类库,它实现了观察者设计模式,消息通知负责人通过EventBus去注册/注销观察者,最后由消息通知负责人给观察者发布消息。首先使用 maven 依赖:[java] view plain copy//mvnrepository.com/artifact/com.google.

2017-10-16 17:56:06 393

转载 源码分析Flume启动过程

对Flume-NG的agent启动过程进行详细的分析。 启动过程flume的main函数在Application.java中,在flume-ng的shell启动脚本中会用java来起flume:$EXEC $JAVA_HOME/bin/java $JAVA_OPTS $FLUME_JAVA_OPTS "${arr_java_props[@]}" -cp "$FLUME_CL

2017-10-16 15:29:29 548

转载 Intellij Idea社区版 上使用maven构建并使用插件jetty和tomcat运行servlet

Intellij Idea是一个不错的工具,刚开始可能有点陌生,但是使用一段时间之后就习惯了。idea有两种,IC(社区版)和IU(这个应该算是商业版),社区版是免费的,商业版是收费的,所以社区版比商业版少了一些功能,比如:JavaScript支持、java ee等,不过我们可以使用maven来安装插件来达到使得idea支持一些功能。在网上查询了一些资料和博文后总结一下。1.使用maven

2017-10-13 13:47:41 894

转载 azkaban源码解读

azkaban源码解读一. web server源代码解析1.配置文件读取过程:主要读取的两个配置文件为: 1)读取下面的2个文件File azkabanPrivatePropsFile = new File(dir, AZKABAN_PRIVATE_PROPERTIES_FILE);//"azkaban.private.proper

2017-10-12 18:42:47 587

转载 Linux平台卸载MySQL总结

如何在Linux下卸载MySQL数据库呢? 下面总结、整理了一下Linux平台下卸载MySQL的方法。 MySQL的安装主要有三种方式:二进制包安装(Using Generic Binaries)、RPM包安装、源码安装。对应不同的安装方式,卸载的步骤有些不同。文章中如有不足或不对的地方,敬请指出或补充! RPM包安装方式的MySQL卸载 1: 检查是否安装了MyS

2017-10-11 16:33:21 412

空空如也

空空如也

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

TA关注的人

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