在Java IO中运用了装饰器模式,inputStream作为抽象类,其下有几个实现类,表示从不同的数据源输入: byteArrayInputStream fileInputStream StringBufferInputStream PipedInputStream,从管道产生输入; SequenceInputStream,可将其他流收集合并到一个流内; FilterInputStream作为装
有五种自动装配的方式,可以用来指导 Spring 容器用自动装配方式来进行依赖注入。 1、no 默认的方式是不进行自动装配,通过显式设置 ref 属性来进行装配。第 402 页 共 485 页 2、byName 通过参数名 自动装配,Spring 容器在配置文件中发现 bean 的 autowire 属性被设置成 byname,之后容器试图匹配、装配和该 bean 的属 性具有相同名字的 bean
1、工厂模式好处 良好的封装性、代码结构清晰; 扩展性好,如果想增加一个产品,只需扩展一个工厂类即可; 典型的解耦框架; 2、在哪里使用? 需要生成对象的地方; 不同数据库的访问;
1、观察者模式是一种一对多的依赖关系,让多个观察者同时监听某一主题对象。当这个主题对象发生变化时,会通知所有观察者对象,使它们能够自动更新自己。 2、JAVA提供的对观察者模式的支持 在JAVA语言的java.util库里面,提供了一个Observable类以及一个Observer接口,构成JAVA语言对观察者模式的支持。 (1)Observer接口 这个接口只定义了一个方法,即update()方
保证程序只有一个对象的实例,叫做单例模式; 内部类的方式实现单例模式,是线程安全的; 双重验证方式实现单例模式也是线程安全的;
1、什么是设计模式? 设计模式是解决软件开发某些特定问题而提出的一些解决方案,也可以理解为解决问题的一些固定思路。 通过设计模式可以帮助我们增强代码的可复用性、可扩展性、灵活性。 我们使用设计模式的最终目的是实现代码的高内聚、低耦合。 2、设计模式的七大原则 单一职责原则 接口隔离原则 依赖倒转原则 里式替换原则 开闭原则 迪米特法则 合成复用原则 3、你是否在你的代码里面使用过任何设计模式? (
1、单例模式 作用:保证类只有一个实例。 JDK中体现:Runtime类。 2、静态工厂模式 作用:代替构造函数创建对象,方法名比构造函数清晰。 JDK中体现:Integer.valueOf、Class.forName 3、抽象工厂 作用:创建某一种类的对象。 JDK中体现:Java.sql包。 4、原型模式 clone(); 原型模式的本质是拷贝原型来创建新的对象,拷贝是比new更快的创建对象的
发送方需要等缓冲区满才能发送出去,造成粘包; 接收方不及时接收缓冲区的包,造成粘包;
WebSocket是一个允许Web应用程序(通常指浏览器)与服务器进行双向通信的协议。HTML5的WebSocket API主要是为浏览器端提供了一个基于TCP协议实现全双工通信的方法。 WebSocket优势: 浏览器和服务器只需要要做一个握手的动作,在建立连接之后,双方可以在任意时刻,相互推送信息。同时,服务器与客户端之间交换的头信息很小。
1、jsonp原理详解——终于搞清楚jsonp是啥了 2、最流行的跨域方案cors cors是目前主流的跨域解决方案,跨域资源共享(CORS) 是一种机制,它使用额外的 HTTP 头来告诉浏览器 让运行在一个 origin (domain) 上的Web应用被准许访问来自不同源服务器上的指定的资源。当一个资源从与该资源本身所在的服务器不同的域、协议或端口请求一个资源时,资源会发起一个跨域 HTTP
跨站请求伪造(英语:Cross-site request forgery),也被称为 one-click attack 或者 session riding,通常缩写为 CSRF 或者 XSRF, 是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。跟跨网站脚本(XSS)相比,XSS 利用的是用户对指定网站的信任,CSRF 利用的是网站对用户网页浏览器的信任。 1、攻击细节 跨站
xss(Cross Site Scripting),即跨站脚本攻击,是一种常见于web应用程序中的计算机安全漏洞。指的是在用户浏览器上,在渲染DOM树的时候,执行了不可预期的JS脚本,从而发生了安全问题。 XSS就是通过在用户端注入恶意的可运行脚本,若服务端对用户的输入不进行处理,直接将用户的输入输出到浏览器,然后浏览器将会执行用户注入的脚本。 所以XSS攻击的核心就是浏览器渲染DOM的时候将文本
get请求参数是连接在url后面的,而post请求参数是存放在requestbody内的; get请求因为浏览器对url长度有限制,所以参数个数有限制,而post请求参数个数没有限制; 因为get请求参数暴露在url上,所以安全方面post比get更加安全; get请求只能进行url编码,而post请求可以支持多种编码方式; get请求参数会保存在浏览器历史记录内,post请求并不会; get请求
因为客户端和服务端都要确认连接,①客户端请求连接服务端;②针对客户端的请求确认应答,并请求建立连接;③针对服务端的请求确认应答,建立连接; 两次无法确保A能收到B的数据;
TCP是传输控制协议,UDP是用户数据表协议; TCP长连接,UDP无连接; UDP程序结构较简单,只需发送,无须接收; TCP可靠,保证数据正确性、顺序性;UDP不可靠,可能丢数据; TCP适用于少量数据,UDP适用于大量数据传输; TCP速度慢,UDP速度快;