Java点滴
文章平均质量分 53
slanf
这个作者很懒,什么都没留下…
展开
-
java自增策略小陷阱
首先,来一段小程序,我们先猜猜运行结果是怎样?/** * Created by Song on 2016/8/29. * 自增长测试 */public class Main { public static void main (String [] args){ int num = 0; for (int i =0; i<10;i++){原创 2016-09-01 16:38:53 · 846 阅读 · 0 评论 -
java设计模式之观察者模式
定义:该模式也成为发布订阅模式,定义如下: Define a one-to-many dependency between objects so that when one object changes state, all its dependents are notified and updated automatically. 也就是说,在对象之间建立起一种一对多的关系使得该对象自身状态发生原创 2016-08-30 21:30:18 · 379 阅读 · 0 评论 -
java设计模式之原型模式
首先来看其定义specify the kinds of objects to create using a prototypical instance, and create new objects by coping this protype。一句话总结就是采用复制已有对象实例来产生新的对象实例就被称为原型模式。 java系统中,一个类可以通过复制实现生成新的对象,必须继承Cloneab原创 2016-08-29 21:13:46 · 421 阅读 · 0 评论 -
java设计模式之单例模式
单例模式是最为简单地一种模式,其定义为:Ensure a class has only one instance, and provide a global point of access to it. 一句话就是说,确保某一个类仅仅只有一个实例化对象,并提供全局访问接口。 一个符合单例模式的类,其类图通常如下: public class Singleton { priva原创 2016-08-29 15:51:47 · 464 阅读 · 0 评论 -
多线程IO阻塞中断
关于Java多线程IO阻塞如何中断的问题,基于一个基本条件,关闭任务发生阻塞的底层资源问题,可以中断该多线程任务。对于IO阻塞问题,给出了两个示例,一个是Socket IO,关闭掉Socket IO之后确实可以中断;另一种是System.in ,这种情况下关闭System.in,仍然不能使线程任务发生中断。测试代码如下(这种情况下,只能使用nio才可以):/** * Created by Song原创 2016-10-18 16:22:38 · 1550 阅读 · 0 评论 -
java interface 的几点默认规则
interface中定义的方法和成员变量,默认为public访问权限,且仅能为publicinterface中的成员变量默认为public static final类型,可通过接口名或者实现类名或在实现类中直接调用。一个定义接口的java文件中,interface最多只有一个public,可包含多个不含访问权限修饰词的接口,这些接口的访问权限为包内访问。不能用protected以及private原创 2016-10-06 15:54:16 · 7613 阅读 · 1 评论 -
KNN分类器-Java实现
KNN,即K近邻算法。其基本思想或者说是实现步骤如下: (1)计算样本数据点到每个已知类别的数据集中点的距离 (2)将(1)中得到的距离按递增顺序排列 (3)选取(2)中前K个点(即与当前样本距离最小的K个已知类别的数据点) (4)统计(3)中得到的K个点所在类别的出现频率 (5)返回(4)中出现频率最高的类别作为样本点的预测类别 在给出具体实现代码之前,说明一点原创 2017-01-05 14:42:35 · 2403 阅读 · 0 评论 -
决策树分类器-Java实现
决策树模型,其基本思想类似于if else的结构,即满足什么条件则将它判定为某一类,而这里的决策树的深度就类似于if else的深度。 决策树的问题焦点在于,对于一个拥有多维数据特征的数据点,如何选择合适的分类依据。例如一只鸡(两条腿,有翅膀,没有脚蹼。。。),一只鸭(两条腿,有翅膀,有脚蹼。。),等等,现在来了一只奇怪的生物(两条腿,有翅膀,没有脚蹼。。),如果先根据腿或翅膀来判断的话,根本原创 2017-01-05 15:22:09 · 4113 阅读 · 1 评论 -
Java设计模式之适配器模式
适配器模式,其一般应用场合为系统打补丁。可以用以下这个例子说明:你家的自来水系统(原系统)水管直径都是5cm,原来你家的洗衣机进水口也是5cm,刚好可以将家里的水管接入到洗衣机里,这样用着挺好。可突然有一天,你家原来的洗衣机坏了,市面上能买到的洗衣机进水口都是3cm(新业务)的,这怎么办呢?一般情况下,我们不会把家里运行良好的自来水系统管道来个大改造来适应你这个新洗衣机,而是买个转接器(适配器),一原创 2017-01-18 16:23:45 · 857 阅读 · 0 评论 -
java设计模式之装饰模式
定义:Attach additional responsibilities to an object dynamically keeping the same interface. Decorators provide a flexible alternative to subclassing for extending functionality. 简而言之就是,在保持同一个功能接口不变的情况下动原创 2016-08-31 15:31:13 · 418 阅读 · 0 评论 -
java设计模式之工厂方法模式
**定义:**Define an interface for creating an object, but let subclasses decide which class to instantiate. Factory Method lets a class defer instantiation to subclasses. 也就是说,我们定义一个接口用于创建对象,但让子类去决定实例化哪一个原创 2016-08-31 17:09:16 · 304 阅读 · 0 评论 -
java设计模式之抽象工厂模式
定义:*Provide an interface for creating families of related or dependent objects without specifying their concrete classes. 即为一组相关或相互依赖的对象提供一个实例化接口,而且无需指定他们的具体类。说白了,相对于之前提到的工厂方法模式,抽象工厂模式在创建对象实例时无需传入任原创 2016-09-01 11:07:44 · 596 阅读 · 0 评论 -
Java enum关键字用法小结
enum 指枚举类型,但其与C语言的用法,是有很大不同的。在C语言中,我们一般用enum来定义一组相关的常量。而在Java中,enum能做的事,可远远不止于此。 要了解Java中的enum如何用,只需要明确一点,每个enum元素都是其类的static final实例。除了一些细节不同之外,我们几乎可以把enum修饰的代码块就看做是一个普通的类,而其中的元素就是其static final的实例对原创 2016-10-25 10:12:47 · 4080 阅读 · 1 评论 -
java并发临界资源管理
所谓的并发,一般是指基于多处理器硬件环境的,允许系统在同一时刻执行多件不同的任务逻辑,在单处理器硬件环境下,一般是按照时间片轮转的调度方式,实现宏观意义上的并发,而事实上,在同一个时间点上,仍然只有一件任务在运行,我习惯把这种并发看成“伪并发”,以下所讲的并发临界资源管理,是基于多CPU硬件环境的。即在同一时刻,正在运行的不同CPU可能会访问一些共用的资源,而临界资源管理需要做的就是保证,这些资源的原创 2016-10-16 16:27:22 · 2325 阅读 · 0 评论 -
Java设计模式之访问者模式
访问者模式常用于:业务规则要求遍历多个不同的对象。基于这一点,我们来理解访问者模式,就要容易许多。 其定义为:Represent an operation to be performed on the element of an object structure. Visitors lets you define a new operation without change the cla原创 2016-10-28 16:36:24 · 695 阅读 · 0 评论 -
Java设计模式之策略模式
策略模式是一种及其简洁明了的模式,下面直接摆出它的定义: Define a family of algorithms, encapsulate each one, and make them interchangeable. 即定义并封装一组算法,并保证他们可以相互替换。 其含义在于,不同的策略之间是相互平等的,可以相互替代,这一点可以由接口或抽象类实现。而其封装性,则体现在类似代原创 2016-10-28 20:14:42 · 537 阅读 · 0 评论 -
Java设计模式之责任链模式
责任链模式的设计思想,在于采用“链传递”的模式,将同一类请求,交由一条“责任链”上的多个功能模块进行处理,每个功能模块作为责任链上的一环,请求在链上按照既定顺序依次传递,直到找到一个能够处理该请求的功能模块。在这种模式下,我们能够迅速的在一条责任链中扩展出新的环,从而适应项目对同一类请求的新的处理要求。一种典型的应用环境是,对web应用,通常有VIP用户和普通用户的注册请求,其实这同属于一种请求,只原创 2016-10-23 21:37:50 · 474 阅读 · 0 评论 -
Java设计模式之命令模式
命令模式下的Java功能模块划分主要有以下三个部分,一是调用者,二是命令,三是执行者。通常情况下,调用者通过执行其action()方法,完成某一功能,而action()方法的具体实现,由具体的命令类和执行者类来实现。这种模式要实现的功能在于,对功能模块的封装,使得上层调用者仅需根据命令的不同,来执行命令,而不需要知道命令实现的细节。 首先来看命令模式的类图关系: 类图可以这样来解释:最底原创 2016-10-21 21:17:51 · 442 阅读 · 0 评论 -
java设计模式之代理模式
在代理模式中,主要有两类角色,一是被代理类(RealSubject),二是代理类(Proxy),他们都为同一个抽象主题接口(ISubject)的导出类。从功能上来说,被代理类在设计时,关注该类的核心功能,而代理类则主要关注处理不同代理者之间不同功能的差异或是一些准备工作。打个比方说,客户(被代理类)只需要阐明自己的官司起因原由以及个人诉求,而交由律师(代理类)处理文件呈交等一系列法律程序问题。一个法原创 2016-10-09 21:29:42 · 321 阅读 · 0 评论 -
java设计模式之模板方法模式
定义:Define the skeleton of an algorithm in an operation, deferring some steps to subclasses. Template Method lets subclasses redefine certain steps of an algorithm without changing the algorithm’s stuct原创 2016-09-06 19:20:08 · 302 阅读 · 0 评论 -
java设计模式大纲
根据书籍《设计模式之禅》,个人在学习基于java的相关设计模式,并将学习中的心得与个人理解写于此处,希望大家批评指正。(后面逐步同步所有学习感想链接)单例模式工厂方法模式 抽象工厂模式模板方法模式建造者模式代理模式原型模式中介者模式命令模式责任链模式装饰模式策略模式适配器模式迭代器模式组合模式观察者模式门面模式备忘录模式访问者模式状态模式解释器模式享元模原创 2016-08-29 14:56:35 · 612 阅读 · 0 评论