
java
sunbo94
这个作者很懒,什么都没留下…
展开
-
探索多线程使用同一个数据库connection的后果
在项目中看到有用到数据库的连接池,心里就思考着为什么需要数据库连接池,只用一个连接会造成什么影响?(只用一个connection)?1 猜想:jdbc的事务是基于connection的,如果多线程共用一个connection,会造成多线程之间的事务相互干扰。(connection.setAutoCommit(false);//connection.commit())2 于是就模仿以下场景来做一...转载 2018-03-01 10:42:35 · 15909 阅读 · 3 评论 -
Java并发编程:Java内存模型和volatile关键字解析
目录(?)[-]一内存模型的相关概念二并发编程中的三个概念三Java内存模型四深入剖析volatile关键字五使用volatile关键字的场景Java并发编程:volatile关键字解析 volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机...转载 2018-03-28 15:43:31 · 169 阅读 · 0 评论 -
深入理解Java并发之synchronized实现原理
https://blog.youkuaiyun.com/javazejian/article/details/72828483关联文章:深入理解Java类型信息(Class对象)与反射机制深入理解Java枚举类型(enum)深入理解Java注解类型(@Annotation)深入理解Java类加载器(ClassLoader)深入理解Java并发之synchronized实现原理Java并发编程-无锁CAS与Un...转载 2018-04-01 23:09:47 · 116 阅读 · 0 评论 -
Java笔记-反射
一.类加载器 当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过加载,连接,初始化三步来实现对这个类进行初始化. 加载:将class文件读入内存,并为之创建一个Class对象 连接:为类的静态成员分配内存,并设置默认初始化值等 初始化:创建类的实例,访问类的静态变量,或者为静态变量赋值,调用类的静态方法,使用反射方式来强制创建某个类或接口...原创 2018-03-22 10:12:32 · 253 阅读 · 0 评论 -
Java笔记-并发之Callable接口
原文:https://blog.youkuaiyun.com/sunp823/article/details/515693141.接口的定义:public interface Callable<V> { V call() throws Exception; } 12342.Callable和Runnable的异同先看下Runnable接口的定义public interfa...转载 2018-03-26 14:26:50 · 128 阅读 · 0 评论 -
Java笔记-网络IO(BIO,NIO,AIO)
转自:http://blog.youkuaiyun.com/anxpp/article/details/51512200 本文会从传统的BIO到NIO再到AIO自浅至深介绍,并附上完整的代码讲解。 下面代码中会使用这样一个例子:客户端发送一段算式的字符串到服务器,服务器计算后返回结果到客户端。 代码的所有说明,都直接作为注释,嵌入到代码中,看代码时就能更容易理解,代码中会用到一个计算结果的工...转载 2018-03-25 21:55:39 · 142 阅读 · 0 评论 -
Java笔记-IO流
字符流与字节流https://blog.youkuaiyun.com/scgaliguodong123_/article/details/45920829处理流(缓冲流、转换流)https://blog.youkuaiyun.com/scgaliguodong123_/article/details/45932481DataInputStream,ObjectInputStream,ByteArrayInputStrea...转载 2018-03-25 18:51:48 · 174 阅读 · 0 评论 -
Swing线程之SwingUtilities.invokeLater解释
原文链接:http://www.importnew.com/15761.html事件分发线程:Swing中事件处理和绘画代码都在一个单独的线程中执行,这个线程就叫做事件分发线程。这就确保了事件处理器都能串行的执行,并且绘画过程不会被事件打断。为了避免死锁的可能,你必须极度小心从事件分发线程中创建、修改、查询Swing组件以及模型。注意:我们过去常说只要你没有修改已经实现过的组件,你就能在主进程中创...转载 2018-03-29 23:35:31 · 312 阅读 · 0 评论 -
Java笔记-Swing线程之SwingUtilities.invokeLater解释
事件分发线程:Swing中事件处理和绘画代码都在一个单独的线程中执行,这个线程就叫做事件分发线程。这就确保了事件处理器都能串行的执行,并且绘画过程不会被事件打断。为了避免死锁的可能,你必须极度小心从事件分发线程中创建、修改、查询Swing组件以及模型。注意:我们过去常说只要你没有修改已经实现过的组件,你就能在主进程中创建GUI。[补充:下面页注中的红色字体。] 已实现过的意思是组件已经在屏幕上描绘...转载 2018-03-29 23:33:08 · 657 阅读 · 0 评论 -
Java NIO Selector详解(含多人聊天室实例)
目录(?)[-]一Java NIO 的核心组件二Java NIO SelectorSelector简介选择器Selector可选择通道SelectableChannel选择键SelectionKeySelector的使用1创建Selector2将Channel注册到Selector3为SelectionKey绑定附加对象4通过Selector选择通道5停止选择三NIO多人聊天室分析整个程序的流程一...转载 2018-03-28 15:58:41 · 236 阅读 · 0 评论