
java
文章平均质量分 69
liang_Henry
成功要努力
展开
-
javax.ejb.EJBException: java.lang.ClassNotFoundException: org.apache.cxf.Bus from BaseClassLoader
javax.ejb.EJBException: java.lang.ClassNotFoundException: org.apache.cxf.Bus from BaseClassLoader@5f0d2e原创 2013-08-23 17:47:59 · 4283 阅读 · 1 评论 -
java 多线程 线程之间的协作 notify()和notifyAll()
使用notify()而不是notifyAll()是一种优化。使用notify()时,在众多等待同一个锁的任务中只有一个会被唤醒,因此如果你希望使用notify(),就必须保证被唤醒的是恰当的任务。另外,为了使用notify(),所有任务必须等待相同的条件,因为如果你有多个任务在等待不同的条件,那么你就不会知道是否唤醒了恰当的任务。如果使用notify(),当条件发生变化时,必须只有一个任务能够从中原创 2016-12-22 14:19:45 · 588 阅读 · 1 评论 -
java 多线程 终结任务 关于I/O和synchronized
import java.io.IOException;import java.io.InputStream;import java.sql.Date;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.Future;im原创 2016-12-15 11:03:11 · 925 阅读 · 0 评论 -
java 多线程 终结任务 装饰性花园
import java.util.ArrayList;import java.util.List;import java.util.Random;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.TimeUnit;/原创 2016-12-07 13:48:36 · 506 阅读 · 0 评论 -
java 多线程 解决资源冲突
/** * 在其他对象上同步 * * DualSync.f()(通过同步整个方法)在this同步,而g()有一个在syncObject上同步 * 的synchronized块。因此,这两个同步是互相独立的。 * * @create @author Henry @date 2016-12-06 */class DualSynch { private Object syncOb原创 2016-12-06 17:46:45 · 2614 阅读 · 0 评论 -
java 多线程 临界区的操作
import java.util.ArrayList;import java.util.Collections;import java.util.List;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.TimeUni原创 2016-12-06 14:19:38 · 1282 阅读 · 0 评论 -
java 多线程 异常处理
import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;/** * 线程抛出异常实例。try catch是无法捕获异常的。 * * @create @author Henry @date 2016-11-23 * */public class ExceptionRun e原创 2016-11-23 15:34:55 · 430 阅读 · 0 评论 -
java 多线程 join 方法简单实例。
/** * * join()方法解释: * 一个线程可以在其他线程之上调用Join()方法,其效果是等待一段时间直到第二个线程结束才继续执行。 * 如果某个线程在另一个线程t上调用t.join(),此线程将被挂起,直到目标线程t结束才恢复 * (即t.isAlive()返回为假)。 * 也可以在调用join()时带上一个超时参数(单位可以是毫秒,或者毫秒和纳秒), * 这样如果目标线程原创 2016-11-23 11:14:34 · 560 阅读 · 0 评论 -
java 线程 简单例子
本片文章以Java多线程简单实力为主,全部的例子选自java 编程思想第四版,全部都是自己手动对书 编写,如有疑问请直接留言。import java.util.ArrayList;import java.util.concurrent.Callable;import java.util.concurrent.ExecutionException;import java.util.conc原创 2016-11-18 11:20:12 · 2088 阅读 · 0 评论 -
java 多线程 内部类实现
import java.util.concurrent.TimeUnit;/** * InnerThread1 创建了一个扩展自Thread 的匿名内部类, * 并且在构造器中创建了一个内部类的一个实例。如果内部类 * 具有你在其他方法中需要访问的特殊能力(新方法),那这么 * 做将会很有意义。但是,在大多数时候,创建线程的原因只是为 * 了使用Thread的能力,因此不必要创建匿名原创 2016-11-18 17:06:25 · 7556 阅读 · 0 评论 -
java 多线程 原子类
import java.util.Timer;import java.util.TimerTask;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.atomic.AtomicInteger;/** * Java SE原创 2016-11-30 10:37:49 · 408 阅读 · 0 评论 -
java 多线程 原子性和易变性的理解(还有可视性)
volatile关键字还确保了应用中的可视性。如果你将一个域声明为volatile的,那么只要对这个域产生了写操作,那么所有的读操作就都可以看到这个修改。即便使用了本地缓存,情况也确实如此,volatile域会立即被写入到主存中,而读取操作就发生在主存中。 理解原子性和易变性是不同的概念这一点很重要。在非volatile域上的原子操作不必刷新到主存中去,因此其他读取该域的任务也不必看原创 2016-11-29 16:02:23 · 1264 阅读 · 1 评论 -
Java 多线程 生产者和消费者
import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.TimeUnit;/** * 生产者和消费者 * * 请考虑这样一个饭店,它有一个厨师和一个服务员。这个服务员必须等待厨师准备好膳食。当厨师准备好时,他会通知服务员原创 2016-12-22 17:25:50 · 357 阅读 · 0 评论 -
Java 多线程 锁存器 CountDownLatch
import java.util.Random;import java.util.concurrent.CountDownLatch;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.TimeUnit;/** * Co原创 2017-01-03 10:47:58 · 504 阅读 · 0 评论 -
Java 9 新特性概述
在网上找到的,先标明原著:https://www.ibm.com/developerworks/cn/java/the-new-features-of-Java-9/index.html Java 9 正式发布于 2017 年 9 月 21 日 。作为 Java8 之后 3 年半才发布的新版本,Java 9 带来了很多重大的变化。其中最重要的改动是 Java 平台模块系统的引入。除此之外,...转载 2018-03-21 15:25:59 · 631 阅读 · 0 评论 -
分布式系统中Java程序优化
分布式系统中Java程序优化选取图书《大型分布式网站架构设计与实践》作者:陈康贤单例对于I/O处理、数据库连接、配置文件解析加载等一些非常消耗资源的操作,我们必须对这些势力的创建进行限制,或者始终使用过一个公共的实例,以节约系统开销,这种情况下就需要使用单例模式。 public class Singleton { private static Singleton in...转载 2018-03-19 14:52:27 · 401 阅读 · 0 评论 -
Java实现两个有序的单项链表的合并
无意中看到一道题,如下:现有两个有序(升序)的单向链表,请编写程序将这两个链表合并成一个,并确保合并后的链表也是升序的单向升序链表定义:public class ListNode { int val; ListNode next; ListNode(int x) { val = x; }}请在下面的代码框架基础上编写:public class Solutio原创 2016-10-27 10:21:55 · 10235 阅读 · 6 评论 -
oracle数据类型和对应的java类型
地址:http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/java.102/B19275-03/datacc.htm#BHCJBJCCSQL数据类型JDBC类型代码标准的Java类型Oracle扩展的Java类型 1.0标准的JDBC类型: CHARjava.sq转载 2017-02-16 10:51:05 · 820 阅读 · 0 评论 -
Java 多线程 优先级队列 PriorityBlockingQueue
import java.util.ArrayList;import java.util.List;import java.util.Queue;import java.util.Random;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util原创 2017-01-05 17:38:12 · 4594 阅读 · 0 评论 -
Java 多线程 无界的BlockingQueue DelayQueue
import java.util.ArrayList;import java.util.List;import java.util.Random;import java.util.concurrent.DelayQueue;import java.util.concurrent.Delayed;import java.util.concurrent.ExecutorService;im原创 2017-01-05 14:26:23 · 1765 阅读 · 2 评论 -
java 多线程 死锁 哲学家就餐问题
现在你理解了,一个对象可以有synchronized方法或其他形式的加锁机制来防止别的任务在互斥还没有释放的时候就访问这个对象。你已经学习过,任务可以变成阻塞状态,所以就可能出现两种情况:某个惹我怒在等待另一个任务,而后者又等待别的任务,这样一直下去,直到这个链条上的任务又在等待第一个任务释放锁。这得到了一个任务之间相互等待的连续循环,没有哪个线程恩给你继续。这被称之为 死锁 。 如果原创 2016-12-28 14:39:49 · 3990 阅读 · 1 评论 -
Java 多线程 任务间使用管道进行输入/输出
通过输入/输出在线程间进行通信通常很有用。提供线程功能的类库以“管道”的形式对线程的输入/输出提供了支持。它们在Java输入/输出类库中的对应物就是PipedWriter类(允许任务向管道写)和PipedReader类(允许不同任务从同一个管道中读取)。这个模型可以看成是“生产者-消费者”问题的变体,这里的管道就是一个封装好的解决方案。管道基本上是一个阻塞队列,存在于多个引入BlockingQue原创 2016-12-23 16:35:48 · 1179 阅读 · 0 评论 -
Java 多线程 生产者和消费者 队列
wait()和notifyAll()方法以一种非常低级的方式解决了任务互操作问题,即每次交互时都握手。在许多情况下,你可以瞄向更高的抽象级别,使用同步队列来解决任务协作问题,同步队列在任何时刻都只允许一个任务插入或移除元素。在java.util.concurrent.BlockingQueue接口中提供了这个队列,这个接口有大量的标准实现。你通常可以使用LinkedBlockingQueue,它是原创 2016-12-23 15:07:18 · 2576 阅读 · 0 评论 -
Java 多线程 线程互相等待 CyclicBarrier
先介绍一下JDK内容:java.util.concurrent 类 CyclicBarrierjava.lang.Object 继承者 java.util.concurrent.CyclicBarrier--------------------------------------------------------------------------------public c原创 2017-01-03 16:09:33 · 1144 阅读 · 0 评论 -
java 多线程 异常情况 和 lock的简易用法
/** * 说明: 其中一个任务产生偶数,而其他任务消费这些数字。 * 这里,消费者任务的唯一工作就是检查偶数的有效性。 * * @create @author Henry @date 2016-11-24 * *//** * 首先,我们定义EvenChecker,即消费者任务,因为它将在随后所有的 * 示例中被复用。为了将EvenChecker与我们要试验的各种类型的生成器原创 2016-11-29 10:53:53 · 601 阅读 · 0 评论 -
Java 版本的单项链表插入
前言:今天去一家公司去面试,聊了一会然后让我手写一段单项链表的插入,其实题目很简单。可是自己把自己绕到递归中去了。然后我就呵呵了。晚上下班回家,自己又重新整理了一下思路,写了一下代码。import java.util.Random;/** * 单项列表插入的测试类 * @date 2016-09-18 * @author Henry * */public class YK原创 2016-09-18 22:43:37 · 537 阅读 · 0 评论 -
枚举工厂表示形式
话不多说,直接上代码:/** * 枚举工厂第一种表示形式 */public enum CarFactory { FordCar, BuickCar; public Car create() { switch (this) { case FordCar: return new FordCar(); case BuickCar: return new BuickC原创 2016-09-12 16:27:17 · 871 阅读 · 0 评论 -
java float 和 double 的 bug 和解决办法BigDecimal
import java.math.BigDecimal;public class DoubleBug { public static void main1(String[] args) { double funds = 1.00; int itemsBought=0; for(double price =.10;funds>=price;price+=.10){ funds原创 2014-06-18 10:58:00 · 1190 阅读 · 0 评论 -
java for-each
import java.util.ArrayList;import java.util.Arrays;import java.util.Collection;import java.util.Iterator;import java.util.List;public class ForEachTest { public static void main(String[] args)原创 2014-06-18 10:43:55 · 581 阅读 · 0 评论 -
java annotation 注解 异常处理
package com.le;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.a原创 2014-06-13 14:49:02 · 2354 阅读 · 0 评论 -
Java 断言
//java断言 失败会抛出异常 AssertionError public static void sort(long a[],int offset,int length){ assert a!=null; assert offset>=0&&offset<=a.length; assert length >=0&&length<=a.length-offset; }原创 2014-06-13 14:46:18 · 627 阅读 · 0 评论 -
java enumMap
import java.util.EnumMap;import java.util.Map;public enum Phase { SOLID,LIQUID,GAS; public enum Transition{ MELT,FREEZE,BOIL,CONDENSE,SUBLIME,DEPOSIT; // Rows indexed by src-ordinal , cols by原创 2014-06-12 15:21:47 · 930 阅读 · 0 评论 -
java,线程操作,同步访问共享的可变数据
package com.liang.thread;import java.util.concurrent.TimeUnit;public class StopThread { private static /*volatile*/ boolean stopRequested; private static synchronized void requestStop(){ sto原创 2014-07-02 16:58:02 · 618 阅读 · 0 评论 -
java 策略枚举
public enum PayrollDay { MONDAY, TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY,SUNDAY; private static final int HOURS_PER_SHIFT=8; double pay(double hoursWorked,double payRate){ double basePay = h原创 2014-06-12 14:29:37 · 1501 阅读 · 1 评论 -
java 自定义枚举
public enum Planet { MERCURY(3.3,2.4), VENUS(4.8,6.052); private final double mass; private final double radius; private final double surface; private static final double G=6.6; Planet(doub原创 2014-06-12 11:04:52 · 746 阅读 · 0 评论 -
简易的递归
import java.util.ArrayList;import java.util.concurrent.Callable;import java.util.concurrent.ExecutionException;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;im原创 2014-07-02 15:05:33 · 600 阅读 · 0 评论 -
java 枚举实现接口
public interface IOperation { double apply(double x,double y);}enum BasicOperation implements IOperation{ PLUS("+"){ public double apply(double x,double y){return x+y;} }, MINUS("-"){ public原创 2014-06-12 15:54:14 · 2978 阅读 · 0 评论 -
把List变成Map
public static void main(String[] args) {List fxrAndShowInfoYh2=new ArrayList();Map testMap=new HashMap();testMap.put("fxr", "a");testMap.put("b", "b");fxrAndShowInfoYh2.add(testMap);Map原创 2014-02-14 12:01:53 · 983 阅读 · 0 评论 -
java 数组 解决 约瑟夫问题 算法
N个人围成一圈,从第一个开始报数,第M个将被杀掉,最后剩下一个,其余人都将被杀掉。原创 2014-11-12 16:55:21 · 3591 阅读 · 0 评论 -
java Float和Double 之间的相互转型问题
由于float 是单精度浮点小数,而double 是双精度浮点小数单精度型能精确到七位,而双精度能精确到15位。用户在选用这些数据类型时,要注意变量所取值的范围。并且数值为整数时,为了运算速度,不用把变量硬定义为浮点型。如果要将Float和Double之间相互转型,java 提供了一下方法Float.doubleValue()和Double.floatValue()查看JDK1.6中对原创 2015-05-27 10:50:52 · 21534 阅读 · 2 评论