![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA
文章平均质量分 67
昨日西风紧
被深痛一击过后, 人生不过如此
展开
-
数组转换成字符串
AbstractCollection原创 2014-05-07 14:53:59 · 1091 阅读 · 0 评论 -
数组转换成字符串
不建议用if来判断是否是数组的最后一个元素 public static void main(String[] args) throws ParseException { int[] arr = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; StringBuilder sb1 = new StringBuilder(arr.leng...原创 2014-05-07 11:14:39 · 523 阅读 · 0 评论 -
java单例模式
概念:在Java应用程序中,一个类Class只有一个实例存在运用:1)系统资源,如文件路径,数据库链接,系统常量等2)全局状态化类,类似AutomicInteger的使用优缺点:1)节省内存有利于垃圾回收2)只能使用在特定的环境下,受限制于JVM和容器 单例作用范围的前提是在一个ClassLoad下。所以像分布式应用EJB就要用...原创 2013-09-03 10:24:36 · 106 阅读 · 0 评论 -
java线程池实现
原创 2012-10-24 14:04:46 · 78 阅读 · 0 评论 -
this逃逸
原创 2012-10-31 19:18:30 · 76 阅读 · 0 评论 -
ThreadLocal使用
取的都是不同的副本,互不影响。 ThreadLocal的作用和在每个Thread类声明一个字段相同,那么什么时候使用它呢?还是在编写一些框架时,因为这时你无法预先定义Thread类。其中一个典型的用法是调用一个静态方法,这个静态方法会操作一个ThreadLocal变量,而不同的线程去调用时,访问的就是不同的副本。下面通过这样一个例子来说明:模拟一个游戏,预先随机设定一个[1, 10]的整数,然后每个玩家去猜这个数字,每个玩家不知道其他玩家的猜测结果,看谁用最少的次数猜中这个数字。这个游戏原创 2012-11-05 10:20:01 · 58 阅读 · 0 评论 -
ThreadGroup
取一个网站的话实在太慢,而且有时一条线程抓取同一个网站的话也比较浪费CPU资源。要用到多线程的等方面,也就免不了对线程的控制或用到线程池。 我在做我们现在的那一个抓取框架的时候,就曾经用过java.util.concurrent.ExecutorService作为线程池,关于ExecutorService的使用代码大概如下:java.util.concurrent.Executors类的API提供大量创建连接池的静态方法:1.固定大小的线程池:package BackStage; imp原创 2012-11-05 10:25:22 · 62 阅读 · 0 评论 -
synchronized
2012-11-05 16:12:00 · 74 阅读 · 0 评论 -
在现有的类上添加一个原子操作
lic class BetterVector<E> extends Vector<E> { public synchronized boolean putIfAbsent(E x) { boolean absent = !contains(x); if (absent) add(x); return absent; }} 这种方法的缺点很脆弱原创 2012-11-05 18:37:04 · 139 阅读 · 0 评论 -
java 闭锁
2012-11-06 14:35:39 · 72 阅读 · 0 评论 -
java 闭锁
get方法而获取结果只有在计算完成时获取,否则会一直阻塞直到任务转入完成状态,然后会返回结果或者抛出异常。 Future 主要定义了5个方法: 1)boolean cancel(boolean mayInterruptIfRunning):试图取消对此任务的执行。如果任务已完成、或已取消,或者由于某些其他原因而无法取消,则此尝试将失败。当调用 cancel 时,如果调用成功,而此任务尚未启动,则此任务将永不运行。如果任务已经启动,则 mayInterruptIfRunning 参数确定是原创 2012-11-06 16:22:22 · 70 阅读 · 0 评论 -
java 栅栏
也没有要求大家要同时起跑(当然也可以,加latch)。import java.util.concurrent.BrokenBarrierException;import java.util.concurrent.CyclicBarrier;public class Beer { public static void main(String[] args) { final int count = 5; final CyclicBarrier barrier = new Cy2012-11-06 18:59:32 · 92 阅读 · 0 评论 -
解决 - java.lang.OutOfMemoryError: unable to create new native thread
原创 2013-06-28 15:40:23 · 111 阅读 · 0 评论 -
java 设计模式
原创 2013-07-16 13:49:42 · 67 阅读 · 0 评论 -
java单例模式
,类似AutomicInteger的使用优缺点:1)节省内存有利于垃圾回收2)只能使用在特定的环境下,受限制于JVM和容器 单例作用范围的前提是在一个ClassLoad下。所以像分布式应用EJB就要用其它的方式来解决单例问题。Demo:分别列出多种实现方式,各分析其优缺点1)静态成员直接初始化,或者在静态代码块初始化都可以 Java代码 class Singleton{ private Singleton()原创 2013-09-03 10:24:36 · 62 阅读 · 0 评论 -
java+db 树的存储和查询
原创 2013-11-20 13:38:16 · 124 阅读 · 0 评论 -
java 设计模式
转载: http://blog.csdn.net/chmask/article/details/2631485创建模式1.工厂方法模式(Factory Method) 将程序中创建对象的操作,单独出来处理,创建一个产品的工厂接口,把实际的工作转移到具体的子类。大大提高了系统扩展的柔性,接口的抽象化处理给相互依赖的对象创建提供了最好的抽象模式。[java] view p...原创 2013-07-16 13:49:42 · 90 阅读 · 0 评论 -
java+db 树的存储和查询
存储树形结构有很多种方式1 存储父的ID2 存储树的前序、中序、后序等关系3 存储左右节点的顺序 第一种呢,数据存储比较简单,但是应用层构造树的时候,会比较复杂,毕竟递归性能不好。第二、三种插入节点的时候 计算节点的顺序比较复杂 前几天看到文章介绍存储深度的方式,我觉得很靠谱。首先第一种方法构造树的复杂是因为节点是无序的,可能遍历的是子节点,此时根本找不到父节点。...原创 2013-11-20 13:38:16 · 321 阅读 · 0 评论 -
解决 - java.lang.OutOfMemoryError: unable to create new native thread
解决 - java.lang.OutOfMemoryError: unable to create new native thread 工作中碰到过这个问题好几次了,觉得有必要总结一下,所以有了这篇文章,这篇文章分为三个部分:认识问题、分析问题、解决问题。 一、认识问题:首先我们通过下面这个 测试程序 来认识这个问题:运行的环境 (有必要说明一下,不同环境会有不...原创 2013-06-28 15:40:23 · 91 阅读 · 0 评论 -
JAVA多线程
Java并发编程---学习笔记1. 多线程Java并发编程是采用多线程进行编程。多线程的引入可以提高程序运行的效率。1.1 线程创建一个线程一般有三种方法:1.1.1 Runnable(1) 创建一个实现了Runnable接口的一个实例, 重写run()方法(2) 用创建的实例构造一个线程(3) 调用start()方法启动线程,线程会执行Runnable原创 2014-05-07 13:32:43 · 665 阅读 · 0 评论 -
树的存储和构建
在关系型数据库中,经常需要存储树状结构的数据原创 2014-05-07 15:49:47 · 523 阅读 · 0 评论 -
xfire发布ws服务-同名函数问题
客户端引用xfire的服务的时候,调用方法时出现错误:Exception in thread "main" org.codehaus.xfire.XFireRuntimeException: Could not invoke service.. Nested exception is org.codehaus.xfire.fault.XFireFault: Index: 2, Size: 2原创 2014-05-07 19:00:27 · 597 阅读 · 0 评论 -
Check Exception or Uncheck Exception
Check Exception or Uncheck Exception最近遇到Spring MVC的系统中有各种乱七八糟的异常,领导说重构下,统一的异常处理、支持国际化。系统现状:1. 系统中的异常一般有一个统一处理异常的AOP,但是没有严格的错误码,抛异常文案都是直接裸露在业务代码中2. 系统抛的异常大多没有业务含义,NP也没有处理,大多都是直接的java代码级别的异常原创 2016-07-25 09:21:45 · 1642 阅读 · 0 评论 -
JAVA8特性之STREAM
Java 8 引入了流式操作(Stream),通过该操作可以实现对集合(Collection)的并行处理和函数式操作。根据操作返回的结果不同,流式操作分为中间操作和最终操作两种。最终操作返回一特定类型的结果,而中间操作返回流本身,这样就可以将多个操作依次串联起来。根据流的并发性,流又可以分为串行和并行两种。流式操作实现了集合的过滤、排序、映射等功能。使用Stream分为3个步骤1) 创建S转载 2016-08-11 15:20:01 · 32069 阅读 · 3 评论 -
java线程池实现
转载于:http://www.cnblogs.com/slider/archive/2012/01/16/2323895.html 以前做的东西,实现一个简单的多线程机制,开始之前,现说说原理性的东西吧,下面是我在ibm开发者上搜到的内容线程池的技术背景 在面向对象编程中,创建和销毁对象是很费时间的,因为创建一个对象要获取内存资源或者其它更多资源。在Java中更是如此,虚拟机将试图跟...原创 2012-10-24 14:04:46 · 69 阅读 · 0 评论 -
this逃逸
转载:http://coolxing.iteye.com/blog/1464501this逃逸是指在构造函数返回之前其他线程就持有该对象的引用. 调用尚未构造完全的对象的方法可能引发令人疑惑的错误, 因此应该避免this逃逸的发生.this逃逸经常发生在构造函数中启动线程或注册监听器时, 如:Java代码 public class ThisEscape {...原创 2012-10-31 19:18:30 · 184 阅读 · 0 评论 -
ThreadLocal使用
转载http://gaofeihang.blog.163.com/blog/static/84508285201293071940706/ThreadLocal的含义是Thread Local Variable,它可以声明一个字段,使得不同的线程访问这个字段时,获取的都是不同的副本,互不影响。 ThreadLocal的作用和在每个Thread类声明一个字段相同,那么什么时候使用它呢?还是在...原创 2012-11-05 10:20:01 · 129 阅读 · 0 评论 -
ThreadGroup
ThreadGroup转载: http://www.cnblogs.com/yy2011/archive/2011/05/05/2037564.html 用java做抓取的时候免不了要用到多线程的了,因为要同时抓取多个网站或一条线程抓取一个网站的话实在太慢,而且有时一条线程抓取同一个网站的话也比较浪费CPU资源。要用到多线程的等方面,也就免不了对线程的控制或用到线程池。 我在做我们现在...原创 2012-11-05 10:25:22 · 149 阅读 · 0 评论 -
synchronized
synchronized java中synchronized可以修饰方法和对象,修饰方法又包括静态方法和非静态方法。synchronized修饰方法并不是表示锁住了方法,其实还是锁对象。public class ThreadTest { public static void main(String[] args) throws InterruptedException {...2012-11-05 16:12:00 · 78 阅读 · 0 评论 -
在现有的类上添加一个原子操作
摘录自《java并发编程实战》 为现有的类添加原子操作推荐用组合的方法。例如为Vector增加一个"若没有则添加"的方法。有以下几种方案:1. 继承public class BetterVector<E> extends Vector<E> { public synchronized boolean putIfAbsent(E x) { ...原创 2012-11-05 18:37:04 · 141 阅读 · 0 评论 -
java 闭锁
闭锁1定义: 在闭锁到达结束状态之前,这扇们一直是关闭的,并且没有线程能通过,当到达结束状态时,这扇门会打开并允许所有的线程通过。 举例:计算n个人比赛跑步。比赛跑步要保证n个人是同步听见枪响。 public long runSample(int n, final Runnable runSport) throws InterruptedException { ...2012-11-06 14:35:39 · 132 阅读 · 0 评论 -
java 闭锁
闭锁2FutureTask也可以用作闭锁。以下关于future的内容转载于http://uule.iteye.com/blog/1539084public interface Future<V> Future 表示异步计算的结果。Future有个get方法而获取结果只有在计算完成时获取,否则会一直阻塞直到任务转入完成状态,然后会返回结果或者抛出异常。 Future 主...原创 2012-11-06 16:22:22 · 108 阅读 · 0 评论 -
java 栅栏
转载:http://blog.csdn.net/lmc_wy/article/details/7866863栅栏规定五个人只要都跑到终点了,大家可以喝啤酒。但是,只要有一个人没到终点,就不能喝。 这里也没有要求大家要同时起跑(当然也可以,加latch)。import java.util.concurrent.BrokenBarrierException;import java.ut...2012-11-06 18:59:32 · 180 阅读 · 0 评论 -
数组转换成字符串
uilder sb1 = new StringBuilder(arr.length); // 1 for (int i = 0, len = arr.length; i < len; i++) { if (i > 0) { sb1.append(", "); } sb1.append(arr[i]);原创 2014-05-07 11:14:39 · 161 阅读 · 0 评论