
java
qbw2010
这个作者很懒,什么都没留下…
展开
-
《领域驱动设计》--柔性设计
对于柔性设计这章,说实话读完有种雾里看花的感觉。只学会了作者提供的六种手段,并没有理解其真实意图。既然如此,索性先依葫芦画瓢吧。聊胜于无,学会皮毛也算进步。1.Intention Revealing Interfaces简单地说,就是要为方法起个好名字。那么问题来了,什么叫做好名字?就是瞄一眼,就知道它是干什么的。2.Side-Effect-Free Function首先定义两个概...原创 2020-01-10 15:07:56 · 405 阅读 · 0 评论 -
从程序员到CTO的Java技术路线图(我爱分享)
在技术方面无论我们怎么学习,总感觉需要提升自已不知道自己处于什么水平了。但如果有清晰的指示图供参考还是非常不错的,这样我们清楚的知道我们大概处于那个阶段和水平。 Java程序员高级特性 反射、泛型、注释符、自动装箱和拆箱、枚举类、可变 参数、可变返回类型、增强循环、静态导入转载 2015-04-07 16:42:24 · 595 阅读 · 0 评论 -
JAVA中几种读取文件为字符串
方式一Java code?123456789101112131415161718192021222324252627转载 2015-04-10 15:54:39 · 516 阅读 · 0 评论 -
Java NIO原理图文分析及代码实现
Java NIO原理图文分析及代码实现 前言: 最近在分析hadoop的RPC(Remote Procedure Call Protocol ,远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。可以参考:http://baike.baidu.com/view/32726.htm )机制时,发现hadoop的RPC机制的实现主要用到了两个技术:转载 2015-04-10 15:11:52 · 391 阅读 · 0 评论 -
java nio(reactor, selector, selectionKey)
java nio(reactor, selector, selectionKey)SocketChannel vs. ServerSocketChannel父类:SelectableChannel。Channel表现了一个可以进行IO操作的通道(比如,通过FileChannel,我们可以对文件进行读写操作)ServerSocketChannel主要用在Server中,用转载 2015-04-10 15:14:56 · 575 阅读 · 0 评论 -
Java泛型-类型擦除
一、概述 Java泛型在使用过程有诸多的问题,如不存在List.class, List不能赋值给List(不可协变),奇怪的ClassCastException等。 正确的使用Java泛型需要深入的了解Java的一些概念,如协变,桥接方法,以及这篇笔记记录的类型擦除。Java泛型的处理几乎都在编译器中进行,编译器生成的bytecode是不包涵泛型信息的,泛型类型信息将在编译处理是被擦转载 2015-03-31 10:09:52 · 372 阅读 · 0 评论 -
java中协变的概念
协变,就是父类和子类保持相同形式的变化,但是协变有时候倍支持,有时候不被支持比如,在数组中,协变是支持的比如 class Parent{}class Child extends Parent{}那么 Child[]可以赋值给 Parent[] ,这个就是协变但是,在泛型中,协变就不可以比如 虽然Child extends Parent但是,假设有个 Test,则 Test不可转载 2015-03-31 08:59:30 · 562 阅读 · 0 评论 -
java泛型类和泛型函数
什么是泛型?泛型(Generic type 或者 generics)是对 Java 语言的类型系统的一种扩展,以支持创建可以按类型进行参数化的类。可以把类型参数看作是使用参数化类型时指定的类型的一个占位符,就像方法的形式参数是运行时传递的值的占位符一样。可以在集合框架(Collection framework)中看到泛型的动机。例如,Map 类允许您向一个 Map 添加任意类的对象转载 2015-03-31 08:53:10 · 389 阅读 · 0 评论 -
JAVA的I/O介绍
>转载自:http://www.cnblogs.com/lijunamneg/archive/2013/03/22/2975087.html第15章有详细介绍,讲的还是相当不错的,我们可以好好看下IO流分为输入流(InputStream)和输出流(OutputStream)两类按流所处理的数据类型又可以分为字节流和字符流(用于处理Unicode字符数据)两类字节转载 2015-03-23 14:37:40 · 418 阅读 · 0 评论 -
Java基础:IO 流中的 flush
转载自:http://blog.youkuaiyun.com/veryitman/article/details/6460726Java设计Io流可谓是煞费苦心,如果你是初学者我敢保证第一次接触Java的IO类,一定会“狂晕!!”,晕,倒不是因为它有多么难学,而是太多,而且及其让人容易迷惑。在编程日子中,尤其是在网络编程中,几乎离不开Java的IO,关于Java的IO流的分类,可以到网上s转载 2015-03-23 15:59:07 · 455 阅读 · 0 评论 -
String详解, String和CharSequence区别, StringBuilder和StringBuffer的区别
String详解, String和CharSequence区别, StringBuilder和StringBuffer的区别 (String系列之1)本章主要介绍String和CharSequence的区别,以及它们的API详细使用方法。转载请注明出处:http://www.cnblogs.com/skywang12345/p/string01.html更多内容请参考:1.转载 2015-04-13 16:48:52 · 585 阅读 · 0 评论 -
Java正则表达式教程
Java正则表达式教程 [1]Regular Expressions of Java Tutorial译者序 正则表达式善于处理文本,对匹配、搜索和替换等操作都有意想不到的作用。正因如此,正则表达式现在是作为程序员七种基本技能之一*,因此学习和使用它在工作中都能达到很高的效率。 正则表达式应用于程序设计语言中,首次是出现在 Perl 语言,这也让 Perl 奠定了正则表达式旗手转载 2015-04-13 15:53:15 · 483 阅读 · 0 评论 -
ConnectionTimeOut和SocketTimeOut的区别
ConnectionTimeOut和SocketTimeOut的区别: 一次完整的请求包括三个阶段:1、建立连接 2、数据传输 3、断开连接 如果与服务器(这里指数据库)请求建立连接的时间超过ConnectionTimeOut,就会抛 ConnectionTimeOutException,即服务器连接超时,没有在规定的时间内建立连接。 如果与服务器连接成功,就开转载 2015-10-21 16:09:24 · 9512 阅读 · 0 评论 -
通过spark-submit运行java程序
原来程序是将所有jar打包到libs目录下,然后运行生成好的run.sh。现在要使用spark-submit将它提交到spark上运行。几经波折之后,终于圆满完成。首先遇到的问题是如何使用gradle将工程打包成可执行的jar文件。这个问题网上已有答案,就是使用插件"com.github.johnrengelman.shadow"。gradle的配置如下:apply plugin: '原创 2018-02-06 17:41:34 · 5889 阅读 · 0 评论 -
java 日志江湖的那些故事
在java的世界里,有许多日志工具比如log4j logback 等。但他们都是什么关系?下面由我来为大家解答。先来讲讲日志的渊源吧。话说很多年前,有个叫log4j的小伙子,凭借着一身好武艺,基本上已经统领了日志界的半边天。虽然他很厉害,但是不服他的人还是很多。这可就难坏了那些使用者们,我们到底要使用哪个呢?如果开始选不好,那么后面再切换可就麻烦了。就在这血雨腥风的时候,一位德高望重的老者原创 2017-07-24 20:13:07 · 409 阅读 · 0 评论 -
zookeeper输出大量debug日志原因分析
今天无意中发现线上tomcat的catalina.out文件输出大量的zookeeper debug信息,以下是日志片段:10:30:03.973 [localhost-startStop-1-SendThread(10.168.180.94:2181)] DEBUG org.apache.zookeeper.ClientCnxn – Reading reply sessionid:0x2转载 2017-06-02 09:43:03 · 15761 阅读 · 0 评论 -
.jar !/.... FileNotFoundException解决方法
我们常常在代码中读取一些资源文件(比如图片,音乐,文本等等)。在单独运行的时候这些简单的处理当然不会有问题。但是,如果我们把代码打成一个jar包以后,即使将资源文件一并打包,这些东西也找不出来了。看看下面的代码://源代码1:package edu.hxraid;import java.io.*;public class Resource { public void getResour转载 2017-06-05 16:50:42 · 8513 阅读 · 0 评论 -
欢迎使用优快云-markdown编辑器
本次重构,在项目中应用了spring aop,但对于通知方法和被通知方法的参数传递原理还不是很清楚,于是决定整理一下这方面的知识。名词解释:通知方法:就是通知advice。 被通知方法:就是切点pointcut。 args:用于匹配当前执行的方法传入的参数为指定类型的方法。(和execution表达式一样,是一个过滤条件)@Pointcut("execution(* com.pub原创 2017-03-27 09:58:26 · 317 阅读 · 0 评论 -
深入理解Java:注解(Annotation)--注解处理器
深入理解Java:注解(Annotation)--注解处理器 如果没有用来读取注解的方法和工作,那么注解也就不会比注释更有用处了。使用注解的过程中,很重要的一部分就是创建于使用注解处理器。Java SE5扩展了反射机制的API,以帮助程序员快速的构造自定义注解处理器。注解处理器类库(java.lang.reflect.AnnotatedElement): Jav转载 2017-03-17 10:14:08 · 405 阅读 · 0 评论 -
Hadoop Hive HBase Spark Storm概念解释
HadoopHadoop是什么? 答:一个分布式系统基础架构。Hadoop解决了什么问题? 答:解决了大数据(大到一台计算机无法进行存储,一台计算机无法在要求的时间内进行处理)的可靠存储(HDFS)和处理(MapReduce)。HiveHive是什么? 答:Hive是建立在Hadoop之上的,使用Hadoop作为底层存储的批处理系统。(可以理解为MapReduce的一层壳)Hive解决了什么问原创 2017-03-29 15:39:39 · 5760 阅读 · 0 评论 -
eclipse java文件右上角标识(区别class文件和interface文件)
eclipse的java工程中java文件多时,有的是接口文件,有的是类文件,需要打开文件才能区分,非常耗时。在网上找了一上午也没找到相关的解决办法,难道其它人都没有这个问题?还是这个问题太简单,对其他人来说就不是个问题?不管怎么样,自己终于找到了解决办法,步骤如下:没有显示文件类型时是这样子的:显示文件类型是这样子的:接口文件一目了然,方便快捷原创 2017-02-10 09:56:37 · 8361 阅读 · 0 评论 -
对进程地址空间的一点认识
转载处:http://blog.youkuaiyun.com/qingfeng_happy5/article/details/4322723对进程地址空间的一点认识在进入正题前先来谈谈操作系统内存管理机制的发展历程,了解这些有利于我们更好的理解目前操作系统的内存管理机制。一 早期的内存分配机制在早期的计算机中,要运行一个程序,会把这些程序全都装入内存,程序都是直接运行在内存上的,也转载 2015-03-23 11:29:44 · 380 阅读 · 0 评论 -
虚拟内存机制和内存映射文件原理探索
一.虚拟内存机制转载处:http://blog.youkuaiyun.com/zp373860147/article/details/7815793;这是我找到的关于虚拟内存和分页机制的我个人比较容易理解的一篇文章。 虚拟存储器的思想是程序、数据和堆栈的大小都有可能超过物理内存大小,由操作系统把当前使用的放在内存,而不需要的放在磁盘。而绝大部分操作系统使用的虚拟存储器技术就是分页技转载 2015-03-23 10:50:02 · 1249 阅读 · 0 评论 -
Disruptor 详解
Disruptor 详解想了解一个项目,最好的办法就是,把它的源码搞到本地自己捣鼓。在网上看了 N 多人对 Disruptor 速度的吹捧,M 多人对它的机制分析,就连 Disruptor 官方文档中,也 NB 哄哄自诩:At LMAX we have built an order matching engine, real-time risk management,转载 2015-03-16 15:18:57 · 1303 阅读 · 0 评论 -
JAVA输出文件中的文件名
逐行扫描文件,并逐行输出 public static void main(String[] args) throws FileNotFoundException { InputStream in = new FileInputStream(new File("C:\\windows")); S原创 2015-03-19 19:20:15 · 1240 阅读 · 0 评论 -
三步创建Disruptor应用
Disruptor是一个高性能的用于线程间消息处理的开源框架。它的目标就是快.我们知道,java.util.concurrent.ArrayBlockingQueue 是一个非常优秀的有界队列实现。Disruptor与之相比,性能更加的优秀。性能比较完整的性能报告在这里.Disruptor内部使用了RingBuffer,它是Disruptor的核心的数据结构。和其它的RingB转载 2015-03-16 15:14:05 · 420 阅读 · 0 评论 -
从Java视角理解CPU上下文切换(Context Switch)
从Java视角理解系统结构连载, 关注我的微博(链接)了解最新动态 在高性能编程时,经常接触到多线程. 起初我们的理解是, 多个线程并行地执行总比单个线程要快, 就像多个人一起干活总比一个人干要快. 然而实际情况是, 多线程之间需要竞争IO设备, 或者竞争锁资源,导致往往执行速度还不如单个线程. 在这里有一个经常提及的概念就是: 上下文切换(Context Switch). 上下文转载 2015-03-16 13:38:01 · 748 阅读 · 0 评论 -
从Java视角理解CPU缓存(CPU Cache)
从Java视角理解系统结构连载, 关注我的微博(链接)了解最新动态 众所周知, CPU是计算机的大脑, 它负责执行程序的指令; 内存负责存数据, 包括程序自身数据. 同样大家都知道, 内存比CPU慢很多. 其实在30年前, CPU的频率和内存总线的频率在同一个级别, 访问内存只比访问CPU寄存器慢一点儿. 由于内存的发展都到技术及成本的限制, 现在获取内存中的一条数据大概需要200多个CP转载 2015-03-16 13:32:11 · 423 阅读 · 0 评论 -
Java学习之路
这里说说我的经历吧。大学前以及大学前面三年的经历就不说了,因为大学前的高中就是好好学习,大学前三年就是混过来的。 我上的学校还算可以,虽然不是北大清华这样第一流名牌大学,但至少也算中国的第二流名牌大学了。大学中前面三年都陪伴着游戏过去,所学到的只是些计算机基础知识。到大四后我突然发现就业的问题就在眼前,而自己似乎什么也不会,于是开始看书。最一开始重点看的是C++,可是后来自从看了一本转载 2015-03-19 09:38:44 · 1272 阅读 · 0 评论 -
Java中的BoneCP数据库连接池用法
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://zhoufoxcn.blog.51cto.com/792419/438277在2006年8月的时候我在项目中使用过Proxool这个Java数据库连接池,在当时的使用过程中遇到了一些问题,为此曾写过一篇名为《关于Proxool使用的一点问题》的博客,网址是http://转载 2015-03-25 10:55:34 · 521 阅读 · 0 评论 -
ConcurrentHashMap之实现细节
转载处:http://www.iteye.com/topic/344876ConcurrentHashMap是Java 5中支持高并发、高吞吐量的线程安全HashMap实现。在这之前我对ConcurrentHashMap只有一些肤浅的理解,仅知道它采用了多个锁,大概也足够了。但是在经过一次惨痛的面试经历之后,我觉得必须深入研究它的实现。面试中被问到读是否要加锁,因为读写会发生冲转载 2015-03-25 08:47:45 · 300 阅读 · 0 评论 -
Java中的BoneCP数据库连接池
BoneCP is a fast, free, open-source, Java database connection pool (JDBC Pool) library. If you are familiar with C3P0 and DBCP then you already know what this means. For the rest, this is a library th转载 2015-03-25 11:10:37 · 455 阅读 · 0 评论 -
剖析Disruptor:为什么会这么快?(四)内存屏障
最近我博客文章更新有点慢,因为我在忙着写一篇介绍内存屏障(Memory Barries)以及如何将其应用于Disruptor的文章。问题是,无论我翻阅了多少资料,向耐心的Martin和Mike请教了多少遍,以试图理清一些知识点,可我总是不能直观地抓到重点。大概是因为我不具备深厚的背景知识来帮助我透彻理解。所以,与其像个傻瓜一样试图去解释一些自己都没完全弄懂的东西,还不如在抽象和大量简化的层转载 2015-03-16 15:56:51 · 573 阅读 · 0 评论 -
Mongodb在Linux下的安装和启动和配置
Mongodb的安装与启动下载链接: http://www.mongodb.org/downloads----------------------------------------------------------------------------Linux安装第一步:下载安装包下载版本:2.0.2-rc2下载链接: http://fastdl.mongodb.o转载 2015-03-27 09:52:39 · 447 阅读 · 0 评论 -
java中file类的三种获取路径的方法getPath(),getAbsolutePath(),getCanonicalPath()的比较
最近在详读java核心技术卷1,发现许多不明白的地方,从今天开始在此记录下来,同时也帮助同学们更好的理解这本书: 今天遇到的问题是file类中三种获取路径的方法getPath(),getAbsolutePath(),getCanonicalPath()的比较。首先实验代码如下:原创 2015-03-23 09:23:18 · 20852 阅读 · 0 评论 -
常用JVM参数
分析gc日志后,经常需要调整jvm内存相关参数,常用参数如下-Xms:初始堆大小,默认为物理内存的1/64(;默认(MinHeapFreeRatio参数可以调整)空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制-Xmx:最大堆大小,默认(MaxHeapFreeRatio参数可以调整)空余堆内存大于70%时,JVM会减少堆直到 -Xms的最小限制-Xmn:新生代转载 2015-03-12 14:43:44 · 478 阅读 · 0 评论 -
java连接MySql数据库
1.首先安装MySql2.其次方便操作mysql应该下载一个图形界面的数据库操作软件:例如 mysql-front 或者 EMS Sql manager3.安装ems时会提示设置root用户的密码,这个密码在以后连接数据库时会用的到。例如设置为 "126456"4.其次想通过编译包含数据库操作的函数要在Jcreator中包含 mysql.jar转载 2015-03-11 17:45:09 · 601 阅读 · 0 评论 -
深入理解Java对象序列化
关于Java序列化的文章早已是汗牛充栋了,本文是对我个人过往学习,理解及应用Java序列化的一个总结。此文内容涉及Java序列化的基本原理,以及多种方法对序列化形式进行定制。在撰写本文时,既参考了Thinking in Java, Effective Java,JavaWorld,developerWorks中的相关文章和其它网络资料,也加入了自己的实践经验与理解,文、码并茂,希望对大家有所帮助。转载 2015-03-21 15:42:11 · 314 阅读 · 0 评论 -
java protected 与默认权限的区别
作用域 当前类 同package 子孙类其他package public√ √ √√ protected√√√× friendly(default)√√×× private√×转载 2015-03-09 16:01:59 · 560 阅读 · 0 评论 -
Access denied for user 'root'@'127.0.0.1' (using password: YES)
今天下载了一个项目准备好好学习一下JAVA+MYSQL的组合,当一切准备工作都做好了以后出现了如下错误:上网查询了一下类似错误后认为可能是mysql数据库的mysql库中没有127.0.0.1字段所以登陆不上,然后查询了一下mysql库:发现确实没有127.0.0.1这个字段,毫不犹豫把%改成127.0.0.1。之后测试还是失败。于是原创 2015-03-17 10:28:14 · 6926 阅读 · 0 评论