07 2018 档案
摘要:JDK中关于观察者模式主要了解俩个概念
Observer观察者
Observable事件源;当事件源发生某事件时,有两个事情需要注意 1.里面有一个isChange属性 当为false时不会发通知给观察者。所以一般先setChange为true,然后注册观察者,再调用notifyObservers方法 通知所有观察者中的update方法
阅读全文
摘要:此篇文章主要介绍了事件驱动模式的概念及对应的实现,事件驱动模型其实只是一个概念 ,从具体实现的角度讲可以有详细的方案实现,比较常见的比如观察者模式,发布订阅模式,再详细的方案落地话比如我们熟悉的MQ产品,rocketMq rabbitMq都是基于发布订阅的落地
阅读全文
摘要:通过阻塞队列实现生产者和消费者异步解耦。
它的确是一种实用的设计模式,常用于编写多线程或并发代码。下面是它的一些优点:
它简化的开发,你可以独立地或并发的编写消费者和生产者,它仅仅只需知道共享对象是谁
生产者不需要知道谁是消费者或者有多少消费者,对消费者来说也是一样
生产者和消费者可以以不同的速度执行
分离的消费者和生产者在功能上能写出更简洁、可读、易维护的代码
阅读全文
摘要:tail命令用途是依照要求将指定的文件的最后部分输出到标准设备,通常是终端,通俗讲来,就是把某个档案文件的最后几行显示到终端上,假设该档案有更新,tail会自己主动刷新,确保你看到最新的档案内容。
阅读全文
摘要:服务级别协议(英语:service-level agreement,缩写SLA)也称服务等级协议、服务水平协议,是服务提供商与客户之间定义的正式承诺。服务提供商与受服务用户之间具体达成了承诺的服务指标——质量、可用性,责任
阅读全文
摘要:客户端禁止访问其他外围类的private innerClass类 编译器会提示类对象访问受限
阅读全文
摘要:使用.this,.new
.this 表达的是在内部类对象域内 通过外部类.this 指向了一个在内部类指向外围类对象引用的关系。只有这样可以访问外围类对象的属性与方法
.new表达的是与.this方向相反 当在外围类作用域上 想创建内部类对象 之前通用的做法是 在外围类创建一个指向内部类的引用来创建内部类,但有一种更加快捷的方式
直接外围类.new 就可以表达一个外围类对象引用 。这里必须强调一点 在拥有外部类对象之前是不可能创建外围类对象的,因为内部类对象会暗暗的连接到创建他的外围类对象上
阅读全文
摘要:可以将一个类的定义放在另一个类的内部 这就是内部类。--摘自java编程思想
内部类的出现可以使一些逻辑相关的对象组合在一起,使整个关系更加立体 整体代码更加优雅。而且内部类可以与外部类进行通信即内部类与外部类建立联系之后,可以访问外部类的属性
阅读全文
摘要:代理是基本的设计模式之一,它为你提供额外的或不同的操作而插入的用来代替实际对象的对象。这些对象通常涉及到与实际对象的通信,因此代理通常充当中间人的角色。
静态代理和动态代理的一个显著区别:
静态代理:由程序员创建或特定工具自动生成源代码,再对其编译。在程序运行前,代理类的.class文件就已经存在了。
动态代理:动态代理类的字节码在程序运行时由Java反射机制动态生成,无需程序员手工编写它的源代码。
阅读全文
摘要:编程语言的I/O类库中常用使用流这个抽象概念,它代表任何有能力产出数据的数据源对象或者是有能力接收数据的接受端对象。“流”屏蔽了实际的I/O设备中处理数据的细节。
JAVA类库中的I/O类分成输入和输出两部分,可以在JDK文档里的类层次结构中查看到。通过继承,任何Inputstream或Read派生而来的类都含有名为read()的基本方法,用于读取单个字节或者字节数组。同样,任何自OutputStream或Writer派生而来的类都含有名为write()的基本方法用于写单个字节或字节数组。但是,我们通常不会用到这些方法,它们之所以存在是因为别的类可以使用它们,以便提供更有用的接口。因此在I/O类库中很少使用单一的类来创建流对象,而是通过叠合多个对象来提供所期望的功能[装饰器模式的使用场景]
实际上,JAVA中,“流”类库让人迷惑的主要原因就在于:创建单一的结果流,却需要创建多个对象。
JAVA IO类库中有限定输入有关的类都应该继承自InputStream,与输出有关的类应该继承自OutputStream。
阅读全文
摘要:springmvc 处理content-Type不是application/x-www-form-urlencoded编码的内容;例如content-Type是application/json,
阅读全文
摘要:笔者昨天遇到的背景是这样的 MAVEN A模块有一个子模块 需要依赖B模块下的一个子模块 我在B项目内通过mvn deploy上传子模块 但之后在A模块引用 怎么引用都不行 提示
org.apache.maven.plugin.MojoExecutionException: Failed to deploy artifacts:等异常 后来发现原来B模块deploy光是上传单纯子模块 是不行的 必须整个项目deploy一次,因为其他引用项目在引用它时,它间接也要去寻找父模块 如果找不到 很多包都会找不到。
阅读全文
摘要:File对象目录列表器;经典代码之JAVA File对象;file.list;涉及的方法回调语义及策略模式
阅读全文
摘要:大家知道计算机内部存储信息是通过二进制数字0和1表示。但现实生活中其实更容易让人理解的是字符如字母A,B,C等字符(ASCII中一个字母占一个字节;像磁盘存储的都是字节表示;所以字节是存储容量基本单位);
既而像一些IO操作都是以字节来实现。
在这个大背景下 人们出现了一个所谓的ASCII码最终倒推到二进制。
本文是讲解ASCII与Unicode本质
阅读全文
摘要:对于阿里手册中应用分层思考-manager层该不该分?
阅读全文
摘要:CSRF(Cross-site request forgery)跨站请求伪造是一类常见编程漏洞。对于存在CSRF漏洞的应用/网站,攻击者可以事先构造好URL,只要受害者用户一访问,后台便在用户不知情情况下对数据库中用户参数进行相应修改
只要协议、域名、端口有任何一个不同,都被当作是不同的域,之间的请求就是跨域操作。
阅读全文
摘要:lambda表达式之方法引用提供了非常有用的语法,可以直接引用已有Java类或对象(实例)的方法或构造器
阅读全文
摘要:什么是lambda;优势是什么;为什么JDK8花费了这么长时间弄出这个新特性
阅读全文
摘要:nio 、FileChannel 、 bytebuffer
阅读全文
摘要:git fork 原理 相当于你在原项目的主分支上又建立了一个分支,你可以在该分支上任意修改,如果想将你的修改合并到原项目中时,可以pull request,这样原项目的作者就可以将你修改的东西合并到原项目的主分支上去,这样你就为开源项目贡献了代码,开源项目就会在大家共同的努力下不断壮大和完善 相当
阅读全文
摘要:通过关闭线程底层资源关闭类似synchronized及IO阻塞的情况
阅读全文
摘要:java.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的输入
阅读全文
摘要:wait,notify,notifyAll
阅读全文