- 博客(204)
- 资源 (27)
- 收藏
- 关注

原创 推荐文章3
另外两篇: 推荐文章1、 推荐文章2 (说明:推荐文章,系博主看过的博客,论文等,写在这里主用于记录文章入口)Java异常那些不得不说的事、Java异常处理总结 Java实现shadow clone(浅克隆)与深克隆(deep clone)、String 在clone()中的特殊性 Nginx反向代理关于端口的问题、nginx中proxy_set_header Host $host...
2020-01-13 15:05:21
2020

原创 开发总结
改变适配器Adapter内容时不要在后台线程中,必须在UI线程中处理,这点可以通过Handler传出来解决。尝试Adapter的notifyDataSetChanged()方法,当然主要看你代码的具体情况。ActivityGroup对子A的管理是通过Map的方式来管理的,在启动子Activity时,对每个子Activity都分配了一个ID号。这种映射的机制使得我们可以通过ID来获取到子A的实例。当
2012-07-26 21:05:21
1216

原创 设计模式总结
一、设计模式的定义设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结,使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。二、设计模式的基本要素 设计模式一般有如下几个基本要素:模式名称、问题、目的、解决方案、效果、实例代码和相关设计模式,其中的关键元素包括以下四个方面:模式名称 (Patte
2012-07-08 20:12:03
1824
原创 Logback源码解析
本文分析源码,Logback版本为1.2.3,SLF4J的版本为1.7.251. Logback与SLF4J的关联1.1 关联类使用SLF4J作为Log Facade,使用Logback作为具体Log Implementation,配置好logback.xml之后,执行以下代码,就可以使用Logback打印日志。import org.junit.Test;import o...
2018-08-09 19:44:22
2385
原创 SLF4J与Logback、Log4j1、Log4j2、JCL、J.U.L是如何关联使用的
日志是Java程序员日常开发当中必须要接触的一个环节。Java的日志五花八门,有各种各样的实现,现在梳理一下Java日志相关的框架,及其使用使用细节。我们在日常使用过程中,主要会接触到SLF4J、Logback、Log4j1、Log4j2、JCL和J.U.L等日志框架。对于日志框架的最佳实践,推荐使用使用Log Facade,而不是具体Log Implementation,即在代码中直接使用 ...
2018-08-08 10:28:07
8069
2
翻译 理解Java的类加载过程
理解Java的类加载过程你在考虑写类加载器吗?或者你正在面对不在预期之内的ClassCastException或者带有”loader constraint violation”的LinkageError。那么,是时候仔细观察一下了Java类加载过程。什么是ClassLoader以及它是如何进行加载工作的一个Java类是通过一个java.lang.ClassLoader实例进行加载的...
2018-06-10 17:49:08
460
原创 Java串行程序并行化执行
在程序开发过程当中,往往存在这样一种情况,程序首先执行完method1得到结果result1之后,在执行method2获得结果result2,然后再按照result1和result2的结果来判定程序下一步的执行。在这里method1和method2是相互不关联的,即method1的执行和method2的执行位置可以调整,而不影响程序的执行结果。传统意义上的写法,我们得到的往往会是串行执行的程序
2016-01-09 22:01:57
10008
1
原创 生产者消费者模式
Java线程之间的通信分为共享内存,消息机制,管道(PipedInputStream / PipedOutputStream)大概三种模式。生产者消费者模式是多线程问题当中一个非常经典的问题,从我们大学的《操作系统》的课本当中的位置和课时,我们便可以知道这个思想的重要性,而且在实际生产当中生产者消费者模式为我们解决了大量的并发问题。一个简单的例子,并发编程大师Doug Lea的阻塞队列便是生产者消费者模式的典型实现,这里主要使用记录一下生产者消费者模式的集中写法,并探讨一下,这集中写法所产生的不同。
2015-12-28 13:41:07
1673
原创 Tomcat源码阅读系列(五)Catalina容器
本文是Tomcat源代码阅读系列的第五篇文章,前面四篇文章主要介绍了如何使用IDEA运行Tomcat、Tomcat的总体架构、Tomcat启动关闭流程和Tomcat的Connector连接器相关,本文主要介绍Tomcat的Catalina容器。跟之前的文章类似,本文首先介绍Catalina容器中的关键类,然后会绘制出Catalina容器的时序图。时序图分为两部分,第一部分为Catalina容器的初始
2015-09-23 14:03:12
2623
原创 Tomcat源码阅读系列(七)Session管理机制
本文是Tomcat源码阅读系列的第七篇文章,本文首先介绍Session管理的主要架构和相关类及其功能,然后介绍Session的创建以及销毁过程。
2015-09-05 02:49:51
3557
原创 Tomcat源码阅读系列(六)类加载器
本文是Tomcat源代码阅读系列的第六篇文章,前面五篇文章主要介绍了如何使用IDEA运行Tomcat、Tomcat的总体架构、Tomcat启动关闭流程、Tomcat的Connector连接器相关和Tomcat的Catalina容器,本文主要介绍Tomcat的类加载器。关于Java的类加载器的介绍,大家可以Google一下,网上关于其介绍比较多且比较详细,本文就不再重复介绍,本文主要介绍Tomcat的
2015-09-04 22:41:07
2148
原创 Tomcat源码阅读系列(一)使用IntelliJ IDEA运行Tomcat6源码
Tomcat源码阅读系列(一)使用IntelliJ IDEA运行Tomcat6源码
2015-02-28 10:17:49
9800
原创 Java中的逃逸分析和TLAB以及Java对象分配
我们在学习使用Java的过程中,一般认为new出来的对象都是被分配在堆上,但是这个结论不是那么的绝对,通过对Java对象分配的过程分析,可以知道有两个地方会导致Java中new出来的对象并一定分别在所认为的堆上。这两个点分别是Java中的逃逸分析和TLAB(Thread Local Allocation Buffer)。本文首先对这两者进行介绍,而后对Java对象分配过程进行介绍。
2015-01-27 21:24:12
23513
5
原创 Java多线程中的synchronized、volatile和无锁编程
synchronized volatile 无锁编程 并发安全性的几个相关因素:可见性、顺序性、原子性。关于这三者的详细描述,见原子性与可见性。其中原子性可以引申为互斥性,而顺序性的产生是原子性的结果即有了原子性才有了顺序性,因此以上三个因素可以推导为可见性和互斥性。
2014-10-25 19:29:59
7171
原创 ThreadPoolExecutor的分析与使用
关于ThreadPoolExecutor的分析已经有很多,比较著名的诸如支付宝 清英 的聊聊并发(三)Java线程池的分析和使用,饭饭泛的《深入浅出 Java Concurrency》等,对于ThreadPoolExecutor的分析和介绍已经非常的清楚,但是博主笨拙,对于ThreadPoolExecutor源码研读了一段时间之后才理解其中的奥妙所在,本博客主要从以下两个方面ThreadPoolExecutor进行介绍,①、ThreadPoolExecutor当中corePoolSize中线程的保持,即Th
2014-09-28 21:29:38
5328
1
原创 CopyOnWriteArrayList与Collections.synchronizedList的性能对比
列表实现有ArrayList、Vector、CopyOnWriteArrayList、Collections.synchronizedList(list)四种方式,其中
2014-09-21 21:46:46
12169
1
原创 NanoHTTPD源码阅读
package fi.iki.elonen;import java.io.*;import java.net.InetAddress;import java.net.InetSocketAddress;import java.net.ServerSocket;import java.net.Socket;import java.net.SocketException;import
2014-08-25 20:47:01
3203
原创 《Struts2技术内幕》学习笔记
是通过IOC容器管理得到实例的,根据bean节点中class类型的不同采用不同的InternalFactory的匿名实现,当class中含有@Inject注解时,InternalFactory的create方法调用了Container.inject()方法以实现注入。ObjectFactory.buildBean()的执行过程分两步,第一步调用Class.netInstance()建立要创建对象的实例,第二部调用Container.inject()实现依赖注入。两者的不同主要体现在实例的创建上,前者是通过在
2014-04-24 16:50:34
1711
原创 Android应用程序当中GridView显示不同大小图片时Item挤出问题解决办法
Android应用程序当中GridView显示不同大小图片时Item挤出问题解决办法
2014-04-03 20:32:43
2282
原创 MATLAB遗传算法之 无放回式随机余数选择算子(remainder stochastic sampling with replacement)最新版
MATLAB遗传算法之 无放回式随机余数选择算子(remainder stochastic sampling with replacement)
2013-12-27 14:28:05
3899
2
原创 推荐文章2
另外一篇:推荐文章1(说明:推荐文章,系博主看过的博客,论文等,写在这里主用于记录文章入口)深入浅出 Java Concurrency博主整理的关于Java并发编程的笔记。并发编程网 淘宝内容人员建立的关于Java并发编程相关的博客。推荐以上两个。java并发编程JCU系列,以上三个博客全是阿里系的员工写的,阿里的Java技术可见一斑。聊聊并发(四)——深入分析ConcurrentHa
2013-12-09 11:31:19
2893
原创 将Openfire中的MUC改造成类似QQ群一样的永久群
将Openfire中的MUC改造成类似QQ群一样的永久群1、新建立永久房间,同时保证房间中的成员存储到“ofmucmember”表当中。2、新建一个用户登陆监听的插件,这个插件监听用户的登陆行为,同时在用户登陆时查询“ofmucmember”表,查询用户所在的房间。3、将房间信息封装到自定义的IQ包中,发送到客户端。4、不管使用Android客户端,还是对Spark进行二次开发,对Openfire发送过来的自定义IQ包进行解析。5、显示群信息。
2013-11-27 19:33:22
24749
13
原创 Android插件式开发备忘
一、使用android-application-plug-ins-frame-work URL:https://code.google.com/p/android-application-plug-ins-frame-work/ 通过sharedUserId实现,会产生一系列的apk安装包,同时下载安装时有可能展现给用户安装新apk的过程,用户体验不好(有一种静默安装模式,不好实现)。二、
2013-11-27 09:12:39
1178
原创 Spark源代码编译生成错误解决方案
最近项目需要对Spark进行二次开发,在对Spark二次开发完成之后,需要对其进行打包成exe文件的操作。互联网真是一个宝贵的知识库,千辛万苦之下找到了Spark开发记录(windows环境)和install4j打包Spark详解,前者介绍了两种版本spark的打包方式,而后者的打包方式适用于较早的2.5.x版本的Spark,对于2.6.x版本的Spark可以按照第一篇文章介绍的内容进行打包操作。但是按照操作进行下去之后发现项目无法ant打包成功。错误代码如下:
2013-09-14 22:35:35
2582
原创 查找的相关操作总结
操作包含递归折半查找非递归折半查找二叉排序树的建立、查找、删除、插入哈希表的建立和输出判断一个二叉树是不是平衡二叉树#include#include#include#define MAX_SIZE 100int nums1[] = {5,7,3,2,9,4,8,1,10,6};int nums2[] = {1,2,3,4,5,6,7,8,9,10};
2013-08-23 19:49:13
992
原创 平衡二叉排序树
AVL树介绍BST是一种查找效率比较高的组织形式,但其平均查找长度受树的形态影响较大,形态比较均匀时查找效率很好,形态明显偏向某一方向时其效率就大大降低。因此,希望有更好的二叉排序树,其形态总是均衡的,查找时能得到最好的效率,这就是平衡二叉排序树。 平衡二叉排序树(Balanced Binary Tree或Height-Balanced Tree)是在1962年由Adelson-Ve
2013-08-23 17:17:09
1790
原创 图的相关操作总结
图的相关操作总结递归深度优先遍历非递归深度优先遍历广度优先遍历判断无向图是否有环输出vi到vj的长度为l的路径找出经过vi的回路普利姆算法拓扑排序部分操作参考:http://blog.youkuaiyun.com/Kay_Sprint/article/category/851272/1#include#include#include#define MAX_SIZ
2013-08-20 17:19:47
1020
原创 关于二叉树的相关操作汇总
递归前序遍历 非递归前序遍 历递归中序遍历 非递归中序遍历 递归后序遍历 非递归后序遍历 递归层次遍历 非递归层次遍历 递归计算二叉树的高度 非递归计算二叉树高度 递归查找某点在二叉树的那一层 非递归查找某点在二叉树的那一层 判断两棵二叉树是否相似 判断二叉树是不是完全二叉树 输出某一结点的到跟结点的路径 得到两个结点的最近的共同祖先 拆分二叉树 统计二叉树的结点个数
2013-08-16 20:36:04
1363
Java串行程序并行化执行
2016-01-11
并行程序串行化执行
2016-01-09
UML2.2-Visio2010.zip
2015-09-06
在Android应用中添加修改主题功能
2014-04-06
将Openfire中的MUC改造成类似QQ群一样的永久群
2013-11-27
模仿Instant Heart Rate效果的心跳检测器
2013-09-04
Android后台开启服务默默拍照
2013-07-07
Android中可增删联系人列表的简单实现
2013-03-31
Android中HorizontalListView的实现
2012-10-20
Android中DateTimePicker的实现
2012-09-22
ListView中含有Button时setOnclickListener应写在Adapter的什么地方
2012-08-17
ListView中Spinner的使用
2012-07-25
PowerBuilder*图书馆管理系统*需求分析*概念结构设计*逻辑结构设计*物理结构设计
2010-05-06
turbo c 2.0
2008-10-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人