- 博客(20)
- 资源 (4)
- 问答 (1)
- 收藏
- 关注
转载 java线程池的基本使用
四种线程池在Executors中提供了四种线程池:newCachedThreadPool 可缓存线程池,对于每个线程,如果有空闲线程可用,立即让它执行,如果没有,则创建一个新线程newFixedThreadPool 具有固定大小的线程池,如果任务数大于空闲的线程数,则把它们放进队列中等待newSingleThreadPool大小为1的线程池,任务一个接着一个完成newScheduledTh
2015-08-15 09:52:25 600
原创 java线程池的原理学习
Executor接口如果查看jdk文档,会发现java线程池都源自于这个超级接口Executor,但是这个接口本身比较简单:public interface Executor { /** 在未来某个时间执行给定的命令。该命令可能在新的线程、已入池的线程或者正调用的线程中执行, 这由 Executor 实现决定。 * * @param com
2015-08-15 09:36:59 552
原创 Callable和Future
Callable相对于Runnable,Callable并不是很让人熟知,其实Callable和Runnable很类似,只不过它有返回值,并且也没有run()方法,而是有call()方法。public interface Callable<V>{ V call() throw Exception;} Callable 接口类似于 Runnable,两者都是为那些其实例可能被另一个线程执
2015-08-13 16:28:27 492
原创 CopyOnWrite
package test1;import java.text.SimpleDateFormat;import java.util.Date;/** * Created by smyhvae on 2015/8/12. */public class Student { String num; //学号 String name; //姓名 char sex; /
2015-08-13 08:37:34 567
原创 ConcurrentHashmap使用注意事项
ConcurrentHashmap是jdk1.5之后引入的并发工具集合类,可以将其看作并发效率更高的map,用来替代Hashtable和synchronizedMap,但是ConcurrentHashmap只能保证自身数据在多线程的环境下不被破坏,而并不能保证业务逻辑的正确性。举个例子:资源池中经常需要将某个资源放到一个map中缓存起来,等到需要的时候再从map中获取,代码如下:code1:pri
2015-08-12 10:29:52 2723
原创 java多线程零碎知识点
相比于ReetrantLock,使用synchronized来编写代码要简洁的多,之所以能使用synchronized,是因为每个对象都有一个内部锁,并且该锁有一个内部条件。由锁来管理那些试图进入synchronized方法的线程,由条件来管理那些调用wait的线程将静态方法声明为synchronized也是允许的,如此则会获得特定类的内部锁,如一个类Person,当该方法被调用时,该方法将会获得
2015-08-09 16:13:59 482
原创 线程局部变量ThreadLocal
在java多线程中,除了通过同步来达到线程间共享变量,还可以使用ThreadLocal辅助类为每个线程提供各自的实例,比如:public static final SimpleDateFormat format = new SimpleDateFormat("yyyy-mm-dd");如果多个线程同时执行以下操作:String date = format.format(new Date());结果可
2015-08-08 17:00:55 493
原创 如何中断线程?
java中如何中断一个正在运行的线程? stop方法已经被弃用了,interrupt方法可以被用来请求中断一个线程。但是在使用中有个误区:package concurrent;public class InterruptedTest implements Runnable{ public static void main(String[] args) throws InterruptedEx
2015-08-07 15:55:54 593
原创 Java String StringBuffer StringBuilder 的区别
String:字符串常量,字符串长度不可变。Java中String是immutable(不可变)的。String类的包含如下定义:[java] view plaincopy/** The value is used for character storage. */ private final char value[];
2014-10-27 15:34:55 892
转载 Java并发编程:可重入内置锁
每个Java对象都可以用做一个实现同步的锁,这些锁被称为内置锁或监视器锁。线程在进入同步代码块之前会自动获取锁,并且在退出同步代码块时会自动释放锁。获得内置锁的唯一途径就是进入由这个锁保护的同步代码块或方法。 当某个线程请求一个由其他线程持有的锁时,发出请求的线程就会阻塞。然而,由于内置锁是可重入的,因此如果摸个线程试图获得一个已经由它自己持有的锁,那么这个请求就会成功。“重入”意味
2014-10-10 20:07:25 669
转载 Java多线程中join方法的理解
thread.Join把指定的线程加入到当前线程,可以将两个交替执行的线程合并为顺序执行的线程。比如在线程B中调用了线程A的Join()方法,直到线程A执行完毕后,才会继续执行线程B。t.join(); //使调用线程 t 在此之前执行完毕。t.join(1000); //等待 t 线程,等待时间是1000毫秒 先上一段JDK中代码: Java代码
2014-10-10 11:29:47 672
转载 使用HttpSessionListener接口监听Session的创建和失效
HttpSessionListener : Session创建事件发生在每次一个新的session创建的时候,类似地Session失效事件发生在每次一个Session失效的时候。这个接口也只包含两个方法,分别对应于Session的创建和失效:# public void sessionCreated(HttpSessionEvent se); # public void
2014-09-23 16:06:26 1032
原创 JDK动态代理小例子
代理的最大作用,就是在已知源代码的情况下,在不改变原来代码的条件下,增加自己的逻辑。比如说控制权限,增加日志等。此例就以增加日志来说明动态代码的基本用法。JDK的动态代码必须要基于接口,所以被代理的对象必须要实现某一个或多个接口。1.接口有一个动物接口,有两个方法吃和睡。很简单吧interface Animal { void eat(); void sleep();
2014-08-03 21:15:43 755
原创 Android 向服务器发送get请求乱码问题
使用get向服务器发送请求时,url后面有汉字会有乱码,在tomcat的server.xml中加入URLEcoding(“utf-8”)可以解决乱码问题
2014-03-30 22:11:47 798
原创 关于 Android 中使用get和post方式的区别与优缺点
1. get是从服务器上获取数据,post是向服务器传送数据。2. get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。3. 对于get方式,服务器端用Request.Quer
2014-03-29 09:49:22 1552
原创 hibernate生成表时,有的表可以生成,有的却不可以
hibernate生成表时,有的表可以生成,有的却不可以。原因:不能生成的表中有字段“desc”或“descripe”等和hibernate关键字冲突的字段,因此不能生成,只要换个字段名就好了。
2014-03-21 21:28:44 861
转载 JFreeChart的使用
前提:导入需要的2个jar文件,jcommon-版本号.jar,jfreechart-版本号.jar。可以去官网下载:http://sourceforge.net/projects/jfreechart/files/注意:下载的Jfreechart版本不要太高,新版本对中文的显示会出问题,我自己后来下的是1.0.10的版本。实例一:比较简单的application
2013-05-26 09:38:30 765
有人知道sc是什么框架?
2021-06-14
TA创建的收藏夹 TA关注的收藏夹
TA关注的人