posts - 17,  comments - 25,  trackbacks - 0
公告
共2页: 上一页 1 2 
  2013年6月24日
摘要: Socket 编程时,单机最多可以建立多少个 TCP 连接,受到操作系统的影响。 Windows 下单机的TCP连接数受多个参数影响: 最大TCP连接数[HKEY_LOCAL_MACHINE \System \CurrentControlSet \Services \Tcpip \Parameters]TcpNumConnections = 0x00fffffe (Default = 16,777,214) 以上注册表信息配置单机的最大允许的TCP连接数,默认为 16M。这个数值看似很大,这个并不是限制最大连接数的唯一条件,还有其他条件会限制到TCP 连接的最大连接数。最大动态端口数TCP..阅读全文
posted @ 2013-06-24 23:13 trytocatch 阅读(59) 评论(0)  编辑
  2013年4月30日
摘要: 有个时候,我们需要在Table中添加一列来标识某行是否被选中(不同于自带的行选择),同时又不方便去修改原来TableModel。为了解决这种问题,我编写了下面这个包装类(不知这么称呼是否恰当哈)。CheckBoxTableModelProxypackage trytocatch.swingplus.table;import java.util.BitSet;import javax.swing.event.TableModelEvent;import javax.swing.event.TableModelListener;import javax.swing.table.Abstract..阅读全文
posted @ 2013-04-30 18:49 trytocatch 阅读(1114) 评论(0) 编辑
  2013年3月21日
摘要: 玩java多线程的,大多都知道volatile:它能保证变量的可见性,其它线程能看到其最新值,但不能用于实现线程安全的变量自增;再深入点的可能知道,它会限制指令重排序,volatile操作前的操作(包括普通变量的读写)不能重排到它之后,反之亦然。基于上面的认识,我设计了下面的测试public class TestVolatile { private volatile int n1=0;//volatile private int n2=0; public static void main(String[] a) { new TestVolatile().t...阅读全文
posted @ 2013-03-21 23:08 trytocatch 阅读(1500) 评论(0) 编辑
  2013年1月13日
摘要: java中常见的Timer有两个,一个是javax.swing.Timer,另一个是java.utl.Timer,两者的功能大同小异,最主要的差别在于swing.Timer的任务是放到EDT线程中执行的,可以很方便地进行swing的UI操作,另外swing.Timer是一个守护线程,utl.Timer则是可以设置是否为守护线程。 JVM中有这样一个规定,如果非守护线程都退出了,那么JVM会关闭,不管是否还有守护线程在运行。 swing程序的关闭机制:在swing程序中,EDT线程负责处理事件,它是一个非守护线程;另外有一个名为AWT-Shutdown的非守护线程,负责在所有窗口都关闭后...阅读全文
posted @ 2013-01-13 12:57 trytocatch 阅读(3117) 评论(0) 编辑
  2013年1月9日
摘要: 内存屏障,又称内存栅栏,是一组处理器指令,用于实现对内存操作的顺序限制。本文介绍了内存屏障对多线程程序的影响。我们将研究内存屏障与JVM并发机制 的关系,如易变量(volatile)、同步(synchronized)和原子条件式(atomic conditional)。本文假定读者已经充分掌握了相关概念和Java内存模型,不讨论并发互斥、并行机制和原子性。内存屏障用来实现并发编程中称为 可见性(visibility)的同样重要的作用阅读全文
posted @ 2013-01-09 22:08 trytocatch 阅读(153) 评论(0)  编辑
  2013年1月7日
摘要: java volatile的一个验证反例阅读全文
posted @ 2013-01-07 20:22 trytocatch 阅读(2354) 评论(3) 编辑
  2012年11月30日
摘要: 关于JTextField限制输入字符长度的问题,因为没提供现成的api,所以我们得自己动手,来实现这个功能,网上也有很多这样的资料,大多是在JTextField的Document的insertString方法中动手脚,比较当前文本框的字符长度和最大长度,如果输入不涉及中文,该方法也堪称完美了。 细心的童鞋可能会发现,在swing里输入中文,有的是下方弹出一个小方框,显示当前输入的字母;有的是直接将这些字母显示在了文本输入框里,打完一个字词时,将这些字母清除掉,再将中文显示上去。这两种不同的显示方式取决于System.getProperty("java.awt.im.style&quo阅读全文
posted @ 2012-11-30 11:31 trytocatch 阅读(7649) 评论(0) 编辑
  2012年8月20日
摘要: int bold = 5;((Graphics2D)g).setStroke(new BasicStroke(bold, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL)); //((Graphics2D)g).setStroke(new BasicStroke(bold, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND)); //((Graphics2D)g).setStroke(new BasicStroke(bold)); //((Graphics2D)g).setRenderingHint(Render阅读全文
posted @ 2012-08-20 11:36 trytocatch 阅读(2320) 评论(0)  编辑
  2012年8月14日
摘要: Java api 1.6public class RepaintManager extends Object此类管理重绘请求,以最大限度地降低重绘次数。例如,通过将多个请求折叠到对组件树成员的单个重绘中。从 1.6 开始,RepaintManager 处理对 Swing 的顶层组件(JApplet、JWindow、JFrame 和 JDialog)的重绘请求。在这些组件之一上对 repaint 的任何调用将生成适当的 addDirtyRegion 方法。以前批量添加swing组件的数据时,总担心每添加一条,它就刷新下界面,为了“避免”如此,有时我甚至重写Model的相关方法(有些默认的mode阅读全文
posted @ 2012-08-14 11:45 trytocatch 阅读(1093) 评论(0) 编辑
  2012年5月16日
摘要: 在swing系统中,有一个顶级的java.awt.Container(可能是一个JFrame或JDialog实例),负责启动一个EventDispatchThread的线程,单线程,这个线程是负责处理UI事件的,如点击按钮、窗口关闭等因此,如果将繁琐耗时的处理逻辑放到actionPerformed之类的事件处理方法中,那么这些代码是由EDT来执行的,而EDT负责处理UI事件,则会引起UI失去响应。此时,可以将处理逻辑放到一个新的线程中来执行,这样就不会影响EDT去处理UI事件,就不会“卡死”。但假如此逻辑需要更新UI,由于swing不是线程安全的,该线程直接修改可能会导致线程安全问题(该线程和阅读全文
posted @ 2012-05-16 17:52 trytocatch 阅读(663) 评论(0) 编辑
共2页: 上一页 1 2