Java_Tag标签_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
当前位置:程序员俱乐部 >>Tag标签 >> Java >>列表
在上文中提到了Lock接口以及对象,使用它,很优雅的控制了竞争资源的安全访问,但是这种锁不区分读写,称这种锁为普通锁。为了提高性能,Java提供了读写锁,在读的地方使用读锁,在写的地方使用写锁,灵活控制,在一定程度上提高了程序的执行效率。Java中读写锁有个接口java.util.concurrent.locks.ReadWriteLock,也有具体的实现ReentrantReadWriteLock,详细的API可以查看JavaAPI文档。下面这个例子是在文例子的基础上,将普通锁改为读写锁... 查看全文
1.并发1.1.什么是并发?并发是一种能并行运行多个程序或并行运行一个程序中多个部分的能力。如果程序中一个耗时的任务能以异步或并行的方式运行,那么整个程序的吞吐量和可交互性将大大改善。现代的PC都有多个CPU或一个CPU中有多个核。是否能合理运用多核的能力将成为一个大规模应用程序的关键。1.2.进程vs.线程进程是以独立于其他进程的方式运行的,进程间是互相隔离的。一个进程无法直接访问另一个进程的数据。进程的资源诸如内存和CPU时间片都是由操作系统来分配。线程又被称为轻量级进程... 查看全文
· java ipc 实例发布时间:2014-05-22
javaipc实例,仿照hadoopipc写的实例1.用接口规定ipc协议的方法2.client端用动态代理作调用远程ipc接口方法3.server端用反射,执行ipc接口方法,并返回给client端接口方法返回值hadoopipc的另一个特点是server端用三个角色,Listener,Handler,Responser。server聚合这三个角色Listener:niosocket获取请求CALL对象,放入队列中Handler:从队列中获取CALL对象,执行ipc接口方法Responser... 查看全文
· Javascript生成二维码(QR)发布时间:2014-05-21
网络上已经有非常多的二维码编码和解码工具和代码,很多都是服务器端的,也就是说需要一台服务器才能提供二维码的生成。本着对服务器性能的考虑,这种小事情都让服务器去做,感觉对不住服务器,尤其是对于大流量的网站,虽然有服务器端缓存,毕竟需要大量的CPU运算时间,这或多或少也是很大的一块压力。所以就想,有没有一种不靠服务器,就只靠JS就生成二维码呢,毕竟二维码就是一堆黑白点而已。我也没有刻意去找网络上是否已经存在这样的解决方案,而且自己一直想深入分析二维码的生成细节,现有的项目也有这样的需求... 查看全文
在Java5中,专门提供了锁对象,利用锁可以方便的实现资源的封锁,用来控制对竞争资源并发访问的控制,这些内容主要集中在java.util.concurrent.locks包下面,里面有三个重要的接口Condition、Lock、ReadWriteLock。Condition:Condition将Object监视器方法(wait、notify和notifyAll)分解成截然不同的对象,以便通过将这些对象与任意Lock实现组合使用,为每个对象提供多个等待set(wait-set)。Lock... 查看全文
1、对象池就是初始化了很多对象,就是将创建的对象保存起来下次使用时直接拿出去使用,在不需要创建。在理解Java的深拷贝和浅拷贝之前,首先了解是什么是Java深拷贝?什么是Java浅拷贝?2、深拷贝:就是相当于,Demodemo=newDemo("张三","12");Demodemo1=newDemo("张三","12");他们两个是对象的内容一样,但是demo和demo1引用指向的地址是不一样的。3、浅拷贝:就是相当于Demodemo=newDemo();Demodemo1=demo... 查看全文
Sun在Java5中,对Java线程的类库做了大量的扩展,其中线程池就是Java5的新特征之一,除了线程池之外,还有很多多线程相关的内容,为多线程的编程带来了极大便利。为了编写高效稳定可靠的多线程程序,线程部分的新增内容显得尤为重要。有关Java5线程新特征的内容全部在java.util.concurrent下面,里面包含数目众多的接口和类,熟悉这部分API特征是一项艰难的学习过程。大部分介绍线程方面书籍还停留在java5之前的知识层面上。在Java5之前,要实现一个线程池是相当有难度的... 查看全文
java中compareTo比较两个日期大小我们对两个日期进行比较的时候,或者是日期的string进行比较的时候,如果大于的话返回的是正整数,等于是0,小于的话就是负整数,而不仅仅局限于1,0和-1,以后做比较要注意... 查看全文
· Java内存溢出详解发布时间:2014-05-21
Java内存溢出详解一、常见的Java内存溢出有以下三种:1.java.lang.OutOfMemoryError:Javaheapspace----JVMHeap(堆)溢出JVM在启动的时候会自动设置JVMHeap的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)不可超过物理内存。可以利用JVM提供的-Xmn-Xms-Xmx等选项可进行设置。Heap的大小是YoungGeneration和TenuredGeneraion之和。在JVM中如果98%的时间是用于GC... 查看全文
· 如何写出更好的Java代码发布时间:2014-05-21
Java是最流行的编程语言之一,但似乎并没有人喜欢使用它。好吧,实际上Java是一门还不错的编程语言,由于最近Java8发布了,我决定来编辑一个如何能更好地使用Java的列表,这里面包括一些库,实践技巧以及工具。这篇文章在GitHub上也有。你可以随时在上面贡献或者添加你自己的Java使用技巧或者最佳实践。-编码风格-结构体-builder模式-依赖注入-避免null值-不可变-避免过多的工具类-格式-文档-Stream-部署-框架-Maven-依赖收敛-持续集成-Maven仓储-配置管理-库... 查看全文
· 浅谈java框架jfinal跟nutz的区别发布时间:2014-05-21
作为程序开发者应该大多数都知道ssh(spring+struts+hibernate)框架,有的公司可能也会用sshi(spring+struts+hibernate+ibatis)或者sshm(spring+struts+hibernate+mybatis)框架,但是可能知道jfinal跟nutz框架的可能就不是很多了,尤其对于刚培训出来,或者刚工作几年的初级程序员,当然也包含一些对技术不是太喜欢钻研的中级程序员... 查看全文
北京时间5月21日消息,谷歌今天正式对外发布了Windows、Mac和Linux版Chrome35。新版本Chrome主要是针对开发者而改进,尤其是那些构建Web内容和为移动设备开发应用的开发者,因此这个版本对于最终用户而言,在功能上可以说没有任何改变。下面是Chrome35.0.1847.116的更新日志在触摸输入上给开发者带来更多的控制权新的JavaScript功能不带前缀的ShadowDOM一些新的应用程序/扩展API高级选项下大量的内部稳定和性能变化首先... 查看全文
· java支持的最大内存发布时间:2014-05-21
一.jdk各个版本在不同操作系统中支持的最大内存是不一样的,但是可以通过以下方法来进行测试c:>java-Xmxxxxxm(g)-version其中xxxx为最大内存数值,m(g)是内存的计量单位,如果命令能够正确显示出jdk的版本等信息,说明当前jdk支持测试的最大内存数量,否则说明测试的内存超出了jdk支持的最大值,例如:c:\\documentsandsettings\\fengbaoxp>java-xmx1g-versionjavaversion\"1.6... 查看全文
· java中如何实现链表发布时间:2014-05-20
java中就用类来实现链表结构,每个节点都是类似的,所以next就是类本身的对象。下面是用链表来实现一个输入字符的功能packageMyFirstPackage;importjava.awt.*;importjavax.swing.*;importjava.awt.event.*;publicclassMyLinkNote{publicstaticvoidmain(String[]args){JFramew=newJFrame();w.setSize(600,500);w... 查看全文
JavaScriptSerializer在序列化时会将DateTime的数据序列化成类似\/Date(626543800000)\/这样的值,找了很多方法都不如意,最后在一个博客找到了完美的解决方法,地址:http://blog.calyptus.eu/seb/2011/12/custom-datetime-json-serialization/,通过自定义类型转换器的方式转换成想要的格式,转换器代码如下:publicclassDateTimeConverter... 查看全文
1、ReentrantLock锁是采用计数机制来进行加锁的,getHoldCount()方法,可以认为当前线程Hold的次数,在实际当前线程中,lock/tryLock和unlock不匹配,可能出现锁无法释放的情况。2、如果先tryLock,然后再lock一次,则holdCount为2,如果在finally中unlock一次,holdCount只减1,也不能释放锁。缩放锁的前提是:如果hold数为0,则释放锁。所以tryLock之后,如果成果获取锁,也就马上会锁住,无需再进行一次lock操作... 查看全文
· Java中RandomStringUtils工具类发布时间:2014-05-20
importorg.apache.commons.lang.RandomStringUtils;publicclassRStringData{publicstaticvoidmain(String[]args){//产生5位长度的随机字符串,中文环境下是乱码Stringr=RandomStringUtils.random(5);System.out.println(r);//使用指定的字符生成5位长度的随机字符串r=RandomStringUtils.random(5,newchar[]... 查看全文
· Java中影响方法调用性能的因素发布时间:2014-05-20
我们先从一个小故事开始讲起。几个星期前,我在Java核心库的邮件列表中发起一个修改的提议,希望能重写一些目前是final类型的方法。这个提案引发了好几个讨论的话题——其中一个是方法是不是final类型的,它的性能差距到底有多大。关于取消final是否会导到性能变差我其实有一些自己想法,但我决定先抛开这些主观看法,想找找看有没有这个课题相关的一些基准测试的数据。很不幸的是我没找到。并不是说真的不存在或者没有人研究过这种情况,只能说我没有看到有公开的同行审查过的代码。看来,得自己写点测试了... 查看全文
原创整理不易,转载请注明出处:java开源框架SpringSide3多数据源配置的方法详解代码下载地址:http://www.zuidaima.com/share/1781579130801152.htm在SpringSide3社区中,不断有人提出多数据源配置的问题,但是时至今日却一直没有一个完美的答案。经过一个星期的折腾,我总算搞清楚了在SpringSide3中配置多数据源的各种困难并加以解决,在这里,特地把我配置SpringSide3项目中多数据源的过程写出来,与大家分享... 查看全文
作者:杨振林本文将对BMP格式文件进行分析,实现对BMP文件读取、修改、保存的功能。首先对BMP文件进行分析,分析材料引自互联网。16进制。偏移量域的名称大小内容图象文件头0000h文件标识2bytes两字节的内容用来识别位图的类型:‘BM’:Windows3.1x,95,NT,…‘BA’:OS/2BitmapArray‘CI’:OS/2ColorIcon‘CP’:OS/2ColorPointer‘IC’:OS/2Icon‘PT’:OS/2Pointer注:因为OS/2系统并没有被普及开... 查看全文