随笔分类 -  java-advanced

1 2 下一页
插入式注解处理器
摘要:Lombok就用到插入式注解处理器,Lombok通过注解的方式,在编译时自动为属性生成构造器、getter/setter、equals、hashcode、toString等方法。 插入式注解处理器是JSR-269中定义的API,该API可以在编译期对代码中的特定注解进行处理,从而影响到前端编译器的工 阅读全文
posted @ 2020-07-22 14:08 duanxz 阅读(1290) 评论(0) 推荐(0) 编辑
java的reflection和introspector
摘要:内省 内省是 Java 语言对 Bean 类属性、事件的一种处理方法(也就是说给定一个javabean对象,我们就可以得到/调用它的所有的get/set方法)。例如类 A 中有属性 name, 那我们可以通过 getName,setName 来得到其值或者设置新的值。通过 getName/setNa 阅读全文
posted @ 2015-12-27 22:36 duanxz 阅读(1101) 评论(0) 推荐(0) 编辑
常见hash算法的原理
摘要:散列表,它是基于快速存取的角度设计的,也是一种典型的“空间换时间”的做法。顾名思义,该数据结构可以理解为一个线性表,但是其中的元素不是紧密排列的,而是可能存在空隙。 散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映 阅读全文
posted @ 2015-12-07 15:31 duanxz 阅读(20771) 评论(0) 推荐(0) 编辑
对JAVA集合进行遍历删除时务必要用迭代器
摘要:java集合遍历删除的方法: 1、当然这种情况也是容易解决,实现方式就是讲遍历与移除操作分离,即在遍历的过程中,将需要移除的数据存放在另外一个集合当中,遍历结束之后,统一移除。 2、使用Iterator遍历删除。 使用Iterator遍历删除的原因: Iterator 是工作在一个独立的线程中,并且 阅读全文
posted @ 2015-08-22 15:26 duanxz 阅读(6086) 评论(0) 推荐(0) 编辑
类装载器ClassLoader
摘要:类装载器工作机制 类装载器就是寻找类的节码文件并构造出类在JVM内部表示对象的组件。在Java中,类装载器把一个类装入JVM中,要经过以下步骤: [1.]装载:查找和导入Class文件; [1.]装载:查找和导入Class文件; [2.]链接:执行校验、准备和解析步骤,其中解析步骤是可以选择的: [ 阅读全文
posted @ 2015-08-09 17:53 duanxz 阅读(720) 评论(0) 推荐(0) 编辑
Java SE 6 新特性: Java DB 和 JDBC 4.0
摘要:http://www.ibm.com/developerworks/cn/java/j-lo-jse65/index.html长久以来,由于大量(甚至几乎所有)的 Java 应用都依赖于数据库,如何使用 Java 语言高效、可靠、简洁地访问数据库一直是程序员们津津乐道的话题。新发布的 Java SE... 阅读全文
posted @ 2015-08-06 15:42 duanxz 阅读(883) 评论(1) 推荐(0) 编辑
面向对象开发方法优点
摘要:首先来看看结构化的软件开发方法1、结构化的软件开发方法 SASD方法,也可称为面向功能的软件开发方法或者面向数据流的软件开发方法。SASD方法是20世纪80年代使用最广泛的软件开发方法。它首先用结构化分析(Structure Analysis,SA)对软件进行需求分析,然后用结构化设计(Struc... 阅读全文
posted @ 2015-08-06 15:41 duanxz 阅读(10993) 评论(0) 推荐(0) 编辑
Java SE 6 新特性: 对脚本语言的支持
摘要:2006 年底,Sun 公司发布了 Java Standard Edition 6(Java SE 6)的最终正式版,代号 Mustang(野马)。跟 Tiger(Java SE 5)相比,Mustang 在性能方面有了不错的提升。与 Tiger 在 API 库方面的大幅度加强相比,虽然 Musta... 阅读全文
posted @ 2015-08-06 15:41 duanxz 阅读(862) 评论(0) 推荐(0) 编辑
RocketMQ之八:水平扩展及负载均衡详解
摘要:RocketMQ是一个分布式具有高度可扩展性的消息中间件。本文旨在探索在broker端,生产端,以及消费端是如何做到横向扩展以及负载均衡的。 NameServer集群 提供轻量级的服务发现和路由。每个NameServer 记录完整的路由信息,提供等效的读写服务,并支持快速存储扩展。 就是一个注册中心 阅读全文
posted @ 2015-08-06 15:38 duanxz 阅读(4724) 评论(1) 推荐(0) 编辑
cglib简介与callback解析
摘要:简介 cglib是一套java动态代理实现框架,cglib被应用到spring app,hibernate等高级业务框架,spring事务在业务实现类未实现接口的情况下也会使用该技术。 实际上,cglib基于继承实现,这也就意味着final,private相关的method无法被代理(在《Sprin 阅读全文
posted @ 2015-04-09 18:06 duanxz 阅读(4071) 评论(0) 推荐(1) 编辑
JVM的启动流程
摘要:JVM工作原理和特点主要是指操作系统装入JVM,是通过jdk中Java.exe来完成,通过下面4步来完成JVM环境. 1.创建JVM装载环境和配置 2.装载JVM.dll 3.初始化JVM.dll并挂界到JNIENV(JNI调用接口)实例 4.调用JNIEnv实例装载并处理class类。 一.JVM 阅读全文
posted @ 2014-05-16 16:50 duanxz 阅读(994) 评论(0) 推荐(0) 编辑
微服务理论之三:RPC框架原理
摘要:RPC调用是面向服务架构场景下进行服务间调用的常用组件,一个完整的RPC调用的流程如图1所示: 图1 RPC调用流程 为了方便RPC调用者和服务者的开发,开发者们开发了很多RPC框架。比较有名的RPC框架有Google的gRPC、Facebook的Thrift 和 阿里的 Dubbo 等。这些框架在 阅读全文
posted @ 2014-04-04 15:49 duanxz 阅读(1430) 评论(1) 推荐(0) 编辑
从Decorator,Adapter模式看Java的IO库
摘要:我想任何一本介绍模式的书在讲到Decorator模式的时候不能不提到它的实际应用--在Java/IO库里面的应用,>这本书也不例外,有点不一样的是,这本书在介绍的时候有个专题,是从两个模式来看Java/IO库,完这个专题后,个人感觉对Java/IO库有了全新的认识同时也加深了Decorator模式跟Adapter适配器模式的理解,现和大家分享下这个在我看来很伟大的成果,同时说明下,以下大部分文字跟图片是来自>这本书。 一.引子(概括地介绍Java的IO) 无论是哪种编程语言,输入跟输出都是重要的一部分,Java也不例外,而且Java将输入/输出的功能和使用范畴做了很大的扩充。它采用 阅读全文
posted @ 2014-03-30 17:24 duanxz 阅读(755) 评论(0) 推荐(0) 编辑
jdk1.6新特性
摘要:1.Web服务元数据Java 里的Web服务元数据跟微软的方案基本没有语义上的区别,自从JDK5添加了元数据功能(Annotation)之后,SUN几乎重构了整个J2EE体 系, 由于变化很大,干脆将名字也重构为Java EE, Java EE(当前版本为5.0)将元数据纳入很多规范当中,这其中就包括Web Services的相关规范, 加入元数据之后的Web Services服务器端编程模型就跟上面看到的C#片断差不多了, 这显然比以前的JAX-RPC编程模型简单(当然, Axis的编程模型也很简单).这里要谈的Web服务元数据(JSR 181)只是Java Web 服务规范中的一个,它跟C 阅读全文
posted @ 2014-03-27 20:35 duanxz 阅读(504) 评论(0) 推荐(0) 编辑
Spring之25:SingletonBeanRegistry&DefaultSingletonBeanRegistry
摘要:此接口是针对Spring中的单例Bean设计的。提供了统一访问单例Bean的功能,BeanFactory可实现此接口以提供访问内部单例Bean的能力。 DefaultSingletonBeanRegistry实现类 共享bean实例的通用注册表,实现了SingletonBeanRegistry. 允 阅读全文
posted @ 2014-03-27 17:13 duanxz 阅读(778) 评论(0) 推荐(0) 编辑
spring容器扩展功能之一:spring加载ApplicationContext.xml的四种方式
摘要:容器加载Bean的常见两个类ApplicationContext和BeanFactory, 一、首先,看看spring中加载配置在xml中的Bean对象到容器 spring 中加载xml配置文件的方式,好像有4种, xml是最常见的spring 应用系统配置源。Spring中的几种容器都支持使用xm 阅读全文
posted @ 2014-03-27 16:59 duanxz 阅读(1308) 评论(0) 推荐(0) 编辑
JAVA深复制(深克隆)与浅复制(浅克隆)
摘要:一、为什么需要克隆 二、克隆的实现方式 2.1、浅度克隆(浅复制) 2.2、深度克隆(深复制) 2.3、使用对象序列化和反序列化实现深度克隆 2.4、常见框架中的几种克隆 2.4.1、常见框架中的克隆介绍 2.4.2、常见框架中的克隆的性能对比 三、Java的clone()方法的实现要点 一、为什么 阅读全文
posted @ 2014-01-07 10:33 duanxz 阅读(1105) 评论(0) 推荐(0) 编辑
Java中"Test(Object...args){}"方法声明的理解——J2SE5的“Vararg
摘要:J2SE 1.5提供了“Varargs”机制。借助这一机制,可以定义能和多个实参相匹配的形参。从而,可以用一种更简单的方式,来传递个数可变的实参。本文介绍这一机制的使用方法,以及这一机制与数组、泛型、重载之间的相互作用时的若干问题。到J2SE 1.4为止,一直无法在Java程序里定义实参个数可变的方法——因为Java要求实参(Arguments)和形参(Parameters)的数量和类 型都必须逐一匹配,而形参的数目是在定义方法时就已经固定下来了。尽管可以通过重载机制,为同一个方法提供带有不同数量的形参的版本,但是这仍然不能达到 让实参数量任意变化的目的。然而,有些方法的语义要求它们必须能接受 阅读全文
posted @ 2013-02-18 09:41 duanxz 阅读(375) 评论(0) 推荐(0) 编辑
为什么Java匿名内部类中的方法参数必须定义为final
摘要:今天在做一个功能,就是用户在注册后给他发送帐号激活邮件。在做这个功能的时候,我用匿名内部类来创建一个线程发送激活邮件,代码如下: MVC框架用的是SpringMVC,创建多线程的时候使用了Google的 guava 工具包。从代码中可以看到,AbstractExecutionThreadServic 阅读全文
posted @ 2013-01-17 12:55 duanxz 阅读(2328) 评论(0) 推荐(0) 编辑
GET请求中参数含有某些特殊字符的处理
摘要:HTTP标准的两种请求方式:Post和Get,关于这两种请求方式的区别相关资料云集,这里不做阐述。然而,你是否注意到:我们通过get方式从浏览器的地址栏传递数据给服务器,当参数的值中含有某些特殊转义字符的时候,没经过些许处理将得不到预期的结果。例如:当我们的请求的url为:http://localhost:8080/index.jsp?parameter=kalman03#kalman#1或许你预期在服务器端获得的parameter的结果为kalman03#kalman#1,错!!!实际上得到parameter的值为kalman03。这究竟是为什么呢?原因:parameter的值含有特殊字符# 阅读全文
posted @ 2013-01-11 10:06 duanxz 阅读(24529) 评论(0) 推荐(0) 编辑

1 2 下一页

点击右上角即可分享
微信分享提示