随笔分类 - Java
摘要:事件驱动模型三大要素 1)事件源:能接收外部事件的源体; 2)监听器xListener:能接收事件源通知的对象; 3)处理器Handler:用于处理事件的对象。 在Java中使用监听器对象处理事件的方式,称为委托事件模型。 事件驱动模型三大要素 1)事件源:能接收外部事件的源体; 2)监听器xLis
阅读全文
摘要:事件驱动模型简介 事件驱动模型也就是我们常说的观察者,或者发布-订阅模型;理解它的几个关键点: 接下来先看一个用户注册的例子: 用户注册成功后,需要做这么多事: 1、加积分 2、发确认邮件 3、如果是游戏帐户,可能赠送游戏大礼包 4、索引用户数据 ………… 问题: 从如上例子可以看出,应该使用一个观
阅读全文
摘要:或许每个软件从业者都有从学习控制台应用程序到学习可视化编程的转变过程,控制台应用程序的优点在于可以方便的练习某个语言的语法和开发习惯(如.net和java),而可视化编程的学习又可以非常方便开发出各类人机对话界面(HMI)。可视化编程或许是一个初学者开始对软件感兴趣的开始,也可能是一个软件学习的里程
阅读全文
摘要:协程 概述 协程具有协同的性质,它允许两个或多个方法以某种可控的方式协同工作。在任何一个时刻,都只有一个协程在运行,只有当正在运行的协程主动挂起时它的执行才会被挂起(暂停)。 上面的定义可能看上去比较模糊。接下来让我讲得很清楚一点,假设我们有两个方法,一个是主程序方法,另一个是一个协程。当我们使用
阅读全文
摘要:事件驱动模型的原理不再赘述,Swing是不错的实现。别人也有不错的博文来说明原理。 本文的目的是提供一种简单的,可供参考的简短代码,用来帮助理解该模型。 Project Navigator Event 事件通用接口: Java代码 package org.joshua.event.events; p
阅读全文
摘要:客户端 package NIOTEST; import java.io.IOException; import java.net.InetAddress; import java.net.InetSocketAddress; import java.nio.ByteBuffer; import ja
阅读全文
摘要:package ThreadPoolTest; import java.util.Date; import java.util.concurrent.*; public class Main { public static void main(String[] args) { test2(); } static void test2(){ ...
阅读全文
摘要:wait是指在一个已经进入了同步锁的线程内,让自己暂时让出同步锁,以便其他正在等待此锁的线程可以得到同步锁并运行,只有其他线程调用了notify方法(notify并不释放锁,只是告诉调用过wait方法的线程可以去参与获得锁的竞争了,但不是马上得到锁,因为锁还在别人手里,别人还没释放),调用wait方
阅读全文
摘要:原文:http://www.cs.umd.edu/~pugh/java/memoryModel/jsr-133-faq.html 第一章 译者:方腾飞 在多核系统中,处理器一般有一层或者多层的缓存,这些的缓存通过加速数据访问(因为数据距离处理器更近)和降低共享内存在总线上的通讯(因为本地缓存能够满足
阅读全文
摘要:1、背景问题 在讲happens-before之前,先引入一个例子: 假定我们有已经被初始化的变量: int counter = 0; 这个 counter 变量被两个线程所共有,也就是说线程A和线程B都可以获取或者更改counter的值。 这里我们假设线程A要增加counter的值: counte
阅读全文
摘要:实现: 测试: 轉自 https://www.cnblogs.com/shijiaqi1066/p/5999610.html
阅读全文
摘要:AtomicInteger这个类的存在是为了满足在高并发的情况下,原生的整形数值自增线程不安全的问题。比如说 int i = 0 ; i++; 1 2 上面的写法是线程不安全的。 有的人可能会说了,可以使用synchronized关键字啊。 但是这里笔者要说的是,使用了synchronized去做同
阅读全文
摘要:1.场景还原 springboot配置相当简单,人人皆知。怎么把springboot工程部署到云服务器上呢?可能有人会说,博主你前篇不是讲了java工程的云部署把;但是我想澄清一点的是,我前篇的工程都是ssm框架搭建的,而springboot可是自带tomcat喽!这就有点麻烦....淡定,往下看
阅读全文
摘要:聊聊JVM的年轻代 1.为什么会有年轻代 我们先来屡屡,为什么需要把堆分代?不分代不能完成他所做的事情么?其实不分代完全可以,分代的唯一理由就是优化GC性能。你先想想,如果没有分代,那我们所有的对象都在一块,GC的时候我们要找到哪些对象没用,这样就会对堆的所有区域进行扫描。而我们的很多对象都是朝生夕
阅读全文
摘要:并发编程实践中,ConcurrentHashMap是一个经常被使用的数据结构,相比于Hashtable以及Collections.synchronizedMap(),ConcurrentHashMap在线程安全的基础上提供了更好的写并发能力,但同时降低了对读一致性的要求(这点好像CAP理论啊 O(∩
阅读全文
摘要:转载自:http://ifeve.com/from-javaeye-cpu-cache/ http://ifeve.com/from-javaeye-false-sharing/ CPU是计算机的大脑,它负责执行程序的指令;内存负责存数据,包括程序自身数据。内存比CPU慢很多,现在获取内存中的一条数
阅读全文
摘要:概述 分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。 有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。 而twitter的snowflake解决了这种需
阅读全文
摘要:Mybatis属于半自动ORM,在使用这个框架中,工作量最大的就是书写Mapping的映射文件,由于手动书写很容易出错,我们可以利用Mybatis-Generator来帮我们自动生成文件。 1、相关文件 关于Mybatis-Generator的下载可以到这个地址:https://github.com
阅读全文
摘要:1.控制台打印sql语句 只要在application.properties 中加入<configuration scan="true" scanPeriod="60 seconds" debug="false"> <contextName>logback</contextName> <!--输出到
阅读全文

浙公网安备 33010602011771号