代码改变世界

随笔档案-2018年12月

Java SPI机制学习笔记

2018-12-31 13:36 by GarfieldEr007, 281 阅读, 收藏, 编辑
摘要: 最近在阅读框架源代码时,常常看到 SPI 的子包, 忍不住查了下: Service Provider Interface : 服务提供接口。 JavaSPI 实际上是“基于接口的编程+策略模式+配置文件”组合实现的动态加载机制。具体而言: STEP1. 定义一组接口, 假设是 autocomplet 阅读全文

Java SPI机制简介

2018-12-31 13:35 by GarfieldEr007, 216 阅读, 收藏, 编辑
摘要: SPI 简介 SPI 全称为 (Service Provider Interface) ,是JDK内置的一种服务提供发现机制。 目前有不少框架用它来做服务的扩展发现, 简单来说,它就是一种动态替换发现的机制, 举个例子来说, 有个接口,想运行时动态的给它添加实现,你只需要添加一个实现, 而后,把新加 阅读全文

Java SPI机制

2018-12-31 12:28 by GarfieldEr007, 277 阅读, 收藏, 编辑
摘要: 最近在一个日志标准化的项目中,使用了责任链模式来链接每一个具体的处理Handler.但是在实例化时,需要每一个都去创建实例。如: 这种,涉及了具体的实现类,就违反了可拔插的原则,如果需要替换一种实现,就需要修改代码。老大看到我的代码,直接让用Java spi机制去做。 1. SPI机制简介 Serv 阅读全文

Java SPI机制原理和使用场景

2018-12-31 12:27 by GarfieldEr007, 846 阅读, 收藏, 编辑
摘要: SPI的全名为Service Provider Interface.这个是针对厂商或者插件的。一般来说对于未知的实现或者对扩展开放的系统,通常会把一些东西抽象出来,抽象的各个模块,往往有很多不同的实现方案,比如日志模块的方案,xml解析模块、jdbc模块的方案等。这个可以通过我们的抽象工厂方法来理解 阅读全文

中文代码之Spring Boot集成H2内存数据库

2018-12-29 21:41 by GarfieldEr007, 397 阅读, 收藏, 编辑
摘要: 续前文: 中文代码之Spring Boot添加基本日志, 源码库地址相同. 鉴于此项目中的数据总量不大(即使万条词条也在1MB之内), 当前选择轻量级而且配置简单易于部署的H2内存数据库比较合理. 此文仅演示实现H2的集成, 还未修改服务本身功能. 相关commit在: 集成H2数据库 · prog 阅读全文

H2数据库攻略

2018-12-29 21:40 by GarfieldEr007, 509 阅读, 收藏, 编辑
摘要: H2是一个开源的嵌入式数据库引擎,采用java语言编写,不受平台的限制,同时H2提供了一个十分方便的web控制台用于操作和管理数据库内容。H2还提供兼容模式,可以兼容一些主流的数据库,因此采用H2作为开发期的数据库非常方便。 一、引入Maven依赖 在maven中定义H2数据库的版本属性 添加H2依 阅读全文

JAVA 项目中使用 H2 数据库

2018-12-29 21:39 by GarfieldEr007, 2801 阅读, 收藏, 编辑
摘要: 为什么要使用H2数据库 H2数据库是可以嵌入到JAVA项目中的,因为只需要导入一个jar包即可,所以非常的方便。 项目中导入H2 将H2的jar包放到classpath里即可,我是用的maven,maven的配置如下 <dependency> <groupId>com.h2database</gro 阅读全文

Java内存数据库-H2介绍及实例(SpringBoot)

2018-12-29 21:38 by GarfieldEr007, 4751 阅读, 收藏, 编辑
摘要: 介绍 内存数据库(Embedded database或in-momery database)具有配置简单、启动速度快、尤其是其可测试性等优点,使其成为开发过程中非常有用的轻量级数据库。在spring中支持HSQL、H2和Derby三种数据库。 总的感觉H2很厉害的样子,既然是这样的话,我们先介绍H2 阅读全文

内存数据库-H2简介与实践

2018-12-29 21:37 by GarfieldEr007, 1886 阅读, 收藏, 编辑
摘要: 一、H2数据库介绍 H2数据库地址:http://www.h2database.com/html/main.html H2是一个开源的嵌入式(非嵌入式设备)数据库引擎,它是一个用Java开发的类库,可直接嵌入到应用程序中,与应用程序一起打包发布,不受平台限制。 1.1 与其他开源数据库比较 H2与D 阅读全文

内存数据库之Apache Ingite

2018-12-29 21:36 by GarfieldEr007, 566 阅读, 收藏, 编辑
摘要: 本文中,我们继续深入研究Apache Ignite,同时分享一些我们.Net的编码实践。 首先,Apache Ignite是一个内存数据组织是高性能的、集成化的以及分布式的内存平台,他可以实时地在大数据集中执行事务和计算,和传统的基于磁盘或者闪存的技术相比,性能有数量级的提升。 其中: Data G 阅读全文

H2:开源内存数据库引擎

2018-12-29 21:36 by GarfieldEr007, 2219 阅读, 收藏, 编辑
摘要: 本资源由 伯乐在线 - 刘立华 整理 H2是一个开源的内存数据库。Java编写、快速、小巧(1.5MB jar包)还提供了Web控制台管理数据库内容。 主要功能 非常快速的数据库引擎。 开源。 Java编写。 支持标准SQL、JDBC API。 支持嵌入式模式、服务器模式和集群。 强大的安全功能。 阅读全文

内存数据库技术选型

2018-12-29 21:35 by GarfieldEr007, 392 阅读, 收藏, 编辑
摘要: 最近一段时间研究了内存数据库,总结了一下,分享给大家。我们先从应用场景说起。 一. 内存数据库的应用场景 数据缓存:将经常使用的数据存放在内存中,全局共享,减少和数据库之间的交互频率,提升数据访问速度,主要用于应用程序全局共享缓存。 内存计算:支持通过标准SQL或者LINQ的方式实现对内存数据的聚合 阅读全文

常用内存数据库介绍

2018-12-29 21:33 by GarfieldEr007, 2829 阅读, 收藏, 编辑
摘要: 1.内存数据库简介1.概念2.内存数据库历史和发展3.常用内存数据库 1.SQLite1.SQLite最佳试用场合2.哪些场合适合使用其他的关系型数据库管理系统RDBMS2.Altibase3.Oracle 内存数据库系列 Berkeley DB 和 TimesTen1.Oracle Berkele 阅读全文

使用强大的 Mockito 测试框架来测试你的代码

2018-12-29 21:25 by GarfieldEr007, 555 阅读, 收藏, 编辑
摘要: 原文链接 : Unit tests with Mockito - Tutorial 译文出自 : 掘金翻译计划 译者 : edvardhua 校对者: hackerkevin, futureshine 这篇教程介绍了如何使用 Mockito 框架来给软件写测试用例 1. 预备知识 如果需要往下学习, 阅读全文

手把手教你 Mockito 的使用

2018-12-29 21:22 by GarfieldEr007, 432 阅读, 收藏, 编辑
摘要: 什么是 Mockito Mockito 是一个强大的用于 Java 开发的模拟测试框架, 通过 Mockito 我们可以创建和配置 Mock 对象, 进而简化有外部依赖的类的测试.使用 Mockito 的大致流程如下: 创建外部依赖的 Mock 对象, 然后将此 Mock 对象注入到测试类中. 执行 阅读全文

5分钟了解Mockito

2018-12-29 21:21 by GarfieldEr007, 315 阅读, 收藏, 编辑
摘要: 一、什么是mock测试,什么是mock对象? 先来看看下面这个示例: 从上图可以看出如果我们要对A进行测试,那么就要先把整个依赖树构建出来,也就是BCDE的实例。 一种替代方案就是使用mocks 从图中可以清晰的看出 mock对象就是在调试期间用来作为真实对象的替代品。 mock测试就是在测试过程中 阅读全文

Mockito 简明教程

2018-12-29 21:20 by GarfieldEr007, 410 阅读, 收藏, 编辑
摘要: 什么是 Mock 测试 Mock 测试就是在测试过程中,对于某些不容易构造(如 HttpServletRequest 必须在Servlet 容器中才能构造出来)或者不容易获取比较复杂的对象(如 JDBC 中的ResultSet 对象),用一个虚拟的对象(Mock 对象)来创建以便测试的测试方法。 M 阅读全文

说说初用 Mock 工具测试碰到的坑

2018-12-29 21:18 by GarfieldEr007, 562 阅读, 收藏, 编辑
摘要: 我是一个在校实习生,作为一个程序猿,是个菜鸟中战斗机!对于测试,只写过一点点简单到不能再简单了的 Junit 单元测试的例子(因为当时这足以应付学校课程的内容与要求)。这几天在公司里要真枪实弹做测试的时候,就深深体会到了“书到用时方恨少”这句话的真谛了。没办法,谁叫我当初不多深入的学点呢。于是,在杜 阅读全文

java的mock测试框架

2018-12-29 21:17 by GarfieldEr007, 2991 阅读, 收藏, 编辑
摘要: 无论是敏捷开发、持续交付,还是测试驱动开发(TDD)都把单元测试作为实现的基石。随着这些先进的编程开发模式日益深入人心,单元测试如今显得越来越重要了。在敏捷开发、持续交付中要求单元测试一定要快(不能访问实际的文件系统或数据库),而TDD经常会碰到协同模块尚未开发的情况,而mock技术正是解决这些问题 阅读全文

使用模拟对象(Mock Object)技术进行测试驱动开发

2018-12-29 21:16 by GarfieldEr007, 822 阅读, 收藏, 编辑
摘要: 敏捷开发 敏捷软件开发又称敏捷开发,是一种从上世纪 90 年代开始引起开发人员注意的新型软件开发方法。和传统瀑布式开发方法对比,敏捷开发强调的是在几周或者几个月很短的时间周期,完成相对较小功能,并交付使用。在项目周期内不断改善和增强。 2001 年初,在美国犹他州雪鸟滑雪胜地,17 名编程大师分别代 阅读全文

Mock 模拟测试简介及 Mockito 使用入门

2018-12-29 21:15 by GarfieldEr007, 644 阅读, 收藏, 编辑
摘要: Mock 是什么mock 测试就是在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法。这个虚拟的对象就是mock对象。mock对象就是真实对象在调试期间的代替品。 简单的看一张图 我们在测试类 A 时,类 A 需要调用类 B 和类 C,而类 B 和类 C 阅读全文

JUnit单元测试教程(翻译自Java Code Geeks)

2018-12-29 21:13 by GarfieldEr007, 561 阅读, 收藏, 编辑
摘要: 说明 本教程翻译自Java Code Geeks,原文网址:https://www.javacodegeeks.com/2014/11/junit-tutorial-unit-testing.html#suite_tests。翻译的过程中,有少部分内容是译者添加的解释说明和对原文章中错误地方的修正。 阅读全文

JUnit4单元测试入门教程

2018-12-29 21:12 by GarfieldEr007, 743 阅读, 收藏, 编辑
摘要: 本文按以下顺序讲解JUnit4的使用 下载jar包 单元测试初体验 自动生成测试类 执行顺序 @Test的属性 下载jar包## 下载地址 在github上,把以下两个jar包都下载下来。 下载junit-4.12.jar,junit-4.12-javadoc.jar(文档),junit-4.12- 阅读全文

单元测试利器 JUnit 4

2018-12-29 21:11 by GarfieldEr007, 258 阅读, 收藏, 编辑
摘要: 引言 毋庸置疑,程序员要对自己编写的代码负责,您不仅要保证它能通过编译,正常地运行,而且要满足需求和设计预期的效果。单元测试正是验证代码行为是否满足预期的有效手段之一。但不可否认,做测试是件很枯燥无趣的事情,而一遍又一遍的测试则更是让人生畏的工作。幸运的是,单元测试工具 JUnit 使这一切变得简单 阅读全文

深入探索 JUnit 4

2018-12-29 21:10 by GarfieldEr007, 194 阅读, 收藏, 编辑
摘要: 开始之前 关于本教程 引入 Java 5 注释为 JUnit 带来了显著改变,使它从一个受广大开发人员了解和喜爱的测试框架转变成了一个更为精简但却不那么为人熟知的框架。在本教程中,我将探讨 JUnit 4 最重要的转变,并介绍一些您也许已经耳闻但还没用过的激动人心的新功能。 目标 本教程将循序渐进地 阅读全文

JUnit - 测试框架

2018-12-29 21:10 by GarfieldEr007, 199 阅读, 收藏, 编辑
摘要: 什么是 Junit 测试框架? JUnit 是一个回归测试框架,被开发者用于实施对应用程序的单元测试,加快程序编制速度,同时提高编码的质量。JUnit 测试框架能够轻松完成以下任意两种结合: Eclipse 集成开发环境 Ant 打包工具 Maven 项目构建管理 特性 JUnit 测试框架具有以下 阅读全文

Java泛型之类型擦除

2018-12-29 20:56 by GarfieldEr007, 595 阅读, 收藏, 编辑
摘要: 类型擦除 学过C++模板的,在使用Java泛型的时候,会感觉到有点不疑问,例如:(1)无法定义一个泛型数组、无法调用泛型参数对象中对应的方法(当然,通过extends关键字是可以做到,只是比较麻烦);(2)ArrayList<Integer>和ArrayList<String>在运行时的类型是相同的 阅读全文

第一章 AOP

2018-12-27 22:20 by GarfieldEr007, 197 阅读, 收藏, 编辑
摘要: 关于AOP,通常我们会使用AspectJ注解来做,共有6中切面 前置:@Before 后置:@After 返回值:@AfterReturing 异常:@AfterThrowing 环绕:@Around:可以理解为以上四种的集合 引用(不常用) 比较难理解的两个部分: 连接点:JoinPoint、Pr 阅读全文

白话Spring(基础篇)---AOP(execution表达式)

2018-12-27 22:14 by GarfieldEr007, 348 阅读, 收藏, 编辑
摘要: 作为AOP的最后一节内容,我们来简单总结一下切面表达式上见的书写方法。下面的那内容有参考其他博文,在此先对开源博客的各位大神表示感谢! 1.我们看看其他博文在此的解释及举例 execution(* com.sample.service.impl..*.*(..)) 解释如下: 符号 含义execut 阅读全文

MongoDB资料大全

2018-12-24 21:19 by GarfieldEr007, 247 阅读, 收藏, 编辑
摘要: 摘要: 为了帮助大家进一步了解MongoDB,云栖社区组织翻译了GitHub Awesome MongoDB 资源,涵盖MongoDB中常见的库与工具、应用列表、以及相关的文档、教程等资源。 MongoDB是一个开源的、基于分布式的、面向文档存储的非关系型数据库。是非关系型数据库当中功能最丰富、最像 阅读全文

简明 MongoDB 入门教程

2018-12-24 21:18 by GarfieldEr007, 548 阅读, 收藏, 编辑
摘要: MongoDB 是免费开源的跨平台 NoSQL 数据库,命名源于英文单词 humongous,意思是「巨大无比」,可见开发组对 MongoDB 的定位。与关系型数据库不同,MongoDB 的数据以类似于 JSON 格式的二进制文档存储: 文档型的数据存储方式有几个重要好处:文档的数据类型可以对应到语 阅读全文

MongoDB快速入门

2018-12-24 21:18 by GarfieldEr007, 246 阅读, 收藏, 编辑
摘要: MongoDB 是一个跨平台的,面向文档的数据库,是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。 在高负载的情况下,添加更多的节点,可以保证服务器性能。 MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB 将数据存储为一个文档,数据结构由键值(ke 阅读全文

MongoDb 快速入门教程

2018-12-24 21:17 by GarfieldEr007, 522 阅读, 收藏, 编辑
摘要: MongoDb 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。 它是可扩展的高性能数据存储解决方案,经常被用于非关系型数据的存储,能存储海量的数据。 常见的非关系型数据库还有:Redis,但 MongoDb 比 redis 更具有数据库的特性。 Mon 阅读全文

MongoDB 分布式部署教程

2018-12-24 21:16 by GarfieldEr007, 1669 阅读, 收藏, 编辑
摘要: 本文将介绍如何使用 MongoDB 提供的 Replica Set 和 Shards 功能构建一个分布式 MongoDB 集群。 Replica Set 部署 我们先从部署一个三节点的 Replica Set 开始。 首先,我们要为每个 mongod 实例创建它自己的 dbpath: 然后,我们便可 阅读全文

mongodb分布式集群搭建手记

2018-12-24 21:15 by GarfieldEr007, 480 阅读, 收藏, 编辑
摘要: 一、架构简介 目标单机搭建mongodb分布式集群(副本集 + 分片集群),演示mongodb分布式集群的安装部署、简单操作。 说明在同一个vm启动由两个分片组成的分布式集群,每个分片都是一个PSS(Primary-Secondary-Secondary)模式的数据副本集;Config副本集采用PS 阅读全文

MongoDB单机, 主从, 分布式部署

2018-12-24 21:14 by GarfieldEr007, 489 阅读, 收藏, 编辑
摘要: MongoDB是最易用的NoSQL,比较适合取代MySQL做一些存储,不过不是强一致性的。本文介绍一下MongoDB各种部署方式,并分享一些感受。前两部分“单机部署”和“主从部署”是“分片部署”的基础。 MongoDB单机部署启动下载来的MongoDB包的bin目录下的mongod.exe即可打开M 阅读全文

MongoDB 概念解析

2018-12-24 21:13 by GarfieldEr007, 217 阅读, 收藏, 编辑
摘要: 不管我们学习什么数据库都应该学习其中的基础概念,在mongodb中基本的概念是文档、集合、数据库,下面我们挨个介绍。 下表将帮助您更容易理解Mongo中的一些概念: 通过下图实例,我们也可以更直观的了解Mongo中的一些概念: 数据库 一个mongodb中可以建立多个数据库。 MongoDB的默认数 阅读全文

第一个spring boot程序

2018-12-23 23:03 by GarfieldEr007, 215 阅读, 收藏, 编辑
摘要: 环境: jdk:1.8.0_73 maven:3.3.9 spring-boot:1.2.5.RELEASE(在pom.xml中指定了) 注意:关于spring-boot的支持, 最少使用jdk7(jdk6也可以,可能需要额外配置,没试过,官方推荐jdk8) maven至少使用3.2 1、首先进入一 阅读全文

Druid数据库连接池源码分析

2018-12-23 22:51 by GarfieldEr007, 949 阅读, 收藏, 编辑
摘要: Druid不仅仅是一个数据库连接池,还有很多标签,比如统计监控、过滤器、SQL解析等。既然要分析连接池,那先看看DruidDataSource类 getConnection方法的实现: 返回的是一个DruidPooledConnection,这个类后面再说;另外这里传入了一个long类型maxWai 阅读全文

Java并发编程:Callable、Future和FutureTask

2018-12-23 22:50 by GarfieldEr007, 167 阅读, 收藏, 编辑
摘要: 在前面的文章中我们讲述了创建线程的2种方式,一种是直接继承Thread,另外一种就是实现Runnable接口。 这2种方式都有一个缺陷就是:在执行完任务之后无法获取执行结果。 如果需要获取执行结果,就必须通过共享变量或者使用线程通信的方式来达到效果,这样使用起来就比较麻烦。 而自从Java 1.5开 阅读全文

CountDownLatch与CyclicBarrier

2018-12-23 22:48 by GarfieldEr007, 286 阅读, 收藏, 编辑
摘要: 对于AbstractQueuedSynchronizer衍生出来的并发工具类,这一篇再介绍俩。 场景1:有4个大文件的数据需要统计,最终将所有的统计结果进行加工,得到最后的分析数据。为了加速处理过程,当然是利用多线程:开启4个线程去分别统计每个文件的数据,开启1个线程对之前4个线程的数据加工。 这里 阅读全文

彻底理解Java的feature模式

2018-12-23 22:47 by GarfieldEr007, 5686 阅读, 收藏, 编辑
摘要: 先上一个场景:假如你突然想做饭,但是没有厨具,也没有食材。网上购买厨具比较方便,食材去超市买更放心。 实现分析:在快递员送厨具的期间,我们肯定不会闲着,可以去超市买食材。所以,在主线程里面另起一个子线程去网购厨具。 但是,子线程执行的结果是要返回厨具的,而run方法是没有返回值的。所以,这才是难点, 阅读全文

浅谈Java Future接口

2018-12-23 22:46 by GarfieldEr007, 1325 阅读, 收藏, 编辑
摘要: Java项目编程中,为了充分利用计算机CPU资源,一般开启多个线程来执行异步任务。但不管是继承Thread类还是实现Runnable接口,都无法获取任务执行的结果。JDK 5中引入了Callable和Future,通过它们执行异步任务可以获取执行结果。FutureTask分析JDK 5中获取任务执行 阅读全文

Java中的Future模式原理自定义实现

2018-12-23 22:46 by GarfieldEr007, 1463 阅读, 收藏, 编辑
摘要: 摘要:Future模式类似于js中的ajax等,是一个异步获取数据的机制,这里我把自己的一些形象理解通过代码实现了一下。该机制可以形象的理解为:调用获取数据的方法,首先获得一个没有装数据的空箱子(这个箱子有获取数据和装载数据的机制),至于箱子中的数据是通过另开一个线程去获取的,隔一段时间之后,当我们 阅读全文

Future接口和Callable接口以及FeatureTask详解

2018-12-23 22:41 by GarfieldEr007, 427 阅读, 收藏, 编辑
摘要: 类继承关系 Callable接口 Callable接口中只有一个call()方法,和Runnable相比,该方法有返回值并允许抛出异常。但是这里有一个问题,进程是要通过Thread类去创建的,但是Thread的target必须是实现了Runnable接口的类对象,所以Callable对象无法直接作为 阅读全文

Java Callable接口、Runable接口、Future接口

2018-12-23 22:39 by GarfieldEr007, 378 阅读, 收藏, 编辑
摘要: 1. Callable与Runable区别 Java从发布的第一个版本开始就可以很方便地编写多线程的应用程序,并在设计中引入异步处理。Thread类、Runnable接口和Java内存管理模型使得多线程编程简单直接。 但Thread类和Runnable接口都不允许声明检查型异常,也不能定义返回值。没 阅读全文

Java Callable接口与Future接口的两种使用方式

2018-12-23 22:38 by GarfieldEr007, 809 阅读, 收藏, 编辑
摘要: Java Callable、Future的两种使用方式Callable+Futurepublic class Test { public static void main(String[] args) { ExecutorService executor = Executors.newCachedT 阅读全文

Java多线程之Callable接口与Runnable的实现以及选择

2018-12-23 22:36 by GarfieldEr007, 445 阅读, 收藏, 编辑
摘要: 通过实现Runnable接口的实现 package Thread; import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors; public class RunnableThreadDemo { 阅读全文

Java Callable使用

2018-12-23 22:35 by GarfieldEr007, 1130 阅读, 收藏, 编辑
摘要: 1. 创建线程的三种方式: 继承Thread,重写run方法 实现Runnable接口,重新run方法 实现Callable接口,重写call方法 2. Callable接口实际上是属于Executor框架中的功能类,Callable接口与Runnable接口的功能类似,但提供了比Runnable更 阅读全文

深入理解Java Callable接口

2018-12-23 22:34 by GarfieldEr007, 959 阅读, 收藏, 编辑
摘要: 概述Callable和Runnbale一样代表着任务,区别在于Callable有返回值并且可以抛出异常。其使用如下: public class CallableDemo { static class SumTask implements Callable<Long> { @Override publ 阅读全文

Java Callable和Future简述

2018-12-23 22:33 by GarfieldEr007, 394 阅读, 收藏, 编辑
摘要: 创建线程的两种方式,一种是直接继承Thread,另外一种就是实现Runnable接口。这两种方式都有一个缺陷就是:在执行完任务之后无法获取执行结果。如果需要获取执行结果,就必须通过共享变量或者使用线程通信的方式来达到效果,这样使用起来就比较麻烦。而自从Java 1.5开始,就提供了Callable和 阅读全文

Java多线程之Callable接口的实现

2018-12-23 22:32 by GarfieldEr007, 301 阅读, 收藏, 编辑
摘要: import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; import java.util.concurrent.FutureTask; /* * 一、创建执行线程的方式三:实现 Cal 阅读全文

Java多线程知识-Callable和Future

2018-12-23 22:27 by GarfieldEr007, 238 阅读, 收藏, 编辑
摘要: Callable和Future出现的原因 创建线程的2种方式,一种是直接继承Thread,另外一种就是实现Runnable接口。 这2种方式都有一个缺陷就是:在执行完任务之后无法获取执行结果。 如果需要获取执行结果,就必须通过共享变量或者使用线程通信的方式来达到效果,这样使用起来就比较麻烦。 而自从 阅读全文

C#程序集Assembly学习随笔(增补版,附图)_AX

2018-12-20 09:38 by GarfieldEr007, 278 阅读, 收藏, 编辑
摘要: 上篇我讲了下我对Assembly的初步认知.现在来说说怎么使用已有的Assembly.比如说我在做一个解决方案时,发现你做的解决方案的某个项目中的类的方法(功能)我正好可以用到,哈,那我就不用写类了,直接考过来,不是考代码文件,而是考的那个需要的项目的Assembly....我现在就来解决这个问题. 阅读全文

C#程序集Assembly学习随笔(第一版)_AX

2018-12-20 09:37 by GarfieldEr007, 368 阅读, 收藏, 编辑
摘要: ①什么是程序集?可以把程序集简单理解为你的.NET项目在编译后生成的*.exe或*.dll文件.嗯,这个确实简单了些,但我是这么理解的.详细:http://blog.csdn.net/sws8327/archive/2006/09/21/1244642.aspx②程序集和命名空间的区别?一个程序集可 阅读全文

【.Net】 C#访问修饰符

2018-12-20 09:36 by GarfieldEr007, 338 阅读, 收藏, 编辑
摘要: 一 类的修饰符: C#中类的默认修饰符是internal。1 private 只有对包.NET中的应用程序或库才能访问。2 public 不限制对类的访问。 3 protected 只可以被本类和其继承子类访问; 4 internal 只可以被本集合(Assembly)内所有的类存取。集合是C#语言 阅读全文

访问修饰符(C# 编程指南)

2018-12-20 09:35 by GarfieldEr007, 339 阅读, 收藏, 编辑
摘要: 所有类型和类型成员都具有可访问性级别,该级别可以控制是否可以从你的程序集或其他程序集中的其他代码中使用它们。 可以使用以下访问修饰符在进行声明时指定类型或成员的可访问性: public同一程序集中的任何其他代码或引用该程序集的其他程序集都可以访问该类型或成员。 private只有同一类或结构中的代码 阅读全文

Restful API 架构与设计参考原则

2018-12-18 23:49 by GarfieldEr007, 401 阅读, 收藏, 编辑
摘要: 1. 什么是RESTREST全称是Representational State Transfer,中文意思是表述(编者注:通常译为表征)性状态转移。 它首次出现在2000年Roy Fielding的博士论文中,Roy Fielding是HTTP规范的主要编写者之一。 他在论文中提到:"我这篇文章的写 阅读全文

RESTful API 设计指南

2018-12-18 23:48 by GarfieldEr007, 257 阅读, 收藏, 编辑
摘要: 网络应用程序,分为前端和后端两个部分。当前的发展趋势,就是前端设备层出不穷(手机、平板、桌面电脑、其他专用设备......)。 因此,必须有一种统一的机制,方便不同的前端设备与后端进行通信。这导致API构架的流行,甚至出现"API First"的设计思想。RESTful API是目前比较成熟的一套互 阅读全文

WebService的两种方式SOAP和REST比较

2018-12-18 23:47 by GarfieldEr007, 257 阅读, 收藏, 编辑
摘要: 我的读后感:由于第一次接触WebService,对于很多概念不太理解,尤其是看到各个OpenAPI的不同提供方式时,更加疑惑。如google map api采用了AJAX方式,通过javascript提供API,而淘宝TOP则采用直接的HTTP+XML请求方式,最令我疑惑的是教材上讲的WSDL,UD 阅读全文

如何写一个webService接口

2018-12-18 23:45 by GarfieldEr007, 2166 阅读, 收藏, 编辑
摘要: 第一次写接口的时候,感觉太过笼统,压根不知道接口是个什么东东,,后来自己也查了好多资料,才发现其实接口可以就认为是一个方法,自己多写几种以后就会发现挺简单的,自己整理了一下资料,纯属增强自己的记忆,也方便更多像我这样的菜鸟们参考。。。 下面是我自己写的一个案例,用来同步文件用的这里我用的流,也可以用 阅读全文

webservice接口的开发和调用

2018-12-18 23:44 by GarfieldEr007, 1635 阅读, 收藏, 编辑
摘要: 一、开发webservice接口的方式 1、使用jdk开发 2、使用第三方工具,如cxf、shiro等 二、使用jdk开发webservice接口以及调用 首先定义一个天气预报的接口,Weather @WebService public interface Weather { String quer 阅读全文

基于CXF框架下的SOAP Webservice服务端接口开发

2018-12-18 23:43 by GarfieldEr007, 571 阅读, 收藏, 编辑
摘要: 最近对webservice 进行入门学习,网上也是找了很多的学习资料。总得感觉就是这了解点,那了解点。感觉不够系统,不够容易入门。差不多断断续续看了一个星期了,今天小有成果,把客户端,服务端都搞定了。我先写服务端,在说客户端。 框架:服务端webservice是spring+cxf的maven工程。 阅读全文

WebService—CXF整合Spring实现接口发布和调用过程

2018-12-18 23:42 by GarfieldEr007, 661 阅读, 收藏, 编辑
摘要: 一、CXF整合Spring实现接口发布 发布过程如下: 1、引入jar包(基于maven管理) <!-- cxf --> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-frontend-jaxws</artifac 阅读全文

使用cxf开发webservice接口

2018-12-18 23:41 by GarfieldEr007, 571 阅读, 收藏, 编辑
摘要: 项目中经常用到开发webservice接口,及调用webService接口。这里讲解如何使用cxf开发webService接口。 一、webservice介绍及理解 webservice是一种跨平台,跨语言的规范,用于不同平台,不同语言开发的应用之间的交互。 比如,平台平台淘宝、京东想获取其他快递公 阅读全文

webservice接口与HTTP接口学习笔记

2018-12-18 23:37 by GarfieldEr007, 496 阅读, 收藏, 编辑
摘要: 一、webservice 的概念 Web 是使应用程序可以与平台和编程语言无关的方式进行相互通信的一项技术。Web 服务是一个软件接口,它描述了一组可以在网络上通过标准化的 XML 消息传递访问的操作。它使用基于 XML 语言的协议来描述要执行的操作或者要与另一个 Web 服务交换的数据。一组以这种 阅读全文

C#图解教程 第二十五章 其他主题

2018-12-16 15:03 by GarfieldEr007, 346 阅读, 收藏, 编辑
摘要: 其他主题 概述 在本章中,我会介绍使用C#时的一些重要而又不适合放到其他章节的主题,包括字符串操作、可空类型、Main方法、文档注释以及嵌套类型。 字符串 对于内部计算来说0和1很适合,但是对于人类可读的输入和输出,我们需要字符串。BCL提供了很多能让字符串操作变得更简单的类。 C#预定义的stri 阅读全文

C#图解教程 第二十三章 预处理指令

2018-12-16 15:02 by GarfieldEr007, 231 阅读, 收藏, 编辑
摘要: 预处理指令 什么是预处理指令 源代码指定了程序的定义,预处理指令(preprocessor directive)指示编译器如何处理源代码。例如,在某些情况下,我们可能希望编译器忽略一部分代码,而在其他情况下,我们可能希望代码被编译。预处理指令给了我们这样的选项。 在C和C++中有实际的预处理阶段,此 阅读全文

C#图解教程 第二十四章 反射和特性

2018-12-16 15:02 by GarfieldEr007, 184 阅读, 收藏, 编辑
摘要: Note 类的元数据包含该类的成员和特性 程序的元数据可以理解为程序的结构信息 反射(reflection)用来查看元数据 C#中通过Type类来反射 特性(attribute)用来给类型添加元数据 PS:理解有待加强 反射和特性 元数据和反射 大多数程序都要处理数据,包括读、写、操作和显示数据。( 阅读全文

C#图解教程 第二十二章 异常

2018-12-16 15:01 by GarfieldEr007, 225 阅读, 收藏, 编辑
摘要: 异常 什么是异常 异常是程序中的运行时错误,它违反了系统约束或应用程序约束,或出现了在正常操作时未预料的情形。例如,程序试图除以0或试图写一个只读文件。当这些发生时,系统捕获这个错误并抛出(raise)一个异常。 如果程序没有提供处理该异常的代码,系统会挂起这个程序。例如,下面的代码在试图用0除一个 阅读全文

C#图解教程 第二十章 异步编程

2018-12-16 15:00 by GarfieldEr007, 350 阅读, 收藏, 编辑
摘要: 笔记 启动一个程序,系统在内存中创建一个新进程,进程内部是系统创建的线程,线程可以派生其他线程,这就有了多线程。 进程内的多个线程共享进程的资源,系统为处理器规划的单元是线程。 异步编程可以实现在新线程里面运行一部分代码,或改变代码的执行顺序。 本章介绍了以下几种异步编程方式,它们居多是并发的而非并 阅读全文

C#图解教程 第二十一章 命名空间和程序集

2018-12-16 15:00 by GarfieldEr007, 326 阅读, 收藏, 编辑
摘要: 命名空间和程序集 引用其他程序集 在第1章中,我们在高层次上观察了编译过程。编译器接受源代码文件并生称名称为程序集的输出文件。这一章中,我们将详细阐述程序集以及它们是如何生成和部署的。你还会看到命名空间是如何帮助组织类型的。 在迄今为止所看到的所有程序中,大部分都声明并使用它们自己的类。然而,在许多 阅读全文

C#图解教程 第十九章 LINQ

2018-12-16 14:59 by GarfieldEr007, 339 阅读, 收藏, 编辑
摘要: LINQ 什么是LINQ 在关系型数据库系统中,数据被组织放入规范化很好的表中,并且通过简单且强大的SQL语言来进行访问。因为数据在表中遵从某些严格的规则,所以SQL可以和它们很好的配合使用。 然而,在程序中却与数据库相反,保存在类对象或结构中的数据差异很大。因此,没有通用的查询语言来从数据结构中获 阅读全文

C#图解教程 第十七章 泛型

2018-12-16 14:58 by GarfieldEr007, 461 阅读, 收藏, 编辑
摘要: 泛型 什么是泛型 到现在为止,所有在类声明中用到的类型都是特定的类型–或是程序员定义的,或是语言或BCL定义的。然而,很多时候,我们需要把类的行为提取或重构出来,使之不仅能用到它们编码的数据类型上,还能应用到其他类型上。 泛型可以做到这一点。我们重构代码并额外增加一个抽象层,对于这样的代码来说,数据 阅读全文

C#图解教程 第十八章 枚举器和迭代器

2018-12-16 14:58 by GarfieldEr007, 349 阅读, 收藏, 编辑
摘要: 枚举器和迭代器 枚举器和可枚举类型 第12章中,我们看到可以用foreach语句遍历数组。在本章,我们会进一步探讨数组,来看看为什么它们可以被foreach语句处理。我们还会研究如何使用迭代器为用户自定义类增加该功能。 foreach语句 数组foreach语句为我们依次取出数组中的每个元素。 为什 阅读全文

C#图解教程 第十六章 转换

2018-12-16 14:57 by GarfieldEr007, 356 阅读, 收藏, 编辑
摘要: 转换 什么是转换 要理解什么是转换,让我们先从声明两个不同类型的变量,然后把一个变量(源)的值赋值给另一个变量(目标)的简单示例开始讲起。在赋值前,源的值必须转换成目标类型的值。 转换(conversion)是接受一个类型的值并使用它作为另一个类型的等价值的过程 转换后的值应和源值一样的,但其类型为 阅读全文

C#图解教程 第十四章 事件

2018-12-16 14:56 by GarfieldEr007, 295 阅读, 收藏, 编辑
摘要: 事件 发布者和订阅者 很多程序都有一个共同的需求,既当一个特定的程序事件发生时,程序的其他部分可以得到该事件已经发生的通知。 发布者/订阅者模式(publisher/subscriber pattern)可以满足这种需求。 发布者(publisher) 发布某个事件的类或结构,其他类可以在该事件发生 阅读全文

C#图解教程 第十五章 接口

2018-12-16 14:56 by GarfieldEr007, 324 阅读, 收藏, 编辑
摘要: 接口 什么是接口 接口是指定一组函数成员而不实现它们的引用类型。所以只能类和结构来实现接口。 这种描述比较抽象,直接来看个示例。 下例中,Main方法创建并初始化了一个CA类的对象,并将该对象传递给PrintInfo方法。 只要传入的是CA类型的对象,PrintInfo就能正常工作。但如果传入的是C 阅读全文

C#图解教程 第十三章 委托

2018-12-16 14:55 by GarfieldEr007, 195 阅读, 收藏, 编辑
摘要: 委托 什么是委托 可以认为委托是持有一个或多个方法的对象。当然,正常情况下你不想“执行”一个对象,但委托与典型对象不同。可以执行委托,这时委托会执行它所“持有”的方法。 我们从下面的示例代码开始。具体细节将在本章剩余内容介绍。 代码开始部分声明了一个委托类型MyDel(没错,是委托类型不是委托对象) 阅读全文

C#图解教程 第十一章 枚举

2018-12-16 14:54 by GarfieldEr007, 250 阅读, 收藏, 编辑
摘要: 枚举 枚举 枚举是由程序员定义的类型与类或结构一样。 与结构一样,枚举是值类型,因此直接存储它们的数据,而不是分开存储成引用和数据 枚举只有一种类型的成员:命名的整数值常量 例:枚举示例 每个枚举类型都有一个底层整数类型,默认为int。 每个枚举成员都被赋予一个底层类型的常量值 在默认情况下,编译器 阅读全文

C#图解教程 第十二章 数组

2018-12-16 14:54 by GarfieldEr007, 520 阅读, 收藏, 编辑
摘要: 数组 数组 数组实际上是由一个变量名称表示的一组同类型的数据元素。每个元素通过变量名称和一个或多个方括号中的索引来访问: 让我们从C#中与数组有关的重要定义开始 元素 数组的独立数据项称为元素。数组的所有元素必须是同类型的,或继承自相同的类型 秩/维度 数组可以有任何为正数的维度数。数组的维度数称作 阅读全文

C#图解教程 第十章 结构

2018-12-16 14:53 by GarfieldEr007, 240 阅读, 收藏, 编辑
摘要: 结构 什么是结构 结构是程序员定义的数据类型,与类非常相似。它们有数据成员和函数成员。结构与类的重要区别是: 类是引用类型而结构是值类型 结构是隐式密封的,这意味着它们不能被派生 声明结构的语法与声明类相似 例:Point结构 结构是值类型 和所有值类型一样,结构类型变量含有自己的数据。因此: 结构 阅读全文

C#图解教程 第九章 语句

2018-12-16 14:52 by GarfieldEr007, 352 阅读, 收藏, 编辑
摘要: 语句 什么是语句 语句是描述某个类型或让程序执行某动作的源代码指令。 语句主要有3类 声明语句 声明类型或变量 嵌入语句 执行动作或管理控制流 标签语句 控制跳转 声明语句 声明类型或变量 嵌入语句 执行动作或管理控制流 标签语句 控制跳转 例:语句示例 块在语法上算作单条嵌入语句。任何语法上需要一 阅读全文

C#图解教程 第七章 类和继承

2018-12-16 14:51 by GarfieldEr007, 429 阅读, 收藏, 编辑
摘要: 类和继承 类继承 通过继承我们可以定义一个新类,新类纳入一个已经声明的类并进行扩展。 可以使用已存在的类作为新类的基础。已存在类称为基类(base class),新类称为派生类(derived class)。派生类组成如下: 本身声明中的成员 基类的成员 声明派生类,需要在类名后加入基类规格说明 派 阅读全文

C#图解教程 第八章 表达式和运算符

2018-12-16 14:51 by GarfieldEr007, 427 阅读, 收藏, 编辑
摘要: 表达式和运算符 表达式 本章将定义表达式,并描述C#提供的运算符。 运算符是一个符号,它表示返回单个结果的操作。操作数(operand)指作为运算符输入的数据元素。一个运算符会: 将操作数作为输入 执行某个操作 基于该操作返回一个值 表达式是运算符和操作数的字符串。可以作为操作数的结构有: 字面量 阅读全文

C#图解教程 第六章 深入理解类

2018-12-16 14:50 by GarfieldEr007, 391 阅读, 收藏, 编辑
摘要: 深入理解类 类成员 前两章阐述了9种类成员中的两种:字段和方法。本章将会介绍除事件(第14章)和运算符外的其他类成员,并讨论其特征。 成员修饰符的顺序 字段和方法的声明可以包括许多如public、private这样的修饰符。本章还会讨论许多其他修饰符。多个修饰符一起使用时,它们需要怎么排序呢? [特 阅读全文

C# 图解教程 第五章 方法

2018-12-16 14:49 by GarfieldEr007, 366 阅读, 收藏, 编辑
摘要: 方法 方法的结构 方法是一块具有名称的代码。 可以使用方法的名称从别的地方执行代码,也可以把数据传入方法并接收数据输出。 方法是类的函数成员,主要有两个部分,方法头和方法体。 方法头 指定方法的特征 方法是否返回数据,若返回,返回什么类型 方法的名称 哪种类型的数据可以传递给方法或从方法返回,以及应 阅读全文

C# 图解教程 第四章 类的基本概念

2018-12-16 14:48 by GarfieldEr007, 301 阅读, 收藏, 编辑
摘要: 类的基本概念 类的概述 类是一种活动的数据结构 在面向对象分析和设计产生前,程序员仅把程序当做指令的序列。那时的焦点在指令的组合和优化上。 随着面向对象的出现,焦点转移到组织程序的数据和功能上。 程序的数据和功能被组织为逻辑上相关的数据项和函数的封装集合,并被称为类。 类是一个能存储数据并执行代码的 阅读全文

C# 图解教程 第二章 C#编程概述

2018-12-16 14:47 by GarfieldEr007, 298 阅读, 收藏, 编辑
摘要: C#编程概述 一个简单的C#程序 标识符 标识符是一种字符串,用来命名变量、方法、参数和许多后面将要阐述的其他程序结构。 关键字 所有C#关键字都由小写字母组成,但是.NET类型名使用Pascal大小写约定。 Main:程序的起始点 C#程序的可执行起始点在Main中第一条指令 Main首字母必须大 阅读全文

C# 图解教程 第三章 类型、存储和变量

2018-12-16 14:47 by GarfieldEr007, 263 阅读, 收藏, 编辑
摘要: 类型、存储和变量 C#程序是一组类型声明 C程序是一组函数和数据类型 C++程序是一组函数和类 C#程序是一组类型声明 C#程序或DLL源码是一组一种或多种类型声明 对于可执行程序,类型声明中必须有一个包含Main方法的类 命名空间是一种把相关类型声明分组并命名的方法 类型是一种模板 可以把类型想象 阅读全文

C# 图解教程 第一章 C#和.NET框架

2018-12-16 14:46 by GarfieldEr007, 399 阅读, 收藏, 编辑
摘要: C#和.NET框架 在.NET之前 20世纪90年代,微软平台多数程序员使用VB、C或C++。他们使用的技术都有问题。 由此引出下一代平台的目标 .NET时代 .Net框架特点 多平台 采用行业标准的通信协议 提供更安全的执行环境 CLR(Common Language Runtime,公共语言运行 阅读全文

protobuf中文教程(第一篇)

2018-12-13 12:38 by GarfieldEr007, 678 阅读, 收藏, 编辑
摘要: 一、什么是protocol buffers Protocol buffers是一个灵活的、高效的、自动化的用于对结构化数据进行序列化的协议,与XML相比,Protocol buffers序列化后的码流更小、速度更快、操作更简单。你只需要将要被序列化的数据结构定义一次(译注:使用.proto文件定义) 阅读全文

Protobuf 从入门到实战

2018-12-13 12:38 by GarfieldEr007, 311 阅读, 收藏, 编辑
摘要: 简介 从第一次接触Protobuf到实际使用已经有半年多,刚开始可能被它的名字所唬住,其实就它是一种轻便高效的数据格式,平台无关、语言无关、可扩展,可用于通讯协议和数据存储等领域。 优点 平台无关,语言无关,可扩展; 提供了友好的动态库,使用简单; 解析速度快,比对应的XML快约20-100倍; 序 阅读全文

Protocol Buffers简明教程

2018-12-13 12:36 by GarfieldEr007, 453 阅读, 收藏, 编辑
摘要: 随着微服务架构的流行,RPC框架渐渐地成为服务框架的一个重要部分。在很多RPC的设计中,都采用了高性能的编解码技术,Protocol Buffers就属于其中的佼佼者。Protocol Buffers是Google开源的一个语言无关、平台无关的通信协议,其小巧、高效和友好的兼容性设计,使其被广泛使用 阅读全文

Protobuf 语法指南

2018-12-13 12:35 by GarfieldEr007, 400 阅读, 收藏, 编辑
摘要: 英文: Proto Buffers Language Guide 本指南描述了怎样使用protocol buffer 语法来构造你的protocol buffer数据,包括.proto文件语法以及怎样生成.proto文件的数据访问类。(本文只针对proto2的语法) 本文是一个参考指南——如果要查看 阅读全文

比起 JSON 更方便、更快速、更簡短的 Protobuf 格式

2018-12-13 12:33 by GarfieldEr007, 605 阅读, 收藏, 编辑
摘要: Protocol Buffers 是由 Google 所推出的一格式(後台真硬),你可以把它想像成是 XML 或 JSON 格式,但是更小、更快,而且更簡潔。這能夠幫你節省網路與硬體資源,且你只需要定義一次資料結構,接著就會自動生成符合你程式語言的檔案,讓你能夠直接在你的程式上使用。 而且有趣的是 阅读全文

高效的数据压缩编码方式 Protobuf

2018-12-13 12:32 by GarfieldEr007, 1351 阅读, 收藏, 编辑
摘要: 一. protocol buffers 是什么? Protocol buffers 是一种语言中立,平台无关,可扩展的序列化数据的格式,可用于通信协议,数据存储等。 Protocol buffers 在序列化数据方面,它是灵活的,高效的。相比于 XML 来说,Protocol buffers 更加小 阅读全文

Android Protobuf应用及原理

2018-12-13 12:32 by GarfieldEr007, 1852 阅读, 收藏, 编辑
摘要: 前言 之前一直忙于移动端日志SDK Trojan的开源工作,已十分稳定地运行在饿了么团队App中,集成了日志加密和解密功能。哎呀,允许我卖个狗皮膏药,不用不知道,用了就知道,从此爱不释手,Trojan其实是一个很好用的膏药,甚至是一剂不可或缺的良药,能帮助我们跟踪在线用户,解决疑难杂症。 闲话少说, 阅读全文

Google Protocol Buffer 的使用和原理

2018-12-13 10:34 by GarfieldEr007, 298 阅读, 收藏, 编辑
摘要: 简介 什么是 Google Protocol Buffer? 假如您在网上搜索,应该会得到类似这样的文字介绍: Google Protocol Buffer( 简称 Protobuf) 是 Google 公司内部的混合语言数据标准,目前已经正在使用的有超过 48,162 种报文格式定义和超过 12, 阅读全文

Java NIO系列教程(十二) Java NIO与IO

2018-12-12 22:41 by GarfieldEr007, 191 阅读, 收藏, 编辑
摘要: 原文地址:http://tutorials.jenkov.com/java-nio/nio-vs-io.html 作者:Jakob Jenkov 译者:郭蕾 校对:方腾飞 当学习了Java NIO和IO的API后,一个问题马上涌入脑海: 我应该何时使用IO,何时使用NIO呢?在本文中,我会尽量清晰地 阅读全文

Netty精粹之JAVA NIO开发需要知道的

2018-12-12 22:40 by GarfieldEr007, 340 阅读, 收藏, 编辑
摘要: 学习Netty框架以及相关源码也有一小段时间了,恰逢今天除夕,写篇文章总结一下。Netty是个高效的JAVA NIO框架,总体框架基于异步非阻塞的设计,基于网络IO事件驱动,主要贡献在于可以让用户基于Netty提供的API快速开发高性能、高可靠性的网络应用。这篇文章主要是介绍Netty框架的基础技术 阅读全文

Java NIO 详解(一)

2018-12-12 22:39 by GarfieldEr007, 237 阅读, 收藏, 编辑
摘要: NIO即新的输入输出,这个库是在JDK1.4中才引入的。它在标准java代码中提供了高速的面向块的IO操作。1一、基本概念描述1.1 I/O简介I/O即输入输出,是计算机与外界世界的一个借口。IO操作的实际主题是操作系统。在java编程中,一般使用流的方式来处理IO,所有的IO都被视作是单个字节的移 阅读全文

Java NIO 的前生今世 之四 NIO Selector 详解

2018-12-12 22:38 by GarfieldEr007, 335 阅读, 收藏, 编辑
摘要: Selector Selector 允许一个单一的线程来操作多个 Channel. 如果我们的应用程序中使用了多个 Channel, 那么使用 Selector 很方便的实现这样的目的, 但是因为在一个线程中使用了多个 Channel, 因此也会造成了每个 Channel 传输效率的降低.使用 Se 阅读全文

C#中的命名空间namespace与Java中的包package之间的区别

2018-12-12 22:04 by GarfieldEr007, 1991 阅读, 收藏, 编辑
摘要: Java 包被用来组织文件或公共类型以避免类型冲突。包结构可以映射到文件系统。 可能被替换: 软件包没有别名。你必须使用导入语句或完全限定名称来提及特定的类型。 要么 另一个源文件: 包不能嵌套。一个源文件只能有一个包语句。 C# 命名空间被用来组织程序,既作为一个程序的“内部”组织系统,也作为一个 阅读全文

C#命名空间详解namespace

2018-12-12 22:03 by GarfieldEr007, 3085 阅读, 收藏, 编辑
摘要: 命名空间是一个域,这在个域中所有的类型名字必须是唯一的,不同的类型分组归入到层次化的命名空间, 命名空间的好处是:1、避免名字冲突,2、便于查找类型名字。 如:System.secruity.Cryptogtaphy. 下面介绍namespace 关键字的使用。 namespace test { c 阅读全文

C++智能指针简单剖析

2018-12-12 22:02 by GarfieldEr007, 238 阅读, 收藏, 编辑
摘要: 导读 最近在补看《C++ Primer Plus》第六版,这的确是本好书,其中关于智能指针的章节解析的非常清晰,一解我以前的多处困惑。C++面试过程中,很多面试官都喜欢问智能指针相关的问题,比如你知道哪些智能指针?shared_ptr的设计原理是什么?如果让你自己设计一个智能指针,你如何完成?等等… 阅读全文

百度2014研发类校园招聘笔试题解答

2018-12-12 22:01 by GarfieldEr007, 304 阅读, 收藏, 编辑
摘要: 先总体说下题型,共有3道简答题,3道算法编程题和1道系统设计题,题目有难有易,限时两小时完成。 一、简答题 1. 动态链接库和静态链接库的优缺点 2. 轮询任务调度和可抢占式调度有什么区别? 3. 列出数据库中常用的锁及其应用场景 二、算法设计题 1. 给定N是一个正整数,求比N大的最小“不重复数” 阅读全文

我的个人知识管理工具一览及相关经验技巧

2018-12-12 22:00 by GarfieldEr007, 410 阅读, 收藏, 编辑
摘要: 在这个信息大爆炸的时代,相信每个人每天都接收很多信息,有用的无用的一大堆。信息和知识不能混为一谈,有用的信息才能转化为知识,有些知识可能会影响你的一生,因此如何保存和管理知识,是个人知识管理的一个非常重要而不可懈怠的问题。擅用各类知识管理工具,可以让一个人管理知识达到事半功倍的效果,相信每个人每天都 阅读全文

Java中可变长参数的使用及注意事项

2018-12-12 21:58 by GarfieldEr007, 289 阅读, 收藏, 编辑
摘要: 在Java5 中提供了变长参数(varargs),也就是在方法定义中可以使用个数不确定的参数,对于同一方法可以使用不同个数的参数调用,例如print("hello");print("hello","lisi");print("hello","张三", "alexia");下面介绍如何定义可变长参数 阅读全文

Java构造和解析Json数据的两种方法详解一

2018-12-12 21:57 by GarfieldEr007, 1371 阅读, 收藏, 编辑
摘要: 在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别。下面首先介绍用json-lib构造和解析Json数据的方法示例。 用org.son构造和解析Json数据的方法详解请参见我下一篇博文:Java构造 阅读全文

Java transient关键字使用小记

2018-12-12 21:56 by GarfieldEr007, 200 阅读, 收藏, 编辑
摘要: 哎,虽然自己最熟的是Java,但很多Java基础知识都不知道,比如transient关键字以前都没用到过,所以不知道它的作用是什么,今天做笔试题时发现有一题是关于这个的,于是花个时间整理下transient关键字的使用,涨下姿势~~~好了,废话不多说,下面开始: 1. transient的作用及使用 阅读全文

精选30道Java笔试题解答

2018-12-12 21:55 by GarfieldEr007, 406 阅读, 收藏, 编辑
摘要: 都是一些非常非常基础的题,是我最近参加各大IT公司笔试后靠记忆记下来的,经过整理献给与我一样参加各大IT校园招聘的同学们,纯考Java基础功底,老手们就不用进来了,免得笑话我们这些未出校门的孩纸们,但是IT公司就喜欢考这些基础的东西,所以为了能进大公司就~~~当复习期末考吧。花了不少时间整理,在整理 阅读全文

Java构造和解析Json数据的两种方法详解二

2018-12-12 21:55 by GarfieldEr007, 214 阅读, 收藏, 编辑
摘要: 在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别。下面接着介绍用org.json构造和解析Json数据的方法示例。 用json-lib构造和解析Json数据的方法详解请参见我上一篇博文:Java构 阅读全文

Visual Studio最好用的快捷键(你最喜欢哪个)

2018-12-12 21:53 by GarfieldEr007, 327 阅读, 收藏, 编辑
摘要: 每次在网上搜关于VS有哪些常用快捷键的时候,出来的永远是一串长的不能再长的列表,完全没体现出“常用”二字,每次看完前面几个就看不下去了,相信大家都 有这种感觉。其实我们平时用的真的只有很少的一部分,借用一句“二八原则”——其中20%的常用快捷键就可以完成你80%的任务了,当然这里20%不准 确,只是 阅读全文

MyBatis Cache配置

2018-12-12 12:37 by GarfieldEr007, 900 阅读, 收藏, 编辑
摘要: MyBatis Cache配置 MyBatis提供了一级缓存和二级缓存 配置 全局配置 Mapper配置 cache配置 二级缓存整体管理结构: MapperA.xml MapperB.xml MapperC.xml 如下: from: https://www.cnblogs.com/jabnih/ 阅读全文

FreeMarker:Java模板引擎

2018-12-11 21:52 by GarfieldEr007, 311 阅读, 收藏, 编辑
摘要: 本资源由 伯乐在线 - 黄余粮 整理 FreeMarker 是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写。FreeMarker被设计用来生成HTML Web页面,特别是基于MVC模式的应用程序。虽然FreeMarker具有一些编程的能力,但通常由Java程序准备要显示的数据 阅读全文

Freemarker实例教程

2018-12-11 21:49 by GarfieldEr007, 334 阅读, 收藏, 编辑
摘要: 一、Freemarker的介绍 Freemarker 是一款模板引擎,是一种基于模版生成静态文件的通用 工具,它是为java程序员提供的一个开发包,或者说是一个类库,它不是面向最终用户的,而是为程序员提供了一款可以嵌入他们开发产品的应用程序。 Freemarker 是使用纯java编写的,为了提高页 阅读全文

CopyOnWriteArrayList你都不知道,怎么拿offer?

2018-12-11 13:56 by GarfieldEr007, 225 阅读, 收藏, 编辑
摘要: 前言 只有光头才能变强 前一阵子写过一篇COW(Copy On Write)文章,结果阅读量很低啊...COW奶牛!Copy On Write机制了解一下 可能大家对这个技术比较陌生吧,但这项技术是挺多应用场景的。除了上文所说的Linux、文件系统外,其实在Java也有其身影。 大家对线程安全容器可 阅读全文

线程安全的CopyOnWriteArrayList介绍

2018-12-11 13:55 by GarfieldEr007, 240 阅读, 收藏, 编辑
摘要: 证明CopyOnWriteArrayList是线程安全的 先写一段代码证明CopyOnWriteArrayList确实是线程安全的。 ReadThread.java import java.util.List; public class ReadThread implements Runnable 阅读全文

谈谈Copy-on-Write容器

2018-12-11 13:54 by GarfieldEr007, 380 阅读, 收藏, 编辑
摘要: 1、简介 Copy-On-Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改,这是一种延时懒惰策略。从JDK1.5开始Java并发包里提供了两个使用CopyOnWrit 阅读全文

CopyOnWriteArrayList与Collections.synchronizedList的性能对比

2018-12-11 13:53 by GarfieldEr007, 282 阅读, 收藏, 编辑
摘要: 列表实现有ArrayList、Vector、CopyOnWriteArrayList、Collections.synchronizedList(list)四种方式。 1 ArrayList ArrayList是非线性安全,此类的 iterator 和 listIterator 方法返回的迭代器是快速 阅读全文
点击右上角即可分享
微信分享提示