自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 Spring事务管理配置问题

昨天项目中遇到一个问题,所有需要数据库连接的请求都报拿不到连接的错误。org.springframework.jdbc.CannotGetJdbcConnectionException:Could not get JDBC Connection;  日志中显示,所有线程都在等待数据库连接池释放连接。"catalina-exec-223" daemon prio=10 tid=0x00007f75dc

2017-03-10 20:01:38 406

原创 Java源码分析之HashMap(JDK1.8)

一、HashMap概述HashMap是常用的Java集合之一,是基于哈希表的Map接口的实现。与HashTable主要区别有不支持同步和允许null作为key和value。由于HashMap不是线程安全的,如果想要线程安全,可以使用ConcurrentHashMap代替。二、HashMap数据结构HashMap的底层是哈希数组,数组元素为Entry。HashMap通过key的has

2017-02-21 23:30:55 8968 1

原创 BeanUtils.copyProperties

很多时候,我们会有几个比较相像的类(比如继承了同一个父类的两个子类),他们有着很多相同的属性。这时我们也许会有这样的需求,将一个类中已经赋值的属性填充到另一个类的相同属性中。当然,我们可以手动写get/set,但会堆积大量代码,增加代码长度,降低代码可读性。        这时可以用到org.apache.commons.beanutils.BeanUtils包下的copyProperties

2016-07-19 23:19:02 1414

原创 Spark入门

Spark作为Apache的开源项目,是一个快速、通用的大规模数据处理引擎,和Hadoop的MapReduce计算框架类似。        快速入门Spark,只需要三步:下载,解压,运行。去官网http://spark.apache.org/downloads.html下载压缩包,package type选择Pre-built,即已编译好的,如果选择Source code,则需要手动

2016-05-12 20:29:56 563

原创 深入理解ThreadLocal

在之前的项目中涉及到了ThreadLocal的使用,因此看了jdk源码。在此分析部分源码,并阐述一些自己的理解。        首先来看ThreadLocal是什么。JDK 1.2的版本中就提供java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序,ThreadLocal并不是一个Thre

2016-03-30 20:08:46 308

原创 ASM学习

在之前的java instrument学习中,使用到了ASM框架,这里简单介绍一下ASM的使用。ASM是一个 Java 字节码操控框架。它能够以二进制形式修改已有类或者动态生成类。ASM 可以直接产生二进制 class 文件,也可以在类被加载入 Java 虚拟机之前动态改变类行为。ASM 从类文件中读入信息后,能够改变类行为,分析类信息,甚至能够根据用户要求生成新类。我们还是使用ASM G

2016-01-29 12:49:21 514

原创 java instrument学习

Java在1.5引入了java.lang.instrument,它允许实现一个java agent,通过agent监测运行在JVM上的程序,监测的机制是对方法字节码的修改。有点类似AOP,但比AOP更加松耦合,因为AOP的代码还是在工程里面的,而agent却与被监控的程序完全隔离。下面我们用instrument来实现一个简单的java agent。在启动JVM时,通过指示代理类及其代理选项

2016-01-29 09:49:53 658

原创 浅谈Java动态反射

反射(Reflection)是Java被视为动态(或准动态)语言的一个关键性质。这个机制允许程序在运行时通过Reflection APIs取得任何一个已知名称的class的内部信息,包括其modifiers(诸如public, static 等等)、superclass(例如Object)、实现的interfaces,也包括field(属性)和methods(方法)的所有 信息,并可于运行时改变f...

2012-03-04 23:01:53 475

哈希表的理解和实现

哈希表,也叫散列表,是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做哈希函数,存放记录的数组叫做哈希表。在此我不谈各种权威对哈希表的定义,仅谈自己的理解,因此难免有错误和不足之处。用个具体的例子来阐述我对哈希表的理解。例子虽然有些陈旧,但是不影响理解。现有一个班,班上30名同学,假设都是同一...

2011-11-05 00:00:11 165

原创 关于UDP协议

传输层负责源主机与目的主机进程之间端到端的数据传输。传输层有两个著名的协议:用户数据报协议UDP和传输控制协议TCP。二者都使用IP作为网络层协议。TCP提供可靠的面向连接的服务,而UDP提供不可靠的、无连接的服务。之前简单的总结了我对TCP的认识和理解,下面就简单说一下UDP。TCP是可靠的、面向连接的通信,通信双方必须先建立一个通信管道,而UDP是不可靠的、非面向连接的通信,只需要知道目标...

2011-08-09 22:55:02 138

原创 初识TCP/IP协议

TCP/IP协议,以前虽然听说过,但不明白究竟是个什么东西,有什么作用,而这次学习通信方面的知识,就少不了接触这套运用最广的网络通信协议。所以,现在才算是对TCP/IP协议有了初步的认识。初识TCP/IP协议,不敢说有多么深刻的理解。在目前这个层面上,我只能说说我对它的基本理解,比较笼统和宽泛的理解。首先应该知道的,TCP/IP是Transmission Control Protocol/...

2011-08-09 20:05:02 93

原创 网络通信项目总结之二

      前面我们实现了简单的网络通信服务端。当然,那个是最简单的版本,还有很多需要改进的地方。比如服务器一连接一个客户机就退出,我们就可以将ServerSocket的accept()方法放在一个循环中调用:进入一个客户机,当服务器与这个客户机通信完毕后,服务器就再次进入循环中,重新调用accept()方法等待下一个客户机连接进入。再比如一次只能有一个客户机去连接,不然就会出错。解决方法是把进入...

2011-08-03 21:57:57 171

原创 网络通信项目总结之一

      与其说是项目总结,到不如说是反思总结。总结这类东西,必须有感,真情实感,不管是项目总结还是反思总结,亦或是学习总结,工作总结等等。亲身经历,有感而发才行,写总结应如写随笔,随意而不可随便,笔随心动,心到笔随,这是我对随笔这一文体的精髓总结。我想借用来描述总结的精髓,也不为过吧。            学习通信阶段也有十天了,本来说是两三天一总结,可到现在一篇都没写,实在是有些惭愧啊...

2011-08-01 20:25:48 362

坦克大战项目总结

坦克大战是一款经典的小游戏,也是我们这次的开发项目。关于线程的项目开发,本来是有很多选择的,比如弹球,打砖块,雷电等等。由于这类项目我们个人来做可能存在很多问题,所以是以小组的形式做项目。至于为什么选择坦克大战,应该说是我们选择的时候欠考虑了。本来是想选个简单点的,而坦克大战不少人都做过,当时也没想太多,觉得不会太难,就选择了这个。后来在制作过程中发现了不少问题,细想以后发现这个其实比另外几个...

2011-07-18 16:05:27 861

原创 异常机制

      在OOP思想中,java中的异常概念也被设计成一个类,即java.lang包下面的Exception类。      当程序出现异常时,我们可以在代码中得到一个Exception对象。Java具有代码级的强制性异常检测机制,即许多常见的可预见的异常都必须编写代码处理,否则就无法编译通过。在Eclipse中,将会提示我们代码语法错误“Unhandled exception type I...

2011-05-02 15:07:47 96

原创 五子棋总结

      五子棋的开发,也是很早以前的一个项目,这里简单的讲一下思路和实现过程。      首先,我们要一个可视化窗体,然后是在窗体上画棋盘,方法其实就是画板中画直线的方法。画完棋盘,我们要能往上面放棋子,简单的棋子就是画实心圆。放子的时候,我们要的是能放在棋盘的交叉线上。而画实心圆的方法g.fillOval(x, y, width, height)中的x、y是圆的外切矩形的左上角的点,因此...

2011-05-02 14:15:05 147

原创 画板总结

      画板是我们做的第一个项目,总结已经拖了很久。画板的制作主要思想和做法如下:首先,我们要运用JFrame得到一个可视化窗体,设置标题,大小,布局,再在上面添加一系列按钮,如要画的形状,颜色等。画图的本质就是改变屏幕像素点的颜色,要在窗体上画图,我们就该给它传一个画布,在画布上画。画图思想:画直线的思想是当我们鼠标按下的时候,我们得到一个点的坐标,然后拖动鼠标,在释放的时候又...

2011-04-14 16:05:21 133

原创 集合框架总结

    Java中集合类定义主要是java.util.*包下面,常用的集合在系统中定义了三大接口,分别为:        java.util.Set接口及其子类,Set提供的是一个无序的集合;        java.util.List接口及其子类,List提供的是一个有序的集合;        java.util.Map接口及其子类,Map提供了一个映射(对应)关系的集合数据结构。...

2011-04-07 17:58:27 69

原创 2011.3.22

Java 部分关键字l         public 公共的,共有的,它表示某个变量或者函数是全局函数。在同个工程里能够被访问,不受包的限制。l         protected 表明被它修饰的成员变量为保护类型,在同一个包里和public类型是一样的,也是能够访问到的。但是如果在不同包里的protected类型的成员变量就只能通过子类来访问,这个修饰符是区别于其他的修饰符的。l  ...

2011-03-22 17:41:48 70

原创 2011.3.12

画板的重绘先创建一个形状的类shape,是各种形状的父类,所有形状必须继承的类。它是一个抽象类。所谓抽象类,是介于类和接口之间的。接口只能定义方法,供别人实现,而且一个类必须实现接口中所有的方法。而抽象类当别人继承时可以只实现其中的抽象方法。再创建各种具体的形状类,如直线类,矩形类等,来继承形状类。由于各种形状不一样,我们要用到队列的泛型。这样的好处是细节由每个子类自己去管,不需要改动...

2011-03-12 21:23:01 98

原创 2011.3.10

      今天java课上初步讲了数据结构的概念和应用。数据结构是计算机存储、组织数据的方式。我的理解,数据结构就像一个容器,用来装数据的容器。如数组,队列,图,集合,链表,栈,堆,树等都属于数据结构。      数组在以前C的学习中有涉及到,并且运用过,链表虽然也有涉及到,不过当时课堂上没讲,也没要求掌握,就成了一块盲区。其他的就基本属于新概念了。      数组是线性的,有序号的,定...

2011-03-10 17:26:32 78

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除