手机随时阅读
新人专享大礼包¥24
我的CSDN技术博客(主博客) http://blog.csdn.net/woshixuye我的新浪技术博客 http://blog.sina.com.cn/luozibuhui111我的51cto技术博客:http://woshixy.blog.51cto.com/本人小技术员一枚,踏踏实实做人,认认真真做技术,无其他不切实际的想法。本博客文章只是大学时期或平时看书对IT常用技术的小总结,不能保
51CTO博客开发疯狂Java李刚李云平行线的凝聚lilin9105韩顺平的技术专栏
Java 并发 API 提供了一种允许2个并发任务间相互交换数据的同步应用。更具体的说,Exchanger类允许在2个线程间定义同步点,当2个线程到达这个点,他们相互交换数据类型,使用第一个线程的数据类型变成第二个的,然后第二个线程的数据类型变成第一个的。示例1一个人有零食,另一个人有钱,他们两个想等价交换,对好口号在某个地方相见,一个人先到了之后,必须等另一个人带着需要的东西来了之后,才能开始交
CyclicBarrier是一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point)。在涉及一组固定大小的线程的程序中,这些线程必须不时地互相等待,此时CyclicBarrier很有用。因为该barrier在释放等待线程后可以重用,所以称它为循环的barrier。CyclicBarrier类似于CountDownLatch也是个计数器, 不同的是
Java的concurrent包里面的CountDownLatch其实可以被看作一个计数器,只不过这个计数器的操作是原子操作,同时只能有一个线程去操作这个计数器,也就是同时只能有一个线程去减这个计数器里面的值。可以向CountDownLatch对象设置一个初始的数字作为计数值,任何调用这个对象上的await()方法都会阻塞,直到这个计数器的计数值被其他的线程减为0为止。CountDownLatch
Callable和Future,一个产生结果,一个拿到结果。Callable接口类似于Runnable,从名字就可以看出来了,但是Runnable不会返回结果,并且无法抛出返回结果的异常,而Callable功能更强大一些,被线程执行后,可以返回值,这个返回值可以被Future拿到,也就是说,Future可以拿到异步执行任务的返回值,下面来看一个简单的例子:public class Callable
生产者消费者问题是研究多线程时绕不开的问题,描述的是有一块生产者和消费者共享的有界缓冲区,生产者往缓冲区放入产品,消费者从缓冲区取走产品,这个过程可以无休止的执行,不能因缓冲区满生产者放不进产品而终止,也不能因缓冲区空消费者无产品可取而终止。解决生产者消费者问题的方法有两种,一种是采用某种机制保持生产者和消费者之间的同步,一种是在生产者和消费者之间建立一个管道。前一种有较高的效率并且可控制性较好,
在访问共享数据时通常使用同步。若不使用同步则可以将对象封闭在一个线程中达到线程安全的目的,该方法称为线程封闭(Thread Confinement)。其中实现线程封闭中规范的方法是使用ThreadLocal类。线程封闭技术一种常用的使用场景是在JDBC Connection对象。public class ConnectionHelper{private final static String UR
一、JDK位置每台机器允许多个jdk版本存在,编译时选择需要使用的jdk即可。MyEclipse—>Properties—>Java—>Installed JRES选择jdk位置二、文件编码①window—>preference—>general—>content type,展开每一项并在Default encoding中输入UTF-8并点击update按钮②w
Servlet API提供了基本的应用程序事件监听器接口。编程者可以通过实现这些接口来使用管理事件的功能。Servlet2.4以后提供了对以下对象的事件监听:ServletContext,HttpSession,ServletRequest。监听ServletContext可以使Web程序得知整个应用程序载入和卸载等运行情况。监听HttpSession可以Web程序了解应用程序会期间的状况并作出
通常通过继承某个类或实现某个接口的方式来编写代码,但是有时候某一些代码只使用一次,就没有必要写专门写一个子类或实现类了,可以采用匿名内部类的写法。最常用的场景是线程方面的应用。一、不使用匿名内部类①继承abstract class Player{ public abstract void play();}public class FootBallPlayer extends Playe
一、表学生表CREATE TABLE `t_student` ( `stuNum` int(11) NOT NULL auto_increment, `stuName` varchar(20) default NULL, `birthday` date default NULL, PRIMARY KEY
一、核心文件generator.xml指定数据库jar包位置、数据库连接信息、生成包的位置、表名等关键信息。该文件放在任意位置。<!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis
步骤1【开始】—>MySQL—>MySQL Server 5.1—>MySQL Server Instance Config Wizard—>Remove Instance步骤2进入服务管理窗口,服务里面找到MySQL服务,将MySQL的服务给停止。步骤3进入控制面板,卸载MySQL。步骤4***注册表数数据。【开始】—>【运行】—>【regedit】HKEY_
读读之间不互斥,但读写之间,写写之间互斥。提高了效率保证了安全。import java.util.concurrent.locks.ReadWriteLock;import java.util.concurrent.locks.ReentrantReadWriteLock;public class MyQueue{// 共享数据。该数据只能被一个线程写,可以被多个线程同时读private Obje
一、线程如何停止使用stop()不安全。它会解除由线程获取的所有锁定,而且如果对象处于一种不连贯状态,那么其他线程能在那种状态下检查和修改它们。结果很难检查出真正的问题所在。suspend()方法容易发生死锁。调用suspend()的时候,目标线程会停下来,但却仍然持有在这之前获得的锁定。此时其他任何线程都不能访问锁定的资源,除非被"挂起"的线程恢复运行。对任何线程来说,如果它们想恢复目标线程,同
一、概述java.util.concurrent中有非常方便的线程池实现,提供的Executor框架包含用于管理实现Runnable任务,Executors类提供了许多不同类型的Executor实现的静态工厂方法。二、实例public class MyTask implements Runnable{public void run(){System.out.println(Thread.cur
一、对synchronized的改进JDK5后引入了线程并发库java.util.concurrent。JSR 166小组花了这么多时间来开发java.util.concurrent.lock框架呢?答案很简单——synchronized同步是不错,但它并不完美,有一些功能性的限制:无法中断一个正在等候获得锁的线程,也无法通过投票得到锁,如果不想等下去也就没法得到锁。同步还要求锁的释放只能在与获得
很全的各种版本JDK API下载,chm版本并带搜索。下载地址 http://www.allimant.org/javadoc/原帖地址:http://hi.baidu.com/luozhh/item/c5907b5dc04a983695eb05b3
class A1 { public static void f() { System.out.println("A1.f()"); }}class A2 extends A1 { public static void f() { System.out.println("A2.f()"); }}class T { public
两个xsd必须在同一命名空间下targetNamespace。student.xsd<?xml version="1.0" encoding="UTF-8"?><xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.example.org/classro
一、schema文件编写方式①Russian Doll(俄罗斯套娃)②Salami Slice(香肠切片)③Venetian Blind(百叶窗) 推荐二、Russian Doll俄罗斯套娃顾名思义,编写方式是一层套一层,只有一个根元素,通过且套的方式编写完成。优点:结构清晰缺点:元素无法重用RussionDoll.xsd<?xml version="1.0" encoding="UTF-8
一、概述MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap,resultType是直接表示返回类型的,而resultMap则是对外部ResultMap的引用,但是resultType跟resultMap不能同时存在。在MyBatis进行查询映射时,其实查询出来的每一个属性都是放在一个对应的Map里面的,其中键是属性名,值则是其对应的值。
以天气预报为例,有不少网站可以显示天气预报,并不是表示每一个网站都要去采集天气数据,而是气象机构将采集到的天气信息通过WebService Server提供,需要用到的网站通过编写WebService Client去调用气象机构提供的天气数据并展现。http://www.webxml.com.cn/zh_cn/web_services.aspx这个站点提供了全面的WebService接口供参考。
一、前言之前写过一篇《XML(1)——shema约束之命名空间》解释了Schema中的命名空间,看过这篇文章之后会对Spring的配置文件有更好的理解。该文章地址:http://blog.csdn.net/woshixuye/article/details/26950075二、再看Spring配置文件spring.xml节选<?xml version="1.0" encoding="UTF-
一、XML的两种约束DTD和Schema摘自IBM官网一段话:“XML DTD(XML的文档类型定义)是近几年来XML技术领域所使用的最广泛的一种模式。但是由于XML DTD并不能完全满足XML自动化处理的要求,例如不能很好实现应用程序不同模间的相互协调,缺乏对文档结构、属性、数据类型等约束的足够描述等等,所以W3C于2001年5月正式推荐XML Schema为XML 的标准模式。显然,W3C希望
select 10 + 10 + 10 from dual结果是30,完全没问题。select null + 10 + 10 from dual结果是空串,但期望的结果是20。select nvl(null,0) + 10 + 10 from dual这样处理结果为20。若查询有空值的情况需利用nvl处理,否则运算有误。select null || 10 || 10 from dual字符串拼接没
一、buffer overflow,limit of 10000 bytesdeclarebeginfor c in 1..1000 loop dbms_output.put_line('测试测试测试');end loop;end;缓冲区默认大小为10000 bytes。循环1000次就一共有6000个汉字,也就是12000 bytes。在SQL窗口的输出标签页中设置缓冲区大小。二、数字或值
Java Message Service是java ee的规范之一,可以用来发送异步消息,在某些场景下,可以作为不同系统,或者不同模块之间的集成方式。可以类比为通过数据库来集成的方式,模块A完成逻辑以后,往数据库插入一条记录,模块B定时轮询数据库,如果查到相应的记录,就进行处理。JMS集成实际上思路是差不多的功能更强,并且提供了标准的API支持,而且也可以避免反复轮询数据库或者读取文件的I/O操作
在interface里面的变量都是public static final的。可以这样写:public static final int i=10或者int i=10。public interface MyInterface{ // 默认为public static int a = 10; int a = 10;}public class MyTest{ public static void mai
Copyright © 2005-2022 51CTO.COM 版权所有 京ICP证060544号