- 博客(10)
- 资源 (6)
- 收藏
- 关注
原创 线程之间的协作wait/notify
例子: 一个任务将蜡涂到Car上,一个抛光它。抛光任务在涂蜡任务完成之前,是不能执行基工作的,而涂蜡任务在涂另一层蜡之前,必须等抛光任务完成。WaxOn和WaxOff都使用了Car对象,该对象在这些任务等待条件变化的时候,使用wait()和notifyAll()来挂起和重新启动这些任务:class Car { private boolean waxOn = false;
2015-03-29 22:56:43 610
原创 Thread笔记
1.yield();静态方法Thread.yield()的调用是对线程调度器(java线程机制的一部分,可以将CPU从一个线程转移给另一个线程)的一种建议,
2015-03-29 00:00:03 701
原创 ConcurrentHashMap笔记
在容器Map中,HashMap对数据的操作效率快,但是不加锁,不安全;虽然Hashtable对数据的操作是加锁的,安全,但是对象级加锁的,整个对象都加锁了,比如,现在需要对Hashtable进行put操作,而同时已经对Hashtable有get操作,则put操作需要等get操作完后释放对象的锁才继续进行,这样效率上会有所降低。即需要解决效率,也需要考虑问题,java提供了java.util.con
2015-03-27 00:00:41 849
原创 String和字符串常量池
所说的字符串常量池也是常量池中的一部分。String str = "abc";先看字符串常量池是否存在对象"abc",如果不存在,则在字符串常量池创建对象"abc",栈中的引用str再指向对象"abc"的地址;如果存在,栈中的引用str直接指向对象"abc"的地址;String str = new String("abc");先看字符串常量池是否存在对象"abc",
2015-03-24 21:29:58 1243
原创 java对象存储
在java中,有五个不同的地方可以存储数据:1)寄存器。这是最快的存储区,因为它位于不同于其他存储区的地方--处理器内部。但是寄存器的数量极其有限,所以寄存器根据需求进行分配。你不能直接控制,也不能在程序中感觉到寄存器存在的任何迹象。2)堆栈。位于通用RAM(随机访问存储器)中,但通过堆栈指针可以从处理器那里获得直接支持。堆栈指针若向下移动,则分配新的内存;若向上移动,则释放那些内
2015-03-23 22:08:02 737
原创 jsp转成serlet解析
在服务器里,jsp文件转换成java类,即是servlet类,本文解析下详情。javax.servlet.GenericServletpackage javax.servlet;public abstract class GenericServlet implements Servlet, ServletConfig, Serializable{…public abstract
2015-03-19 23:50:03 551
原创 命令行执行java程序
1、类没有包名在目录f:\jsp\myproject\src下public class CmdExecution { public static void main(String[] args){ System.out.println("you."); }}进入cmd,cd到f:\jsp\myproject\src下,执行:javac CmdExecution.ja
2015-03-17 23:41:39 966
转载 java 类加载器
载自:http://www.ibm.com/developerworks/cn/java/j-lo-classloader/类加载器是 Java 语言的一个创新,也是 Java 语言流行的重要原因之一。它使得 Java 类可以被动态加载到 Java 虚拟机中并执行。类加载器从 JDK 1.0 就出现了,最初是为了满足 Java Applet 的需要而开发出来的。Java Applet 需要
2015-03-08 11:52:02 527
java连接redis的驱动包
2014-04-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人