Java
文章平均质量分 69
GeekStuff
I will be posting instruction guides, how-tos, troubleshooting tips.
展开
-
tomcat修改用户名
用户名和密码是要在conf目录中的tomcat-users.xml中配置的。打开tomcat-users.xml,在标签下添加如下配置roles在webapp/manager/WEB-INF/web.xml中,默认是manager-ugi,若修改为mamager,则需要修改 manager-ugi改为 tomcat。该文件的role-name全都改。原创 2014-01-08 21:05:32 · 1098 阅读 · 0 评论 -
Java生产者消费者模式实现
Producer Class in java, Producer will allow consumer to * consume only when 10 products have been produced * (i.e. when production is over).原创 2014-08-08 16:55:28 · 910 阅读 · 0 评论 -
中断Java线程
中断一个线程意味着还未完成它的任务之前结束该线程,有效地终止当前的操作。该线程是否死亡、或等待新的任务,或执行下一步依赖于当前应用。 首先,不要使用Thread.stop()方法。它确实能终止一个运行的线程,但是这个方法是不安全的并且是过期的(deprecated),意味着在未来的java版本中不可用。 另一个方法令人困惑的方法Thread.interrupt(),但是该方法不能终止一个运行的线原创 2015-11-14 16:26:42 · 890 阅读 · 0 评论 -
像原生C/C++,序列化Java对象
你曾经希望能够将Java对象object快速地转化为字节流,就像原生语言Java?如果你使用标准的Java Serialization,你会对它的性能感到非常失望。Java Serialization针对不同的使用目的,而不仅仅是快速紧凑地序列化对象。那为什么需要快速紧凑的序列化?我们遇到的大多数系统时分布式的,我们需要在处理任务之间有效地通过传递状态(state)进行交流,这个状态在我们的对象中。翻译 2015-11-01 17:45:47 · 1449 阅读 · 0 评论 -
Top 50 Java 线程并发的面试问题
问题1 什么是executor框架Executor and ExecutorService用于以下场景: - 创建线程 - 启动线程 - 管理整个线程的生命周期 Executor创建线程池并管理线程池中线程的生命周期,在executor框架中,Executor接口和ExecutorService接口被频繁使用。Executor接口定义了execute()方法用于执行命令。Exec翻译 2015-11-15 14:11:53 · 1123 阅读 · 0 评论 -
图解Java NIO Buffer
Buffer四个基本属性1、capacity:能够容纳的最大元素数目,创建时设定并不能更改2、limit: buffer中有效位置数目3、position: 下一个读或者写的位置4、mark: 用于记忆的标志位,配合reset()使用,初始值未设定,调用mark后将当前position设为值标记、位置、限制和容量值有以下关系: 0 <= 标记 <= 位置 <= 限制 <= 容量原创 2015-05-01 17:05:54 · 1169 阅读 · 0 评论 -
JAVA NIO的示例
1:JAVA NIO简介Java NIO非堵塞技术实际是采取Reactor模式,或者说是Observer模式为我们监察I/O端口,假如有内容进来,会自动通知我们,这样,我们就不必开启多个线程死等,从外界看,实现了流畅的I/O读写,不堵塞了。NIO 有一个主要的类Selector,这个类似一个观察者,只要我们把需要探知的socketchannel告诉Selector,我们接着做别的事情,当有事件原创 2013-03-29 09:45:26 · 1054 阅读 · 0 评论 -
HeapByteBuffer和DirectByteBuffer
为避免GC的负效应,使用DirectByteBuffer管理原始(Raw)数据会为高负载的系统带来性能的提升。 DirectByteBuffer默认是由GC 来回收的 , 这通常能够满足需求, 不过也可以通过通过自己控制回收。原创 2014-05-20 11:10:27 · 1973 阅读 · 0 评论 -
集合框架的构成及分类
Collection接口有两个子接口:List(列表) ,Set(集)List:可存放重复元素,元素存取是有序的。 Set:不可以存放重复元素,元素存取是无序的。List接口中常用类:Vector:线程安全,但速度慢,已被ArrayList替代。ArrayList:线程不安全,查询速度快。LinkedList:链表结构,增删速度快。 取出LIst集原创 2012-11-24 10:29:03 · 975 阅读 · 2 评论 -
JVM学习笔记
java XXX -> 装载配置(根据当前路径和系统路径查找jvm.cfg) -> 根据配置查找JVM.dll(JVM主要实现) -> 初始化JVM获得JNIEnv接口(包括findClass等操作) -> 找到main方法执行原创 2014-06-10 15:29:44 · 1148 阅读 · 0 评论 -
ThreadPoolExecutor运行原理
线程池用来管理工作线程,它包含一个队列用来存放等待执行的任务。java的java.util.concurrent.Executors提供了实现java.util.concurrent.Executor这个接口的方法,用来创建线程池。下面从一个简单的例子解释它的运行机制。 创建Runnable类public class WorkerThread implements Runnable { p原创 2015-10-17 21:02:40 · 2368 阅读 · 0 评论 -
Apache Commons IO 示例
Apache Commons IO是由Apache Foundation维护的java库,它提供了多种类库使开发者能够很容易地完成一些常见的任务,简化那些被反复的样板化的代码。这个类库的重要性是巨大的,因为它非常成熟,并且由有经验的开发者维护,他们会考虑到各种情形,和修复他们遇到的不同种类的bug。下面会展示org.apache.commons.io包的几个不同功能,下面的代码会分成以下几类,每一类翻译 2015-11-14 10:59:44 · 1066 阅读 · 0 评论 -
Java正则表达式之反向引用(Backreferences)
反向引用(Backreferences)是Java正则表达式的重要特性。为了理解反向引用,我们先对解释Java正则表达式里面的组。组在正则表达式中意味着将多个字符作为一个单独的单元,通过将字符放在()中,每个()代表一个组。每一组都有一个行号,从1开始。Matcher类的groupCount方法返回模式(pattern)关联Matcher实例组的个数。第0组指向整个表达式。例子原创 2015-10-07 15:02:10 · 5911 阅读 · 0 评论 -
java LockSupport
LockSupport类有着wait() ,notify()类似的功能,不过更精准。 LockSupport.park(Thread thread) ,//阻塞 thread LockSupport.unpark(Thread thread) // 唤醒thread这两个方法是相对应的,其实这两个方法调用的是 Unsafe中对应的方法,而Unsafe原创 2014-07-05 08:27:41 · 948 阅读 · 0 评论 -
Runtime.getRuntime().addShutdownHook(shutdownHook);
这个方法的意思就是在jvm中增加一个关闭的钩子,当jvm关闭的时候,会执行系统中已经设置的所有通过方法addShutdownHook添加的钩子,当系统执行完这些钩子后,jvm才会关闭。所以这些钩子可以在jvm关闭的时候进行内存清理、对象销毁等操作。原创 2013-03-29 10:00:52 · 864 阅读 · 0 评论 -
java WeakHashMap
在 WeakHashMap 中,当某个键不再正常使用时,会被从 WeakHashMap中被自动移除。“弱键”通过 WeakReference和ReferenceQueue 实现。 WeakHashMap的 key是“弱键”,即是WeakReference类型的; ReferenceQueue是一个队列,它会保存被 GC回收的“弱键”。实现步骤是: (1) 新建WeakHashMap,原创 2014-07-11 17:21:12 · 973 阅读 · 0 评论 -
Java多线程状态转换
New状态是指线程刚创建, 尚未启动。Runnable状态是线程正在正常运行中, 当然可能会有某种耗时计算/IO等待的操作/CPU时间片切换等, 这个状态下发生的等待一般是其他系统资源, 而不是锁, sleep等。Blocked状态下,是在多个线程的同步操作, 如正在等待另一个线程的synchronized 块的执行释放, 或者可重入的synchronized块里别人调用wait(原创 2014-02-20 15:34:25 · 1125 阅读 · 1 评论