JAVA SE
喵先生MJ
喵了个咪的,才想起来喵在这儿还有个空间
展开
-
东京商城注册页面使用的正则表达式......
京东商城注册页面找到的一组,正则表达式,验证规则比较准确,包括几乎包括所有常用的规则decmal: "^([+-]?)\\d*\\.\\d+$", //浮点数 decmal1: "^[1-9]\\d*.\\d*|0.\\d*[1-9]\\d*$", //正浮点数 decmal2: "^-([1-9]\\d*.\\d*|0.\\d*[1-9]\\d*)$", //负浮转载 2014-09-16 14:09:41 · 453 阅读 · 0 评论 -
让人纠结的finally
最近分析某一apk,被其中的各种try-catch-finally块虐得死去活来,有木有。。。由于喜欢刨根,各种谷歌都没有给出解释。 一番研究之后,发现确实有些蹊跷。(本人水平有限,不喜勿喷,谢谢)切入正题:try{}catch反编译后,格式: eg: .catch Ljava/io/FileNotFoundException; {:try_start_0 ..转载 2014-07-13 00:24:13 · 459 阅读 · 0 评论 -
Java程序员们最常犯的10个错误
本文由 ImportNew - 林林 翻译自 programcreek。欢迎加入Java小组。转载请参见文章末尾的要求。1.将数组转化为列表将数组转化为一个列表时,程序员们经常这样做:1List list = Arrays.asList(arr);Arrays.asList()会返回一个Ar转载 2014-07-31 10:20:26 · 529 阅读 · 0 评论 -
10个调试和排错的小建议
在空白的文本编辑器里打开一个崭新的文本,没有一行代码,出现在眼前的是一个充满了无限可能和希望的项目。可是,当数千行的代码写完之后,整个项目因为bug的出现而被压垮了,更别说添加什么新功能了...这也许是对程序员的最大打击,在饱满的热情上浇了一盆冷水。其实,最好的软件程序员当然知道怎样去发现并修复这些bug,在刚开始编程的时候就通过软件工程的最好方法来降低bug的出现概率。 几乎没有转载 2014-07-14 18:02:20 · 275 阅读 · 0 评论 -
Java XML API 漫谈
在IBM的developerWorks上有几篇非常优秀的关于Java XML API的评测文章,它们是: http://www-900.ibm.com/developerWorks/cn/xml/x-injava/index.shtml http://www-900.ibm.com/developerWorks/cn/xml/x-injava2/index.shtml ht转载 2014-07-14 12:00:00 · 485 阅读 · 0 评论 -
简单学习动态代理模式
原来写过简单实用代理模式,即静态代理。原创 2014-08-06 16:43:50 · 282 阅读 · 0 评论 -
Java读取资源文件时内容过长与换行的处理
Java读取Properties文件时碰到两问题1. 资源文件中的key对应的value过长时,书写不方便,需要换行,若直接回车则回车后的内容被忽略2.资源文件中的key对应的value需要换行显示时,若直接回车,则同样丢掉回车后的部分针对上述问题找到如下解决办法:1. 内容过长需要换行时拼接个/斜杠,这样/后的内容后正常显示2.若内容本身需要换行时则用/n转载 2014-08-20 20:30:13 · 427 阅读 · 0 评论 -
java常用类库续3(比较器Comparable、Comparator、观察者设计模式、正则表达式、定时调度)
比较器(Comparable、Comparator)Comparable接口可以直接使用java.util.Arrays类进行数组的排序操作,但对象所在的类必须实现Comparable接口,用于指定排序接口。Comparable接口定义如下:[java] view plaincopyprint?public interface C转载 2014-08-20 20:57:25 · 329 阅读 · 0 评论 -
大数据处理系列(二)系统过载保护
前言:前段时间在网上看到腾讯后台开发总监bison分享的一篇文章《浅谈过载保护》,读来受益匪浅。刚好自己也在处理系统请求过载的问题,把自己的一些心得体会总结出来拿来与大家一起探讨。 在bison的文章中谈到:对于延时敏感的服务,当外部请求超过系统处理能力,如果系统没有做相应保护,可能导致历史累计的超时请求达到一定的规模,像雪球一样形成恶性循环,由于系统处理的每个转载 2014-08-07 16:49:34 · 428 阅读 · 0 评论 -
Java枚举的常见种用法
JAVA JDK1.5引入了枚举。在Java中它虽然算个“小”功能,却给我的开发带来了“大”方便。原创 2014-07-12 15:53:45 · 304 阅读 · 0 评论 -
OOP编程之is-a、has-a和is-like-a之间的关系
OOP编程思想中,继承是一个十分重要的内容。下面介绍几个 常见的容易混淆的术语。首先举例子:我们常见的动物,羊有很多种类,只是一种泛指,绵羊是其中一种,那么羊和绵羊的关系,就是is-a,即它们是继承的关系。再如,羊身上都有羊毛,而不同种类的羊,羊毛生物形态也不同,比如绵羊和羚羊,前者羊毛丰富、蓬松、柔软,呈白色;后者羊毛稀少、刚硬,呈灰褐色。对于绵羊来说,羊毛和羊的关系就是原创 2014-07-12 10:25:19 · 412 阅读 · 0 评论 -
JVM中的Hello World是如何运行的?
每一个Java开发者都是通过Hello World敲开面向对象世界的大门。但是在一开始,我们考虑的只是这个语言是什么样的,我们如何更好的编码,却很少有人关心他内部是怎么运行的。看下面一个简单的hello world。package com.wordpress.kkarthikeyanblog; public class HelloWorld { public static String转载 2014-07-09 20:43:56 · 266 阅读 · 0 评论 -
Java高速、多线程虚拟内存
本文由 ImportNew - MarkGZ 翻译自 jaxenter。欢迎加入Java小组。转载请参见文章末尾的要求。你想在标准硬件上运行TB级甚至PB级内存的JVM吗?你想与内存交互一样读写文件,且无需关心文件的打开、关闭、读、写吗?JVM的64位地址空间使这些成为可能。首先,不要在观念上将内存和磁盘进行区分,而是统一处理为内存映射文件。在32位地址空间时,内存映射文件只是为了转载 2014-07-10 00:43:08 · 336 阅读 · 0 评论 -
在 Eclipse 下利用 gradle 构建系统
构建系统时候常常要用到 Ant, Maven 等工具,对于初学者来说,它们还是过于复杂,上手还是需要时间的。本文将向读者介绍一种全新的构建项目的方式 gradle,它简单、上手快,能大大节省项目的时间和成本。转载 2014-07-10 20:27:35 · 354 阅读 · 0 评论 -
jvisualvm功能演示
1。启动在命令行输入jvisualvm。如果jdk安装正确的话(6.x以上版本),就会看到如下的一个窗口:看起来相当简洁,不像是很强大的样子。2。运行一个Java程序IncTestN,jvisualvm会自动找到它3.右键点击它,”打开”可以看到它有很多标签页,可以让我们监测程序的各种数据。默认没有这么多,我其实安装了一些jv转载 2014-07-09 21:31:18 · 378 阅读 · 0 评论 -
使用Java处理大文件
本文由 ImportNew - 踏雁寻花 翻译自 javacodegeeks。欢迎加入Java小组。转载请参见文章末尾的要求。我最近要处理一套存储历史实时数据的大文件fx market data,我很快便意识到,使用传统的InputStream不能够将它们读取到内存,因为每一个文件都超过了4G。甚至编辑器都不能够打开这些文件。在这种特殊情况下,我可以写一个简单的bash脚本将这转载 2014-07-10 21:29:08 · 344 阅读 · 0 评论 -
StringBuffer类的使用学习
StringBuffer类和String一样,也用来代表字符串,只是由于StringBuffer的内部实现方式和String不同,所以StringBuffer在进行字符串处理时,不生成新的对象,在内存使用上要优于String类。 所以在实际使用时,如果经常需要对一个字符串进行修改,例如插入、删除等操作,使用StringBuffer要更加适合一些。 在原创 2014-07-12 09:50:07 · 402 阅读 · 0 评论 -
Beanutils基本用法
Beanutils用了魔术般的反射技术,实现了很多夸张有用的功能,都是C/C++时代不敢想的。无论谁的项目,始终一天都会用得上它。我算是后知后觉了,第一回看到它的时候居然错过。1.属性的动态getter,setter在这框架满天飞的年代,不能事事都保证执行getter,setter函数了,有时候属性是要需要根据名字动态取得的,就像这样: BeanUtils.getProper转载 2014-08-05 13:19:50 · 288 阅读 · 0 评论 -
Java内存管理基础篇- Java内存分配
1.简介 现摘录一段Java5内存管理白皮书中的一段话: One strength of the Java™ 2 Platform, Standard Edition (J2SE™) is that it performs automatic memorymanagement, thereby shielding the developer from the c转载 2014-07-30 14:06:17 · 282 阅读 · 0 评论 -
Java读写Properties文件
Java中读写资源文件最重要的类是Properties,功能大致如下:1. 读写Properties文件2. 读写XML文件3. 不仅可以读写上述两类文件,还可以读写其它格式文件如txt等,只要符合key=value格式即可.注意:资源文件中含有中文时的处理方法 1. 将中文字符通过工作转成utf8编码,可以通过Java自带的nativetoascii或Eclipse中转载 2014-08-20 20:28:10 · 327 阅读 · 0 评论 -
java优化占用内存的方法(一)
原文出自【雪的痕迹】原文地址:http://www.java3z.com/cwbwebhome/article/article8/852.htmljava做的系统给人的印象是什么?占内存!说道这句话就会有N多人站出来为java辩护,并举出一堆的性能测试报告来证明这一点。其实从理论上来讲java做的系统并不比其他语言开发出来的系统更占用内存,那么为什么却有这么N多理由来证明它确实占内存呢转载 2014-08-08 12:52:53 · 412 阅读 · 0 评论 -
java常用类库续2(大数操作BigInteger、BigDecimal类、对象克隆技术、Arrays类)
大数操作(BigInteger、BigDecimal)大数操作:正常情况下一个整数最多只能放在long类型之中,但是现在如果有以下一个数字:11111111111111111111111111111111111111111根本是无法保存的,所以为了解决这种问题,在java中引入了两个大数的操作类:·操作整型:BigInteger·操作小数:BigDecimalB转载 2014-08-20 21:00:21 · 477 阅读 · 0 评论 -
理解class.forName()
使用jdbc方式连接数据库时会使用一句代码Class.forName(String className).这句话是什么意思呢?首先说一点Class.forName(String className)这个方法的作用是装载className这个字符串指定的类。官方文档返回与带有给定字符串名的类或接口相关联的 Class 对象。调用此方法等效于:转载 2014-08-23 00:25:11 · 600 阅读 · 0 评论 -
随机数是骗人的,.Net、Java、C为我作证
几乎所有编程语言中都提供了"生成一个随机数"的方法,也就是调用这个方法会生成一个数,我们事先也不知道它生成什么数。比如在.Net中编写下面的代码:Random rand = newRandom(); Console.WriteLine(rand.Next());运行后结果如下: Next()方法用来返回一个随机数。同样的代码你执行和我的结果很可能不一样,而且我多转载 2014-08-12 13:05:52 · 335 阅读 · 0 评论 -
Hashtable与HashMap引发的血案
本票文章很生动的给Hashtable和HashMap举例,并给出代码,方便大家理解。人物:王小胖:性别:男。程序员,工作经验1 year。爱好:吃肉、电玩、马小花。特技:吃肉不用考虑胃的容量。马小花:性别:女。学生,工作经验0 year。爱好:蛋糕、臭美、王小胖。特技:能够降服王小胖……/**2011年2月,电影《将爱情进行到底》火得不得了。周末,小胖也陪着小花去看这部转载 2014-08-13 11:38:22 · 320 阅读 · 0 评论 -
Java 8 简明教程
Java 8已于2014年3月18日正式发布了,新版本带来了诸多改进,包括Lambda表达式、Streams、日期时间API等等。本文就带你领略Java 8的全新特性。转载 2014-08-14 22:59:09 · 237 阅读 · 0 评论 -
Java中的String对象是不可变的吗
本文由 ImportNew - 夏千林 翻译自 stackoverflow。欢迎加入Java小组。转载请参见文章末尾的要求。有个仁兄在 StackOverflow 上发起了一个问题,是这么问的:众所周知Java中的String对象是不可变的,但我们来看下面这段代码:123456789转载 2014-07-31 10:28:18 · 403 阅读 · 0 评论 -
Lock与synchronized 的区别
多次思考过这个问题,都没有形成理论,今天有时间了,我把他总结出来,希望对大家有所帮助 1、ReentrantLock 拥有Synchronized相同的并发性和内存语义,此外还多了 锁投票,定时锁等候和中断锁等候 线程A和B都要获取对象O的锁定,假设A获取了对象O锁,B将等待A释放对O的锁定, 如果使用 synchronized ,如果A不转载 2014-08-14 23:06:02 · 248 阅读 · 0 评论 -
请别再拿“String s = new String("xyz");创建了多少个String实例”来面试了吧
这帖是用来回复高级语言虚拟机圈子里的一个问题,一道Java笔试题的。 本来因为见得太多已经吐槽无力,但这次实在忍不住了就又爆发了一把。写得太长干脆单独开了一帖。 顺带广告:对JVM感兴趣的同学们同志们请多多支持高级语言虚拟机圈子 以下是回复内容。文中的“楼主”是针对原问题帖而言。 ============================================转载 2014-08-17 22:45:21 · 399 阅读 · 0 评论 -
java IO(File类、字节流与字符流、字节字符转换流)
File类在整个io包中,唯一表示与文件本身有关的类就是File类。使用File类可以进行创建或删除文件等常用操作,要想使用File类,则首先要观察File类的构造方法,此类的常用构造方法如下[java] view plaincopyprint?public File(String pathname)实例化File类的时候,必须设置好路径转载 2014-08-20 20:59:19 · 424 阅读 · 0 评论 -
JAVA 位运算符和位移运算符
java位运算符包括 &(与) AND |(或) OR ^(异或) XOR ~(非) NOT 位移运算符包括 >>(右移) >>>(右移,左边空出的位以0填充) 顾名思义,位运算符用于位运算,那就只能对整型或者字符型进行运算。而除了~(非)是一元运算符之外其他的都为二元运算符。 所有位运算都会把值转为二进制转载 2014-08-20 20:49:23 · 339 阅读 · 0 评论 -
如何避免出现死锁
在并发程序设计中,死锁 (deadlock) 是一种十分常见的逻辑错误。通过采用正确的编程方式,死锁的发生不难避免。死锁的四个必要条件在计算机专业的本科教材中,通常都会介绍死锁的四个必要条件。这四个条件缺一不可,或者说只要破坏了其中任何一个条件,死锁就不可能发生。我们来复习一下,这四个条件是:互斥(Mutual exclusion):存在这样一种资源,它在某转载 2014-08-09 09:02:12 · 335 阅读 · 0 评论 -
Java新IO介绍
BufferedReader它的一个特征:当BufferedReader读取输入流中的数据时,如果没有读到有效数据时,程序将在此处阻塞该线程的执行(使用InputStream的read方法从流中读取数据时,如果数据源中没有数据,它也会阻塞该线程),也就是前面介绍的输入、输出流都是阻塞式的输入、输出。不仅如此,传统的输入、输出流都是通过字节的移动来处理的(即使我们可以不直接去处理字节流,但底层的实现原创 2014-08-20 20:23:57 · 345 阅读 · 0 评论 -
抽象类和接口的区别,使用场景
抽象类和接口的区别,使用场景 1 接口是核心,其定义了要做的事情,包含了许多的方法,但没有定义这些方法应该如何做。 2 如果许多类实现了某个接口,那么每个都要用代码实现那些方法 3 如果某一些类的实现有共通之处,则可以抽象出来一个抽象类,让抽象类实现接口的公用的代码,而那些个性化的方法则由各个子类去实现。 所以,抽象类是为了简化接口的实现,他不仅提供了公共方法的实现,让转载 2014-08-20 20:37:53 · 370 阅读 · 0 评论 -
serialVersionUID的作用
简单来说,Java的序列化机制是通过在运行时判断类的serialVersionUID来验证版本一致性的。在进行反序列化时,JVM会把传来的字节流中的serialVersionUID与本地相应实体(类)的serialVersionUID进行比较,如果相同就认为是一致的,可以进行反序列化,否则就会出现序列化版本不一致的异常。(InvalidCastException)serialVersion转载 2014-08-20 20:47:27 · 271 阅读 · 0 评论 -
Java 内存分配全面浅析
本文将由浅入深详细介绍Java内存分配的原理,以帮助新手更轻松的学习Java。这类文章网上有很多,但大多比较零碎。本文从认知过程角度出发,将带给读者一个系统的介绍。进入正题前首先要知道的是Java程序运行在JVM(Java Virtual Machine,Java虚拟机)上,可以把JVM理解成Java程序和操作系统之间的桥梁,JVM实现了Java的平台无关性,由此可见JVM的重要性。所以在转载 2014-08-20 20:53:46 · 365 阅读 · 0 评论 -
java输入输出流学习
Java语言的输入输出功能是十分强大而灵活的,美中不足的是看上去输入输出的代码并不是很简洁,因为你往往需要包装许多不同的对象。在Java类库中,IO部分的内容是很庞大的,因为它涉及的领域很广泛:标准输入输出,文件的操作,网络上的数据流,字符串流,对象流,zip文件流....本文的目的是为大家做一个简要的介绍。 流是一个很形象的概念,当程序需要读取数据的时候,就会开启一个通向数据源的流,这转载 2014-08-09 01:54:38 · 302 阅读 · 0 评论 -
大数据处理系列之(一)Java线程池使用
前言:最近在做分布式海量数据处理项目,使用到了java的线程池,所以搜集了一些资料对它的使用做了一下总结和探究,前面介绍的东西大多都是从网上搜集整理而来。文中最核心的东西在于后面两节无界队列线程池和有界队列线程池的实例使用以及线上问题处理方案。 1. 为什么要用线程池? 在Java中转载 2014-08-07 16:48:01 · 561 阅读 · 0 评论 -
精确计算一个Java对象占用的内存大小
《java优化占用内存的方法 -- 雪的痕迹》一文中提到:" java做的系统给人的印象是什么?占内存!说道这句话就会有N多人站出来为java辩护,并举出一堆的性能测试报告来证明这一点。其实从理论上来讲java做的系统并不比其他语言开发出来的系统更占用内存,那么为什么却有这么N多理由来证明它确实占内存呢?两个字,"陋习"。 那如何衡量对象占用的内存空间大小呢?有人可能会说简转载 2014-08-08 12:48:59 · 743 阅读 · 0 评论 -
九大工具助你玩转Java性能优化
本文由 ImportNew - 陈 晓舜 翻译自 idrsolutions。欢迎加入Java小组。转载请参见文章末尾的要求。Java性能优化工具可以帮助你改进你的Java代码。之前我写过一篇关于5个工具帮助写出更好的Java代码的文章。合适的工具可以改进我们的代码,并且提高开发效率。在IDR解决方案中,我们一直在找一些方法来改进我们的代码。但最近,我们在考虑改进PDF HTML转载 2014-07-10 21:08:20 · 339 阅读 · 0 评论