Java
文章平均质量分 86
指尖上的行者
遇事多思考,总有另一种美好!
展开
-
线程知识点扩展
一、有关面试中的线程知识很多核心Java面试题来源于多线程(Multi-Threading)和集合框架(Collections Framework),理解核心线程概念时,娴熟的实际经验是必需的。这篇文章收集了 Java 线程方面一些典型的问题,这些问题经常被高级工程师所问到。0.Java 中多线程同步是什么?在多线程程序下,同步能控制对共享资源的访问。如果没有同步,当一个 Java原创 2012-06-05 16:45:11 · 793 阅读 · 0 评论 -
java.util.concurrent包探秘
Executor :具体Runnable任务的执行者。ExecutorService :一个线程池管理者,其实现类有多种,我会介绍一部分。我们能把Runnable,Callable提交到池中让其调度。Semaphore :一个计数信号量ReentrantLock :一个可重入的互斥锁定 Lock,功能类似synchronized,但要强大的多。Future :是与Runnable,转载 2011-10-27 14:40:06 · 1439 阅读 · 0 评论 -
Java反射技术——字段的获取
关于获取类的字段有两种方式:getFields()和getDeclaredFields()。我们先来看看这两者的区别吧:getFields():获得某个类的所有的公共(public)的字段,包括父类中的字段。getDeclaredFields():获得某个类的所有声明的字段,即包括public、private和proteced,但是不包括父类的申明字段。同样类似的还有getCons原创 2012-04-24 17:07:04 · 8886 阅读 · 1 评论 -
JMF的下载地址
点击:http://www.oracle.com/technetwork/java/javase/download-142937.html,进入界面:点击下载,之后再点击接受,就可进入以下资源下载页面:再进行扩充一下,进入http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-down原创 2012-04-08 10:56:36 · 836 阅读 · 0 评论 -
变量和方法命名的最佳实践
在每个代码范围内使用足够短和足够长的名称:例如循环计算器用一个字符就可以了,如i;条件和循环变量用一个单词,方法名1-2个单词,类名2-3个单词,全局变量3-4个单词组成为变量指定一些专门名称,不要使用例如 "value", "equals", "data" 这样的变量名变量名要使用有意义的名称,通过变量名能大概反映出其具体的用途不要在变量名前加前缀,例如 o_, obj_, m_ 之类服从公司命转载 2012-03-20 17:27:40 · 565 阅读 · 0 评论 -
FileInputStream/FileOutputStream的应用
这是一对继承于InputStream和OutputStream的类,用于本地文件读写(二进制格式读写并且是顺序读写,读和写要分别创建出不同的文件流对象);本地文件读写编程的基本过程为: ① 生成文件流对象(对文件读操作时应该为FileInputStream类,而文件写应该为FileOutputStream类);② 调用FileInputStream或FileOutputStream类中转载 2012-04-04 00:01:43 · 544 阅读 · 0 评论 -
java.math.BigDecimal的用法
问题的提出:如果我们编译运行下面这个程序会看到什么?publicclass Test {public static void main(String args[]){ System.out.println(0.05+ 0.01); System.out.println(1.0- 0.42); System.out.println(4.01原创 2012-04-01 13:14:01 · 2182 阅读 · 2 评论 -
浅析Java抽象类和接口的比较
在面试的过程中,面试官往往会问我们有关抽象类与接口相关的问题,也许我们只能大概的讲出个一二。比如:抽象类只能通过单一继承,而接口可以通过多次实现等。并且,有的时候我们自己都不知道该用抽象类还是接口,下面就为你讲解一下抽象类和接口之间的区别: abstract class和interface是Java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了J原创 2012-03-30 23:33:16 · 542 阅读 · 0 评论 -
Java日期操作 及 Timer定时器
Date,这个大家都认识了,用于保存日期信息,但不推荐进行日期操作及初始化特定日期Calendar及其子类GregorianCalendar:日历类,日期操作,初始化特定日期。DateFormat及其子类SimpleDateformat: 日期格式化,日期的默认显示方式不适合中国人,所以需要格式化为中国人常用的格式来显示。取得当期日期, Date date=new Date();初转载 2012-03-28 16:23:31 · 901 阅读 · 0 评论 -
Concurrent多线程控制
在Java 5.0之前启动一个任务是通过调用Thread类的start()方法来实现的,任务的提于交和执行是同时进行的,如果你想对任务的执行进行调度或是控制同时执行的线程数量就需要额外编写代码来完成。5.0里提供了一个新的任务执行架构使你可以轻松地调度和控制任务的执行,并且可以建立一个类似数据库连接池的线程池来执行任务。这个架构主要有三个接口和其相应的具体类组成。这三个接口是Executor, E转载 2011-10-27 18:03:44 · 1146 阅读 · 0 评论 -
JBoss中的消息驱动bean
首先我们来解释一下什么叫做JMS,如下:接下来我们来介绍一下相关概念:代码的编写正式开始,首先新建一个工程,具体步骤不多说啦,记得要把JBoss中的JAR包关联到工程中。然后配置一个目标地址,如下:来看看具体的代码:<mbean code="org.jboss.mq.server.jmx.Queue" name="jb原创 2011-12-15 15:43:06 · 717 阅读 · 0 评论 -
BlockingQueue详解
本例介绍一个特殊的队列:BlockingQueue,如果BlockingQueue是空的,从BlockingQueue取东西的操作将会被阻断进入等待状态,直到BlockingQueue进了东西才会被唤醒,同样,如果BlockingQueue是满的,任何试图往里存东西的操作也会被阻断进入等待状态,直到BlockingQueue里有空间时才会被唤醒继续操作。 本例再次实现前面介绍的篮子转载 2011-12-21 16:15:24 · 17254 阅读 · 4 评论 -
浅谈ReadWriteLock
在JDK5之前,我们要解决并发所产生的问题使用的是synchronized修饰。但是,对象的方法中一旦加入synchronized修饰,则任何时刻只能有一个线程访问synchronized修饰的方法。假设有个数据对象拥有写方法与读方法,多线程环境中要想保证数据的安全,需对该对象的读写方法都要加入 synchronized同步块。这样任何线程在写入时,其它线程无法读取与改变数据;如果有线程在读取时,原创 2012-06-06 11:02:24 · 117 阅读 · 0 评论 -
根据路径获取文件的两种方式
/** * 从类路径下获取资源 * * @param filePath * @return * @throws IOException */ public static String getFilesFromClassPath(String filePath) throws IOException { InputStream inStream原创 2012-06-06 13:22:37 · 1247 阅读 · 0 评论 -
单例模式的八种写法比较
单例模式是最常用到的设计模式之一,熟悉设计模式的朋友对单例模式都不会陌生。一般介绍单例模式的书籍都会提到饿汉式和懒汉式这两种实现方式。但是除了这两种方式,本文还会介绍其他几种实现单例的方式,让我们来一起看看吧。简介单例模式是一种常用的软件设计模式,其定义是单例对象的类只能允许一个实例存在。许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为。比如在某...转载 2019-06-13 07:41:09 · 396 阅读 · 0 评论 -
mavan+Java操作HBase
Hbase作为大数据存储数据库,其写能力非常强,加上Hbase本身就脱胎于Hadoop故和Hadoop的兼容性极好,非常适合于存储半规则数据(灵活、可扩展性强、大数据存储)。基于Hadoop的mapreduce + Hbase存储,非常适合处理大数据。原创 2017-07-19 11:38:15 · 451 阅读 · 0 评论 -
代码行数统计器
import java.io.BufferedReader;import java.io.File;import java.io.FileReader;import java.io.IOException;/** * @Title 代码行数统计器 */public class CodeLinesStatistic { private static long sums = 0;转载 2017-07-04 12:26:55 · 410 阅读 · 0 评论 -
如何用Eclipse创建maven web项目
首先创建一个Maven的Project如下图我们勾选上Create a simple project (不使用骨架)这里的Packing 选择 war的形式由于packing是war包,那么下面也就多出了webapp的目录由于我们的项目要使用eclipse发布到tomcat下面,这里我们需要先把项目转成dynamic web proj转载 2017-05-15 17:45:25 · 2059 阅读 · 0 评论 -
ScheduledExecutorService执行周期性或定时任务
ScheduledExecutorService扩展了ExecutorService接口,提供时间排程的功能。 schedule(Callable callable, long delay, TimeUnit unit) 创建并执行在给定延迟后启用的 ScheduledFuture。schedule(Runnabl转载 2017-05-24 09:31:55 · 567 阅读 · 0 评论 -
获取目录与地址
//获取当前类的路径Thread.currentThread().getContextClassLoader().getResource("").getPath().substring(1);//substring(1)去除路径开头的“/”this.getClass().getResource("").getPath();获取的工程目录new Fil原创 2011-12-02 16:08:52 · 499 阅读 · 0 评论 -
FTP文件上传与下载
实现FTP文件上传与下载可以通过以下两种种方式实现(不知道还有没有其他方式,),分别为:1、通过JDK自带的API实现;2、通过Apache提供的API是实现。第一种方式package com.cloudpower.util;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStr原创 2012-07-13 11:27:33 · 11441 阅读 · 15 评论 -
REST笔记
1、网站即软件,网站开发,完全可以采用软件开发的模式。但是传统上,软件和网络是两个不同的领域,很少有交集;软件开发主要针对单机环境,网络则主要研究系统之间的通信。互联网的兴起,使得这两个领域开始融合,现在我们必须考虑,如何开发在互联网环境中使用的软件。RESTful架构,就是目前最流行的一种互联网软件架构。它结构清晰、符合标准、易于理解、扩展方便,所以正得到越来越多网站的采用。2、如果原创 2012-06-14 16:31:20 · 1455 阅读 · 0 评论 -
浅谈断言
编写代码时,我们总是会做出一些假设,断言就是用于在代码中捕捉这些假设 可以将断言看作是异常处理的一种高级形式 断言表示为一些布尔表达式,程序员相信在程序中的某个特定点该表达式值为真可以在任何时候启用和禁用断言验证,因此可以在测试时启用断言而在部署时禁用断言。同样,程序投入运行后,最终用户在遇到问题时可以重新起用断言。使用断言可以创建更稳定,品质更好且易于除错的代码当需要在一个值转载 2012-06-13 16:08:19 · 698 阅读 · 0 评论 -
正则表达式强悍版
题目,请解释一下两个正则表达式所代表的含义:// 限定条件final String CONDITION = "(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)"; // 允许出现的字符 final String SPECIAL_CHAR = "[-A-Za-z0-9!$%&()/;"; 牛人“bao110908”解答:1、表达式1(?=.*[a原创 2012-06-11 14:57:21 · 1107 阅读 · 0 评论 -
J2EE乱码问题的解决方式
乱码是j2ee中一个比较常见的问题。遇到一两个问题的情况下,可以用new String(request.getParameter(xxx).getBytes("ISO-8859-1"),"UTF-8")来解决。遇到多的情况下,就最好用过滤器。过滤器只需要注意2个地方即可——类和web.xml1.在web.xml上面的发布如下: SetCharsetEncodingFilter原创 2012-06-06 17:42:11 · 820 阅读 · 0 评论 -
JAVA常用方法汇总
第一章 字符串 1、获取字符串的长度 length()2 、判断字符串的前缀或后缀与已知字符串是否相同 前缀 startsWith(String s)后缀 endsWith(String s)3、比较两个字符串 equals(String s)4、把字符串转化为相应的数值 int?Integer.parseInt(字符串)long型 Long.par原创 2011-12-13 17:38:04 · 549 阅读 · 0 评论 -
JMF播放器小例子
/*jdk 1.6 ,需要配置环境变量JMF 2.1.1,先安装,需要配置环境变量。例如:PATH 在末尾添加C:\Program Files\Java\jdk1.6.0_10\bin;CLASSPATH.;C:\JMF211\lib\sound.jar;C:\JMF211\lib\jmf.jar;C:\JMF211\lib;*/import javax.swing.转载 2011-12-20 15:10:32 · 987 阅读 · 0 评论 -
ExecutorService使用
ExecutorService 建立多线程的步骤: 1。定义线程类class Handler implements Runnable{}2。建立ExecutorService线程池ExecutorService executorService = Executors.newCachedThreadPool();或者int cpuN转载 2011-10-27 17:47:11 · 1471 阅读 · 0 评论 -
java并发编程-Executor框架
Executor框架是指java 5中引入的一系列并发库中与executor相关的一些功能类,其中包括线程池,Executor,Executors,ExecutorService,CompletionService,Future,Callable等。他们的关系为: 并发编程的一种编程方式是把任务拆分为一些列的小任务,即Runnable,然后在提交给一个Executor执转载 2011-10-27 17:09:22 · 826 阅读 · 0 评论 -
如何从网页中下载图片
如果做为爬虫很有必要从网页中下载图片到本地,那么我们利用jsoup来进行该操作,jsoup 是一个很不错的html解析器。网页中下载图片需要这么两步操作1.获取绝对路径很多网页中用的是相对路径,因此获取图片的绝对路径很重要方法一:我们就利用jsoup来获取Element image = document.select("img").first();String url =转载 2011-10-27 22:15:32 · 1249 阅读 · 0 评论 -
ExecutorService,也不是想象中的神
原文地址:http://www.iteye.com/topic/628507关于ExecutorService好用的方面就不说了,effective java里面是强烈推荐使用Executor代替自己管理Thread。e.g. Java代码 public static void startReceiver() { Execut转载 2011-10-27 17:53:50 · 891 阅读 · 0 评论 -
Java关于图像文件的相关业务处理
MySQL使用Blob数据类型存储图像,java (1.6)现在支持bmp,jpg, wbmp, png, gif格式的图像。1 从数据库中Blob转为java程序中的Image类实体:java.sql.Blob blob = rs.getBlob("Logo");InputStream fin = blob.getBinaryStream();Image im = javax.i转载 2011-10-27 11:32:00 · 786 阅读 · 0 评论 -
实战Concurrent
编写多线程的程序一直都是一件比较麻烦的事情,要考虑很多事情,处理不好还会出很多意想不到的麻烦。加上现在很多开发者接触到的项目都是打着企业级旗号的B/S项目,大多数人都很少涉及多线程,这又为本文的主角增加了一份神秘感。 讲到Java多线程,大多数人脑海中跳出来的是Thread、Runnable、synchronized……这些是最基本的东西,虽然已经足够强大,但想要用好还真不容易。从转载 2011-10-26 16:28:34 · 748 阅读 · 0 评论 -
java获取当前目录
得到类classes的目录:String classDir = this.getClass().getResource("/").getPath()如果要得到工程根目录:String rootDir = this.getClass().getResource("/")转载 2011-09-28 18:14:44 · 793 阅读 · 0 评论 -
StringUtil类的常用方法
StringUtils 方法的操作对象是 java.lang.String 类型的对象,是 JDK 提供的 String 类型操作方法的补充,并且是 null 安全的(即如果输入参数 String 为 null 则不会抛出 NullPointerException ,而是做了相转载 2011-08-27 15:28:52 · 876 阅读 · 0 评论 -
Java中hashcode()和equals()的详解
今天下午研究了半天hashcode()和equals()方法,终于有了一点点的明白,写下来与大家分享(zhaoxudong 2008.10.23晚21.36)。1. 首先equals()和hashcode()这两个方法都是从object类中继承过来的。 equals(转载 2011-08-07 09:44:49 · 532 阅读 · 0 评论 -
Java与C++以及C语言各有什么区别
C++:JAVA和C++都是面向对象语言。也就是说,它们都能够实现面向对象思想(封装,继乘,多态)。而由于c++为了照顾大量的C语言使用者, 而兼容了C,使得自身仅仅成为了带类的C语言,多多少少影响了其面向对象的彻底性!JAVA则是完全的面向对象语言,它句法更清楚,规模更小,原创 2011-08-06 19:21:08 · 3499 阅读 · 0 评论 -
与日期相关的操作之Timestamp
今天在对Timestamp格式的日期进行操作时遇到了一件很棘手的事情,我的目的是要把求出此格式的日期是星期几,纠结了许久,始终找不到解决此问题的方法。最终,在以下这个网站中找到了答案:http://blog.csdn.net/raycode/article/details/581原创 2011-09-02 18:23:25 · 720 阅读 · 0 评论 -
Java中的抽象类与接口
昨天在面试过程中,面试官问我:抽象类和接口有什么区别,什么时候用抽象类,什么时候用接口?我当时只是答了前半部分:声明方法的存在而不去实现它的类就做抽象类,并且,抽象类中,可以定义自己的数据成员,也可以声明非抽象方法;接口则为抽象类的一种变体,它所声明的变量为static fina原创 2011-08-04 21:06:26 · 447 阅读 · 0 评论 -
ThreadGroup其实比ExecutorService更好
用java做抓取的时候免不了要用到多线程的了,因为要同时抓取多个网站或一条线程抓取一个网站的话实在太慢,而且有时一条线程抓取同一个网站的话也比较浪费CPU资源。要用到多线程的等方面,也就免不了对线程的控制或用到线程池。 我在做我们现在的那一个抓取框架的时候,就曾经用过java.util.concurrent.ExecutorService作为线程池,关于ExecutorService的使用代码大概转载 2011-10-27 18:00:44 · 700 阅读 · 0 评论