`
文章列表
枚举   什么时候需要使用枚举? 当程序中需要使用到一组常量(整型,字符串)时,就应该使用枚举对这些常量进行封装。 如,星期一到星期天、性别分男和女等   使用枚举可以带来哪些好处: 类型安全,防止传入错误的参数值 可读性好,比int值强 不易出错,比硬编码字符串到程序各个角落好 枚举实例可以具备行为,操作起来更加方便   使用枚举替换int常量和字符串常量   public enum Sex { MALE, FEMALE; }   用实例域替代枚举自身的序数   如果需要使用枚举常量的序数,最好自己定义,不要使用默认的ordinal实现 ...

jQuery-基础

HTML 页面组成:  基本的标签 + 样式 + 行为 markup : HTML标签 style   : 样式,CSS  script  : 行为,jQuery   Write less, do more!   var checkedValue = jQuery('input:radio[name="someRadio"]:checked').val();     你需要什么功能?  页面事件 ...
使用ReadWriteLock模拟简单的缓存管理器   package thread.lock; import java.util.HashMap; import java.util.Map; import java.util.concurrent.locks.ReadWriteLock; import java.util.concurrent.locks.ReentrantReadWriteLock; /** * readLock 与 readLock 不互斥 * readLocak 与 writeLock 互斥 * writeLock 与 wri ...
  Java5对共享资源访问的解决方案: 1个锁上绑定多个监视器   package thread.lock; import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; /** * 使用Java5新的共享资源处理方式 * Lock * Condition * * 最大的不同:1个锁上可以绑定多个监视器! * 让线程的等待与唤醒更明确 ...
  多线程协作完成任务时用?如IO异步编程? package thread.pool; import java.util.Random; import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; import java.u ...
通过Executors创建定时任务 相对时间的计算: long period = new Date("2014-10-1").getTime - System.getCurrentTimeMills     package thread; import java.util.Date; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; impor ...
  共享资源定义为成员变量 run()定义在内部类中,这样,内部类中的线程就可以直接访问同一份资源了   package thread; /** * 多线程共享资源的方式一: * * 操作共享资源的run()放到内部类中,然后操作外部类中定义的资源 * * 1个线程负责加,1个线程负责减 */ public class ShareDataStyle1 { private int sharedData = 100; public synchronized void add() { sharedData++; System.o ...
模拟2个线程操作共享资源时的如何交互   package thread; /** * 简单的2个线程间交替执行示例 * 通过synchronized保证对资源的“原子操作”不被打断 * 通过线程通信实现切换运行 */ public class TwoThreadsCommunication { public static void main(String[] args) { new TwoThreadsCommunication().justDoIt(); } public void justDoIt() { ...
通过util.concurrent.Executors直接创建线程池,非常方便   package thread.pool; import java.util.Random; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; /** * 使用线程池的好处: * 线程池维护一定数量的worker线程 * 调用者只需将任务放入到线程池中即可 * 具体任务的执行交给线程池中的线程去完成 * 主要为了提高系统响应能力 * conc ...
  本例充分演示了ThreadLocal在多线程环境下,与线程绑定后的数据操作是完全隔离的! 放心使用ThreadLocal吧!千万记得用完之后要remove!     package thread; import java.util.Date; import java.util.Random; /** * 线程范围内的变量,每个线程都有自己的一份数据,换不干扰 * * 原理: * ThreadLocal类中通过Map<Thread.currentThread(), Object>实现数据与线程绑定的! * Map的key就是线程自己 ...

一些SQL语句

  select distinct xfield from xTable fetch first 10 rows only   insert into xTable values ('值1','AAA','值3','值4'); --复制数据 insert into xTable select filed1,'BBB',field3 from xTable where field2 = 'AAA';
  编辑${Tomcat-Home}/bin目录下的setclasspath.bat文件   在下面的行之后加入set JAVA_HOME=D:\letter\jdk7 rem --------------------------------------------------------------------------- rem Set CLASSPATH and Java options rem ---------------------------------------------------------------------------    
OutOfMemoryError: PermGen Space     先提供解决办法 Solution By default, Tomcat is assigned a very little PermGen memory for the running process. To fix it, increase the PermGen memory settings by using the following Java VM options.   -XX:PermSize<size> - Set initial PermGen Size. -XX:MaxPer ...
  最简陋的办法:   场景: 日志使用logback进行记录,存放位置在${Catalina_Home}/appLogs/letter目录中 如,记录的当天日志为:${Catalina_Home}/appLogs/letter/letter.log   首先修改本地Host文件,增加一个IP与网址的对应关系(网址爱怎么写怎么写) 127.0.0.1   showlogs   在server.xml中添加一个虚拟主机:showlogs <Host name="showlogs" appBase="appLogs"> ...

多线程基础

    博客分类:
  • Java
http://www.ibm.com/developerworks/library/j-jtp0730/index.html       学习编程的目的:解决问题/开发用户需要的功能   多线程可以解决什么问题? 将不同的子任务交给不同的线程去执行,提高系统响应速度(比单一线程执行所有任务更快)   从最简单的开始,如何创建线程! run() : 封装线程要运行的任务,所以将线程要运行的代码封装到run()中即可! 方式一:创建一个类直接继承Thread类,并覆盖run() 方式二:创建一个类实现Runnable接口,实现run(),再将此类的实例传入Thread构造 ...
Global site tag (gtag.js) - Google Analytics