![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA
iteye_4653
这个作者很懒,什么都没留下…
展开
-
中英文混合排序
好久没有写博客了,期间在做桌面云,被要求保密哈。不过最近在写一个android程序,需要实现一个中英文混合排序。不说了,直接代码; HanYuUtil.java [code="java"] import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.pinyin4j.format.HanyuPinyinCaseT...2015-11-02 19:02:33 · 430 阅读 · 0 评论 -
java实现简单AOP
用java实现AOP主要用到了java反射机制,java动态代理,java注释。分别对应java.lang.reflect;java.lang.annotation包。关于自定义注释这里不再讲,请看代码: 定义Aop注释 [code="java"] import java.lang.annotation.*; @Target(ElementType.METHOD) @Retention(...2014-08-28 10:25:06 · 168 阅读 · 0 评论 -
反射机制实现方法调用
[code="java"] import java.lang.reflect.*; class Person { public void sayBye(){System.out.println("bye bye");} public void sayHello(String name){System.out.println("hello "+name);} public void...2014-08-25 19:33:15 · 84 阅读 · 0 评论 -
一个自定义注释的例子
[code="java"]import java.lang.annotation.*; import java.lang.reflect.*; @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) @interface MyAnn { String name() ; String event(); ...2014-08-19 10:17:45 · 60 阅读 · 0 评论 -
SAX
java中提供了一系列的接口用于自定义解析xml的文件,中DefaultHandler是SAX事件处理程序的基类,通过重写SAX类,可以自定义对xml文件的解析。 在重写defaultHandler类时候,有一个重点是设立tag标记位,这个标记为用于记录当前处理的元素是哪一个,因为xml解析是一个嵌套的结构,character中可能还会调用startElement,因此必须设立一个标记位te...2014-08-15 15:12:24 · 70 阅读 · 0 评论 -
compareTo
以前,一直使用compareTo的从小到大排序,实际上compareTo可以选择从小到大还是从大到小: 设接口I,T是实现了接口I的类,则类T实现Comparable的话,如下 //从小到大排序:当前比外来户小返回负值,当前比外来户大返回正值 [code="java"] public int compartTo(I i) { T t=(T)i; if(aget.get...原创 2014-08-14 10:58:41 · 153 阅读 · 0 评论 -
DelayQueue
DelayQueue就是一个优先级队列,他的优先级按照里面元素的延迟时间来决定,延迟时间小的(也就是时间先到的)放在队列头(这与add的顺序无关),与元素本身的属性值有关。 DelayQueue中的元素必须是实现了Delayed接口的,而Delayed接口又是Comparable的子接口,因此DelayQueue中的元素必须覆盖Delayed接口的getDelay(TimeUnit)方法和C...2014-08-14 10:49:37 · 83 阅读 · 0 评论 -
java中的map
java为数据结构中的映射定义了一个接口java.util.Map;它有四个实现类,分别是HashMap Hashtable LinkedHashMap 和TreeMap. Map主要用于存储健值对,根据键得到值,因此不允许键重复(重复了覆盖了),但允许值重复。 Hashmap 是一个最常用的Map,它根据键的HashCode值存储数据,根据键可以直接获取它的值,具有很快的访问速度,遍历时...原创 2014-08-13 09:31:46 · 67 阅读 · 0 评论 -
Java中的可变参数
Java在1.5之后允许方法使用可变参数,可变参数的好处在于:它允许传递0个或者多个参数。比如原来有一段代码如下: [code="java"] public class Test { public static void main(String[] args) { test(); test(new String[]{"a"}); ...2016-12-31 10:43:32 · 159 阅读 · 0 评论 -
这样搞——保证你的代码没有try-catch
常常听到有技术圈的朋友抱怨,尤其是从其他语言转到Java语言的同行,说Java的try-catch语言让代码显得很凌乱。的确,作为一个Java Follower,笔者也觉得Java中的try-catch会导致代码很不整齐,易读性变差。那么有什么好办法让Java工程中尽量不出现try-catch语法块呢?办法还真有,请听我娓娓道来! 首先,笔者带领大家回顾一下Java的异常处理机制。如下图,Jav...2016-12-21 07:56:38 · 128 阅读 · 0 评论 -
回调模式——让你的controller不再繁琐
在Java后台编程中,大家一般会使用MVC设计模式,即便使用的具体框架不尽相同。今天,我们来说说MVC中的这个C,也就是Controller。Controller是web程序中最先接触到用户request的地方,当然,前提是该request经过了身份认证和权限检查等重重考验,这一部分建议在框架的Interceptor中进行。详细内容请看笔者之前的博客玩转Spring!从拒绝Filter开始。好了,...2016-12-19 10:12:25 · 219 阅读 · 0 评论 -
玩转Spring!从拒绝Filter开始
一直以来,博客都是在写一些读书笔记或者学习心得。俗话说,举一反三,是时候沉淀一下了。索性这把这篇文章作为开端吧! 笔者知道,这篇文章的题目一定让某些developer不爽,尤其是学习过J2EE基础的人。学习过J2EE基础的童鞋,一定有自己写listener,filter和servlet的经验。经验多一些是好事,但不要陶醉于自己的经验,作为developer,我们还是要进步滴,尤其是在使用spri...2016-12-14 19:09:16 · 101 阅读 · 0 评论 -
推荐JAVA学习路线
一直以来,都想写一篇介绍Java学习路线的博客。为什么有这个想法?原因有两个,其一:笔者从大三开始学习JAVA,至今也3年了。由于身边缺乏老司机带路,只能自己一步步探索,深知没人指路的痛苦。所以看过很多垃圾的书籍(没办法,国内书籍市场门槛太低),但功夫不负有心人,一些经典的书籍也都撸过了(关于书籍,下文中会介绍)。其二:由于JAVA进入门槛低,所以存在一些学个SSH框架就觉得JAVA不过如此之流,...2016-12-13 11:06:24 · 86 阅读 · 0 评论 -
Java中的AOP
AOP编程是面向切面编程,说白了,一段代码的执行归根结底是方法的执行,当一个系统写好之后,往往需要新的功能或者添加一些新的操作,这些新的功能又是一些方法,这些方法需要嵌入到原来的系统中,让他们在系统原有方法的执行前或者后等等位置执行,这个时候,有两种方案,修改原来的代码,违背了OCP,方案二,使用AOP; AOP编程就是在程序的执行过程中找到一些切入点,嵌入一些新的方法,以改变程序原来的执行...2014-07-07 18:32:25 · 108 阅读 · 0 评论 -
JAVA IO常用总结
最近复习java,于是就对java的IO进行一个总结: 在Java中,存在着流这种概念,所谓流,可以理解为数据的流动(实际上为字节的流动)。在java中,存在字节流与字符流,但实际上,字符流在传递过程中也是传递的字节流,字节流与字符流唯一的区别是:字符流使用了缓冲区,而字节流没用使用缓冲区。 流的另外一种分类方法是可以分为节点流(node stream)与过滤流(filter) ...2014-07-04 20:41:19 · 75 阅读 · 0 评论 -
java正则表达式
Java正则表达式可以实现“字符串格式验证”“字符串替换”“字符串拆分”的功能。 Java的正则表达式操作类主要依靠java.util.regex.Pattern和java.util.regex.Matcher两个类来完成操作的. java.util.regex.Pattern用于正则表达式的编写,有三个常用方法: public static Pattern compile(...原创 2014-06-06 10:38:38 · 54 阅读 · 0 评论 -
Time33算法与位运算
最近不是很忙,阅读了下《大型网站技术架构》一书。在4.3.4代码优化小节有这样的一句话:“目前比较好的字符串hash算法有Time33算法”。 Time33算法,就是hash(i)=33*hash(i-1)+str[i]。在jdk源码中String类的hashCode()方法使用的是Time31算法。 源码如下: [code="java"] public int hashCode() { ...2016-05-19 19:55:37 · 262 阅读 · 0 评论 -
Exception in thread "main" java.util.ConcurrentModificationException
最近写代码竟然烦了一个很低级的错误,写出来供大家参考: 在涉及到map或者list删除的时候,我们经常写出如下错误代码: [code="java"] LinkedHashMap lhm=new LinkedHashMap(); lhm.put("a","a"); lhm.put("b","b"); lhm.put("c","c"); l2014-09-22 10:45:46 · 131 阅读 · 0 评论