03 2017 档案
摘要:首先,@value需要参数,这里参数可以是两种形式:@Value("#{configProperties['t1.msgname']}")或者@Value("${t1.msgname}");其次,下面我们来看看如何使用这两形式,在配置上有什么区别:1、@Value("#{configProperti
阅读全文
摘要:下面是自定义泛型方法的练习: 总结: 编译起判断泛型方法的实际类型参数的过程称为类型推断,类型推断是相对于知觉推断的,其实现方法是一个非常复杂的过程。 根据调用泛型方法时实际传递的参数类型或返回值的类型来推断,具体的规则如下: 当某个类型变量只在整个参数列表中所有参数和返回值中的一处被应用了,那么根
阅读全文
摘要:JVM调优工具 Jconsole,jProfile,VisualVM Jconsole : jdk自带,功能简单,但是可以在系统有一定负荷的情况下使用。对垃圾回收算法有很详细的跟踪。详细说明参考这里 JProfiler:商业软件,需要付费。功能强大。详细说明参考这里 VisualVM:JDK自带,功
阅读全文
摘要:1、配置tomcat-users.xml文件 在tomcat安装目录下找到tomcat-users.xml文件。该文件路径为【tomcat安装根目录】/conf/ 修改文件内容,增加下列内容: [html] view plaincopy <tomcat-users> <role rolename="
阅读全文
摘要:导读 首先说说自己为啥要用maven管理项目,一个直接的原因是:我在自己电脑上开发web项目,每次部署到服务器上时都要经历如下步骤: 每次都这些步骤,非常烦人,而用maven来管理就不需要这些步骤啦,直接在Eclipse里配置maven插件,然后使用maven来自动部署项目,关于怎么自动部署可网上很
阅读全文
摘要:http://stackoverflow.com/questions/5322574/how-can-i-set-chrome-as-default-external-browser-in-eclipse-for-mac 这篇文章说得很好! 开始用得是这个老外的方法,但后来屡试不爽! 运行后没有反应
阅读全文
摘要:本文档结合 SpringMVC、 Mybatis、 MySQL,说明如何实现一个简单的数据库单表 CRUD操作。开发工具使用集成了spring mvc的eclipse(Spring Tool Suite,简称STS)。 基础环境说明 Mac OS X 10.11.5 jre version 1.8.
阅读全文
摘要:这两天需要用到MyBatis的代码自动生成的功能,由于MyBatis属于一种半自动的ORM框架,所以主要的工作就是配置Mapping映射文件,但是由于手写映射文件很容易出错,所以可利用MyBatis生成器自动生成实体类、DAO接口和Mapping映射文件。这样可以省去很多的功夫,将生成的代码copy
阅读全文
摘要:InnoDB引擎的索引和存储结构 在Oracle 和SQL Server等数据库中只有一种存储引擎,所有数据存储管理机制都是一样的。而MySql数据库提供了多种存储引擎。用户可以根据不同的需求为数据表选择不同的存储引擎,用户也可以根据自己的需要编写自己的存储引擎。 1.MySQL主要存储引擎的区别
阅读全文
摘要:一、前言 非关系型数据库(NoSQL = Not Only SQL)的产品非常多,常见的有Memcached、Redis、MongoDB等优秀开源项目,相关概念和资料网上也非常丰富,不再重复描述,本文主要引入Memcached和Redis与淘宝开源Tair分布式存储进行对比测试,由于各自适用场景不同
阅读全文
摘要:最近看了下zookeeper的源码,先整理下leader选举机制 先看几个关键数据结构和函数 服务可能处于的状态,从名字应该很好理解 选票参数,还有Notification,参数也都差不多 选票的比较逻辑也很简单,依次比较几个关键字段 选举流程 1. 发起投票: 首先投票给自己,然后给所有Accep
阅读全文
摘要:本文假设你已经具有一定分布式计算的基础知识。你将在第一部分看到以下内容: ZooKeeper数据模型 ZooKeeper Sessions ZooKeeper Watches 一致性保证(Consistency Guarantees) ZooKeeper数据模型 ZooKeeper Sessions
阅读全文
摘要:初识zookeeper(一)之zookeeper的安装及配置 1、简要介绍 zookeeper是一个分布式的应用程序协调服务,是Hadoop和Hbase的重要组件,是一个树型的目录服务,支持变更推送。除此还可以用作dubbo服务的注册中心。 2、安装 2.1 下载安装 2.2 配置 2.2.1 单点
阅读全文
摘要:线程间的相互作用 线程间的相互作用:线程之间需要一些协调通信,来共同完成一件任务。 Object类中相关的方法有两个notify方法和三个wait方法: http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html 因为wait和not
阅读全文
摘要:问题导读: 1.zookeeper在kafka的作用是什么? 2.kafka中几乎不允许对消息进行“随机读写”的原因是什么? 3.kafka集群consumer和producer状态信息是如何保存的? 4.partitions设计的目的的根本原因是什么? 一、入门 1、简介 Kafka is a d
阅读全文
摘要:ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等。Zookeeper是hadoop的一个子项目,其发展历程无需赘述。在分布式应用中,由于工程师不能很好地使用锁机制,以及基于消息的协调机制不适合在某些
阅读全文
摘要:简介 Apache Kafka是分布式发布-订阅消息系统。它最初由LinkedIn公司开发,之后成为Apache项目的一部分。Kafka是一种快速、可扩展的、设计内在就是分布式的,分区的和可复制的提交日志服务。 Apache Kafka与传统消息系统相比,有以下不同: 它被设计为一个分布式系统,易于
阅读全文
摘要:在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题: 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。 那么有没有一种办法使得线程可以复用,就是执行完一个任务
阅读全文
摘要:同步的方法: 一、同步方法 即有synchronized关键字修饰的方法。 由于java的每个对象都有一个内置锁,当用此关键字修饰方法时, 内置锁会保护整个方法。在调用该方法前,需要获得内置锁,否则就处于阻塞状态。 注: synchronized关键字也可以修饰静态方法,此时如果调用该静态方法,将会
阅读全文
摘要:String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全) 简要的说, String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等
阅读全文
摘要:Java中,是否可以继承String类?为什么? 答案: 不可以,因为String类有final修饰符,而final修饰的类是不能被继承的,实现细节不允许改变。 1 1 详细解析: 1. 关于final修饰符 参考文章: 浅析Java中的final关键字 根据程序上下文环境,Java关键字final
阅读全文
摘要:Java通过Executors提供四种线程池,分别为:newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。newS
阅读全文
摘要:悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。 乐观锁(Op
阅读全文
摘要:11.JVM内存分哪几个区,每个区的作用是什么? Java虚拟机主要分为以下一个区: 方法区:1. 有时候也成为永久代,在该区内很少发生垃圾回收,但是并不代表不发生GC,在这里进行的GC主要是对方法区里的常量池和对类型的卸载2. 方法区主要用来存储已被虚拟机加载的类的信息、常量、静态变量和即时编译器
阅读全文
摘要:web.xml 配置 chapter2-servlet.xml 配置 HelloWorldController 源码 目录结构如下: 页面输出结果为: ${message} 居然是一个字符串,解析器没起作用 查了很多资料,有的人说这个问题很常见。一般来说,只要容器支持Servlet2.4就行。跟Sp
阅读全文
摘要:使用SpringMVC很长时间,一直有个问题没有搞定,就是web.xml中默认欢迎页面转向控制器的问题。 由于答应朋友明天要交个网站,他们对默认页面有这样的要求,并且最好也别用js等等的跳转;所以今天请教了一下jinnianshilongnian 也看了他的一些文章学了不少东西,但是和项目里面的配置
阅读全文
摘要:如下一段配置,熟悉DWR的再熟悉不过了:<servlet> <servlet-name>dwr-invoker</servlet-name> <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class> <init-p
阅读全文
摘要:今天配置java 环境,安装nexus 百度了好久才安装好,所以特别写下来 分享给同样遇到问题的你。废话不多说,直接上步骤 前置条件 :已经安装了JDK 但是这个网站在国内有时候无法访问,所以我给大家提供一个百度云的地址: https://pan.baidu.com/s/1bRvLYQ 2.配置环境
阅读全文
摘要:说明:本文乃学习整理参考而来. 一、Java类加载机制 一、Java类加载机制 1.概述 Class文件由类装载器装载后,在JVM中将形成一份描述Class结构的元信息对象,通过该元信息对象可以获知Class的结构信息:如构造函数,属性和方法等,Java允许用户借由这个Class相关的元信息对象间接
阅读全文
摘要:1、首先使用eclipse创建一个新的maven project,然后把配置好的一些公用的东西放到相应的目录下面 比如说会将一些常用的java代码存放到src/main/java目录下面; 会将一些通用的配置文件放到src/main/resources目录下面; 如果是javeEE工程,还会有一些j
阅读全文
摘要:面向对象编程有三大特性:封装、继承、多态。 封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据。对外界而已它的内部细节是隐藏的,暴露给外界的只是它的访问方法。 继承是为了重用父类代码。两个类若存在IS-A的关系就可以使用继承。,同时继承也为实现多态做了铺垫。那么什
阅读全文
摘要:Java中多态性的实现 什么是多态 下面是多态存在的三个必要条件,要求大家做梦时都能背出来! 多态存在的三个必要条件一、要有继承;二、要有重写;三、父类引用指向子类对象。 多态的好处: 1.可替换性(substitutability)。多态对已存在代码具有可替换性。例如,多态对圆Circle类工作,
阅读全文
摘要:Redis也用了一段时间了,记录一下相关集群搭建及配置详解,方便后续使用查阅。 提纲 Redis安装 整体架构 Redis主从结构搭建 Redis容灾部署(哨兵sentinel) Redis常见问题 Redis安装 整体架构 Redis主从结构搭建 Redis容灾部署(哨兵sentinel) Red
阅读全文
摘要:1. 使用Redis有哪些好处? (1) 速度快,因为数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1) (2) 支持丰富数据类型,支持string,list,set,sorted set,hash (3) 支持事务,操作都是原子性,所谓的原子性就是对数
阅读全文
摘要:Twemproxy是一种代理分片机制,由Twitter开源。Twemproxy作为代理,可接受来自多个程序的访问,按照路由规则,转发给后台的各个Redis服务器,再原路返回。该方案很好的解决了单个Redis实例承载能力的问题。当然,Twemproxy本身也是单点,需要用Keepalived做高可用方
阅读全文