【java基础】
文章平均质量分 87
龙轩
熟悉javaee开发,有多年支付领域的开发经验。关注开源~
httpclientUtil开源项目创建者。https://github.com/Arronlong
展开
-
任务调度(二)——jdk自带的Timer 动态修改任务执行计划
上一篇博文《任务调度(一)——jdk自带的Timer》中,简单介绍了一下Timer,本文将分享一下如何动态修改Timer制定的计划。 有人问我Timer和Quartz框架的区别。那我就说一下我的理解。Timer毕竟是jdk自带的简易的任务调度工具类。跟Quartz比肯定是鸟枪与大炮的差距,Quartz的配置规则更加强大,更能满足我们的复杂需求,还允许多线程这是Timer所比不了的。如果你就需要特别简单的任务调度,那么我觉得完全没有必要用Quartz。杀鸡焉用牛刀?!如果你的业务场景比较复杂,原创 2015-05-09 15:21:11 · 10511 阅读 · 10 评论 -
Web版RSS阅读器(一)——dom4j读取xml(opml)文件
接触java不久,偶有收获,最近想做一个web版RSS阅读器来锻炼一下。手头有几个从不同版本的foxmail中导出的opml文件,大家应该都知道,opml文件就是xml格式的。那么就先从这里入手,练习一下使用dom4j读取xml文件。 在java程序设计中,尤其是java web开发程序,xml应用频率超高。Spring、Hibernate、Struts等各种web 框架,MyEclipse、Oracle等IDE,也都主要依托xml。可以说xml对于系统的配置,有着至关重要的作用。而这些也同时增原创 2013-07-30 16:51:26 · 7550 阅读 · 46 评论 -
Java连接Oracle数据库简单实例
数据库的操作是当前系统开发必不可少的开发部分之一,尤其是在现在的大数据时代,数据库尤为重要。但是你真的懂得Java与数据库是怎么连接的么? 先给大家一个数据库连接的简单实例:package com.java.dbtest;import java.sql.Connection;import java.sql.DriverManager;import java.原创 2013-06-09 23:02:39 · 55339 阅读 · 10 评论 -
Dota兄订餐——静态代理(java)
理解并使用设计模式,能够培养我们良好的面向对象编程习惯,同时在实际应用中,可以如鱼得水,享受游刃有余的乐趣。 代理模式是比较有用途的一种模式,而且变种较多,应用场合覆盖从小结构到整个系统的大结构,Proxy是代理的意思,我们也许有代理服务器等概念,代理概念可以解释为:在出发点到目的地之间有一道中间层,意为代理。 代理模式的定义是:为其他对象提供一种代理以控制对这个对象原创 2013-07-07 23:38:34 · 4325 阅读 · 41 评论 -
byte[]与各种数据类型互相转换示例
在socket开发过程中,通常需要将一些具体的值(这些值可能是各种JAVA类型)转化为byte[]类型,为此我总结了如下这个示例,贴出来,以便经常翻看:public class TestCase { /** * short到字节数组的转换. */ public static byte[] shortToByte(short number) { int temp = numb原创 2014-12-31 23:54:43 · 3503 阅读 · 0 评论 -
Windows资源浏览器——动态代理(java)
想必大家都或多或少了解一些Dos命令,在调用外部程序时,经常会用到dos命令来完成。其中有一条万能的命令,就是用Explorer.exe来打开任意程序,就相当于直接双击该程序。 先给大家看一下我们要调用的外部资源,放到一个文件夹中,包括图片、音乐、视频、文本文档、word文档、还有其他文档,最后还会加上一个网址。 我把Dos命令写入到一个bat中,也原创 2013-07-10 08:47:39 · 4530 阅读 · 31 评论 -
浅析Java中的反射机制原理
反射反射,程序员的快乐! Java中反射机制使用的还是比较广泛的,系统的灵活性、可扩展性大都都是通过反射等方式来加载外部插件,使得系统与插件解耦的同时,增加了功能。但是很多人都只是会用,却是不知道它的实现机制,今天就由我来带大家揭开反射机制的神秘面纱。 Java中是用Class.forName(classname)来反射类。package com.j原创 2013-06-25 11:33:17 · 44225 阅读 · 23 评论 -
javaweb:判断当前请求是否为移动设备访问
这段时间都是在做pc端的业务,结果经理找到我说,可能要做移动端的应用,后台逻辑还是用我写的逻辑,但是需要改动一些,看看怎么处理。 我觉得,最好是在一个第二统一改动一下,不要改懂太多的地儿,这样可以从一定程度上减少bug的数量。由于移动端和pc端还是稍微有些区别的,我的想法是首先应该判断当前请求是否为移动端,然后设一个标识到session中,然后就可以随便处理了。不管你是单独处理,还原创 2014-07-07 18:27:02 · 30959 阅读 · 23 评论 -
任务调度(三)——Timer的替代品ScheduledExecutorService简介
先前的两篇博文《任务调度(一)——jdk自带的Timer》和《任务调度(二)——jdk自带的Timer 动态修改任务执行计划》中,简单介绍了一下Timer,可以实现几本的功能,但是在多线程方面却略显不足。 根据Timer源码,可以看到Timer是单线程的。所以task都是串行执行。假如其中一个task执行需要很长的时间,那其他的task只能干巴巴的等着。怎么办!原创 2015-08-06 19:07:41 · 20915 阅读 · 2 评论 -
Web版RSS阅读器(二)——使用dTree树形加载rss订阅分组列表
在上一边博客《Web版RSS阅读器(一)——dom4j读取xml(opml)文件》中已经讲过如何读取rss订阅文件了。这次就把订阅的文件读取到页面上,使用树形结构进行加载显示。在网上找了一个js树形脚本——dTree。dTree是一个易于使用的JavaScript树形菜单控件。支持无限分级,可以在同一个页面中放置多个dTree,可以为每个节点指定不同的图标。 不打算使用特殊的控件进行树型显示,也不想自己写了,想省劲些,就在网上找了一个js树形脚本——dTree。dTree是一个易于使用原创 2013-08-05 08:23:47 · 5430 阅读 · 26 评论 -
Java工作利器之常用工具类(二)——数字工具类-大数乘法、加法、减法运算
上篇分享了一下数字转汉字的小功能,这里再分享一下大数相乘、相加、相减的功能。其他的不做过多的铺垫了,我先讲一下各个功能的计算原理。 Ⅰ. 乘法运算为什么先说乘法运算——因为我先做了乘法运算。其实思路也是很多的,但是最终我参考了网络上的一种计算方案,然后做了很多的修改。感觉这个在思路上应该是比较简单的。简单点说:把数拆分成整数小数分别进行乘法运算,然后将结果放入一个特定长度的数组中,...原创 2015-11-16 10:45:16 · 8079 阅读 · 0 评论 -
Java工作利器之常用工具类(三)——字符串工具类-智能截取
前两篇博文简单分享了一下数字工具类,现在说说字符串工具类。 相信大家都自己封装过或者用过guava封装的Strings,但是有没有可以智能截取,比如说“截取整数第二个到倒数第二个”的字符串。你是否还需要自己写str.substring(1,str.length()-2)。如果是的话,请继续往下看吧。暂时还未见过可以反向截取字符串的。一般都是substring(str, start, end...原创 2015-11-16 10:45:17 · 11698 阅读 · 0 评论 -
Java工作利器之常用工具类(一)——数字工具类-数字转汉字
本人是从事互联网金融行业的,所以会接触到一些金融类的问题,常见的一种就是数字转汉字大小写的问题。所以抽空就写了一个小小的工具类,实现了数字转汉字、大数相加、相减、相乘的工具类,希望能帮助有需求的同行们。本篇就分享一下数字转化为汉字的思路吧。 数字转汉字的原理:拆分:由于整数部分要加权值,而小数部分直接转换即可,所以首先要将数字拆分成整数+小数; 整数处理:按照我们的中国人的习惯,把数...原创 2015-11-16 10:44:59 · 10816 阅读 · 7 评论 -
你真的真的理解Java的按引用传递吗?
今天在博客上看到《你真的理解Java的按引用传递吗?》这篇博文,就好奇进去看了一下,结果发现,其实说了半天,并没有特别清楚的解释。尤其是对于传递String类型时的例子时,有点发蒙。 接触Java也有好几年了,本来以为这些简单自己早就懂了,结果在看到最后一个例子时,直接就把答案给猜错了。public class Test5{ public static void mai原创 2015-11-05 17:01:03 · 6070 阅读 · 3 评论 -
Web版RSS阅读器(五)——初步完成阅读功能
上一篇博文《Web版RSS阅读器(四)——定制自己的Rss解析库myrsslib4j》中,已经分享给大家制作自己的rss解析库。稍微有点遗憾的是,它仅仅支持rss格式的博客。现在给大家分享一下我基于rome修改而成的另一款rss解析库——myrome,完美支持atom和rss 2种格式。 myrome是在rome的基础上修改而来的,主要改动的地方是:(查看详细修改说明)原创 2013-08-27 07:59:33 · 6865 阅读 · 42 评论 -
任务调度(四)——ScheduledExecutorService替代Timer,实现多线程任务调度
上篇博文《任务调度(三)——Timer的替代品ScheduledExecutorService简介》已经对ScheduledExecutorService做了简单介绍,其实使用ScheduledExecutorService来替代Timer也是迫不得已的事情。主要原因如下:Timer不支持多线程,所有挂在Timer下的任务都是单线程的,任务只能串行执行,如果其中一个任务执行时间过长,会原创 2015-08-07 13:25:31 · 11369 阅读 · 5 评论 -
任务调度(一)——jdk自带的Timer
说到任务调度,大家可能会想到Quartz框架,但是jdk自带的简单任务调度工具类,反而了解的人并不是很多。我觉得如果你的业务相对简单的话,没必要非得用Quartz框架,使用Timer完全可以胜任的。简单来分享一下我了解的Timer。 Timer是jdk中提供的一个定时器工具,使用的时候会在主线程之外起一个单独的线程执行指定的计划任务,可以指定执行一次或者反复执行多次。原创 2015-05-08 02:13:17 · 16843 阅读 · 13 评论 -
通过反射克隆对象,对象复制(克隆),对象合并工具类 升级版
上一篇博文提到的工具类,主要是用在对象的复制方面,而且代码有点冗余了。这个工具类也是我现在在做的项目中用到的。 现在在项目中遇到了一个 对象合并的需求。原先的工具类是不满足的,只能全部复制,所以又将原先的工具类做了修改。添加了对象合并的功能,同时还多设置了两个个参数,用一个boolean类型的参数来设定目标对象属性不为null时是否覆盖,用一个set来设定例外的情况。...原创 2015-01-30 20:31:36 · 5076 阅读 · 5 评论 -
通过反射克隆对象,对象复制(克隆)工具类
最近做的项目中,经常会遇到用视图来操作数据库的,但是页面需要的则是某个实体对象,在controller层查出list 还要把将view对象转化成entity对象。需要写一大堆的get和set方法,而且如果实体增删字段的话,还需要把转化代码再修改一下,让人头疼。 当我需要操作一个实体对象完成两件不同的事情,这2个方法中会修改实体对象中的属性,第一个方法调用后,再调用第二个方法时,会受原创 2015-01-27 20:24:39 · 5215 阅读 · 7 评论 -
J2ee规范小结
J2ee已经浏览过去好长时间了,但是总结却是没怎么感觉。简单的画了一张导图,罗列了一下各个规范的特性,作为以后深入了解之用。 J2EE是Java2平台企业版(Java 2 Platform,Enterprise Edition) J2EE核心是一组技术规范与指南,其中所包含的各类组件、服务架构及技术层次,均有共同的标准及规格,让各种依循J2E原创 2013-05-29 20:18:36 · 1754 阅读 · 2 评论 -
Java反射机制与应用
JAVA反射机制 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。 JAVA反射应用 Java反射机制主要提供了以下功能: 在运行时判断任意一个对象所属的类;在运行时构造任意一个类的对象;在运行时判断原创 2013-06-30 20:45:59 · 11278 阅读 · 10 评论 -
简单的利用UrlConnection,后台模拟http请求
这两天在整理看httpclient,然后想自己用UrlConnection后台模拟实现Http请求,于是一个简单的小例子就新鲜出炉了(支持代理哦):public class SimpleHttpTest { public static String send(String urlStr, Map map,String encoding){ String body=""; Strin原创 2015-11-11 19:13:58 · 8311 阅读 · 5 评论 -
Web版RSS阅读器(四)——定制自己的Rss解析库myrsslib4j
在上篇博文《Web版RSS阅读器(三)——解析在线Rss订阅》中,已经提到了遇到的问题,这里再详细说一下。 在解析rss格式的订阅时,遇到的最主要的问题是,出现了“Server returned HTTP response code: 403 for URL: http://xxxxxx”的错误,百度一下就知道,这是在网站访问中很常见的一个错误,服务器理解客户的请求,但拒绝处理它。即拒绝访问!接着查资料,得知某些服务器(比如CSDN博客)拒绝java作为客户端进行对其的访问,所以在解析时,会原创 2013-08-18 21:20:12 · 5511 阅读 · 29 评论 -
java中使用反射获取pojo(实体)类的所有字段值
说起反射,不得不说它实在是太强大了,通过反射就可以轻轻松松拿到各种东东,如果你想在项目中解除对某个类的依赖,可以考虑用反射。 今天跟大家分享的是通过java中的反射,获取pojo类的所有字段值。 为什么要做这个操作的呢?主要是为了重写实体类的toString方法。有人会说,直接重写toString方法,返回字段.toString()的字符串不就行了。原创 2014-04-19 15:43:54 · 25181 阅读 · 17 评论 -
Web版RSS阅读器(三)——解析在线Rss订阅
Web版RSS阅读器 上篇博客《 Web版RSS阅读器(二)——使用dTree树形加载rss订阅分组列表》已经写到读取rss订阅列表了,今天就说一下,当获取一条在线rss订阅的信息,怎么去解析它,从而获取文章或资讯。原创 2013-08-09 09:12:41 · 13235 阅读 · 39 评论 -
深入 理解 Statement 和 PreparedStatement
一、使用Statement而不是PreparedStatement对象JDBC驱动的最佳化是基于使用的是什么功能. 选择PreparedStatement还是Statement取决于你要怎么使用它们. 对于只执行一次的SQL语句选择Statement是最好的. 相反, 如果SQL语句被多次执行选用PreparedStatement是最好的.PreparedStatement的第一次执行消耗原创 2013-06-23 10:48:49 · 73611 阅读 · 15 评论 -
java初学者必看——J2SE小结
J2se看完了,没有及时进行总结,现在总结起来,有些费力,总觉得少点什么。 一直在期待着java的学习,现在也算是对java一个简单了解吧,因为软考要用到,所以浅浅的掌握了一些,对于初学者应该会有一些帮助或者指引吧。 J2se的特性,这里就不赘述了,请搭专机到百度百科。 Java是一种解释性语言,它的执行过程是将.java源文件,编译为.class文原创 2012-03-21 01:07:12 · 3180 阅读 · 13 评论 -
Java工作利器之常用工具类(四)——Json工具类,使用正则支持xml与json互转
看到这个题目是不是大部分人都不屑一顾,的确基本上每个java程序猿都写过json工具类,也有很多人都使用json-lib.jar封装过类似的功能,但是我这里使用了正则来支持xml与json的互转,减少了jar包的引入。基本上满足了需求。当然如果你需要更强大的功能,还是最好使用json-lib来实现。 主要看一下工具类中的转换json和转换成xml的方法吧。1. xml转json具体...原创 2015-11-16 10:45:30 · 12879 阅读 · 1 评论 -
使用正则表达式,从网站上获取指定数据
最近做的一个项目中,其中有这样一个需求:用户要求我们实时在地图上显示某些指定景点的人数,但是却没有给我们数据的接口。不过可以从网页上获取到最新的数据,每小时更新一次。所以经理安排我做一个实时从网页上抓取数据的功能。 既然是网页,那么无用的数据肯定是非常多的,所以就需要用正则表达式来过滤出自己所需要的数据。原创 2014-07-31 00:16:02 · 6701 阅读 · 5 评论 -
深度剖析ConcurrentHashMap源码
概述你可能会在一些技术类的书籍上看到下面这样一段关于HahsMap和HashTable的表述:HashMap是非线程安全的,HashTable是线程安全的。不知道大家有什么反应,我当时只是记住了,知道面试的时候能回答上来就行了…至于为什么是线程安全的,内部怎么实现的,却不怎么了解。今天我们将深入剖析一个比HashTable性能更优的线程安全的Map类,它就是原创 2017-06-28 22:48:01 · 1745 阅读 · 3 评论