自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Rico's Blogs

你得丢开以往的事,才能不断继续前进。

  • 博客(98)
  • 资源 (11)
  • 收藏
  • 关注

原创 Map 综述(四):彻头彻尾理解 HashTable

Hashtable与HashMap都是Map族中较为常用的实现,也都是Java Collection Framework 的重要成员,它们的本质都是链表数组。本文深入JDK源码并从定义、构造、结构、存取等四个方面深入解读了Hashtable的底层结构与存储逻辑,并阐述了HashMap、Hashtable与ConcurrentHashMap三者间的联系与区别。

2017-06-04 22:55:42 10347 5

转载 图解 HTTP:Web开发相关的一些核心基础概念

当今web程序的开发技术真是百家争鸣,ASP.NET,PHP,JSP等。无论Web技术在未来如何发展,理解Web程序之间通信的基本协议相当重要,因为它让我们理解了Web应用程序的内部工作。本文将对HTTP协议进行详细的实例讲解,希望对大家的开发工作或者测试工作有所帮助。最重要的是,本文通过使用Fiddler工具图文并茂地介绍了HTTP Request和HTTP Response,使得我们可以更好地理解HTTP协议。

2017-05-29 17:56:53 5792

原创 八大排序算法实战:思想与实现

所谓排序,就是根据排序码的递增或者递减顺序把数据元素依次排列起来,使一组任意排列的元素变为一组按其排序码线性有序的元素。本文将介绍八种最为经典常用的内部排序算法的基本思想与实现,包括插入排序(直接插入排序,希尔排序)、选择排序(直接选择排序,堆排序)、交换排序(冒泡排序,快速排序)、归并排序、分配排序(基数排序),并给出各种算法的时间复杂度、空间复杂度和稳定性。

2017-05-25 16:14:36 13991 17

转载 eclipse中使用git

【教程】eclipse中使用git

2017-05-20 09:11:59 2234

转载 思维的局限

思路决定出路,屁股决定脑袋,多学习,多看书,多思考,多尝试。

2017-05-19 22:02:30 1638 1

原创 JVM类生命周期概述:加载时机与加载过程

一个.java文件在编译后会形成相应的一个或多个Class文件,这些Class文件中描述的类的各种信息,最终都需要加载到虚拟机中之后才能被运行和使用。事实上,虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验,转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型的过程就是虚拟机的类加载机制。本文概述了JVM加载类的时机和过程,并结合典型案例分析了类的初始化阶段,揭开了JVM类加载机制的神秘面纱。

2017-05-18 13:48:22 62698 61

转载 深入理解Java类加载器(一):Java类加载原理解析

每个开发人员对java.lang.ClassNotFoundExcetpion这个异常肯定都不陌生,这个异常背后涉及到的是Java技术体系中的类加载机制。本文简述了JVM三种预定义类加载器,即启动类加载器、扩展类加载器和系统类加载器,并介绍和分析它们之间的关系和类加载所采用的双亲委派机制,给出并分析了与Java类加载原理相关的若干问题。

2017-05-15 20:47:44 66034 44

原创 Map 综述(二):彻头彻尾理解 LinkedHashMap

HashMap和双向链表合二为一即是LinkedHashMap。所谓LinkedHashMap,其落脚点在HashMap,因此更准确地说,它是一个将所有Entry节点链入一个双向链表的HashMap。由于LinkedHashMap是HashMap的子类,所以LinkedHashMap会拥有HashMap的所有特性。此外,LinkedHashMap可以很好的支持LRU算法。

2017-05-12 11:52:49 191064 52

原创 算法实战:根据Key或Value对Map进行排序及其应用

我们知道,Map是 Java Collection Framework 的重要成员,也是我们最常用的容器类之一。Map的实现多种多样,包括HashMap、LinkedHashMap等。但是,无论实际中使用哪种实现,我们在编程过程中常常会遇到诸如根据Key或Value对Map进行排序、保持Map插入顺序等问题,本文特别针对以上几个问题给出了具体解法,并分享华为一道与我们主题极为相关的笔试题。

2017-05-11 18:13:19 9482 6

原创 图解Java 垃圾回收机制

Java技术体系中所提倡的自动内存管理最终可以归结为自动化地解决了两个问题:给对象分配内存以及回收分配给对象的内存。垃圾回收机制的引入有效地解决了内存的回收问题使得他们在编写程序的时候不再需要考虑内存管理。本文首先着重介绍了判断一个对象是否可以被回收的两种经典算法,并详述了四种典型的垃圾回收算法的基本思想及其直接应用——垃圾收集器,最后结合内存回收策略介绍了内存分配规则。

2017-05-05 17:11:17 83924 73

转载 统计和分析访问量工具集锦

利用ClustrMaps | GoStats | 51la | Google Analytics统计和分析访问量这几天,没事捣鼓了一下统计和分析访问量的一些工具:ClustrMaps这个东西就是一张地图,显示的是来访者所在的地方,它的统计是这样的,即一天一个IP,不管一个IP在这一天来了你博客多少次,统统只算一次。GoStats这个可以统计你的页面访问量,不受一天一个IP的限制,它还可以统计你的

2017-04-24 11:02:16 2793 1

原创 计算机网络体系结构综述(下)

摘要:  我们知道TCP/IP与OSI最大的不同在于OSI是一个理论上的网络通信模型,而TCP/IP则是实际上的网络通信标准。在上篇《计算机网络体系结构综述(上)》的基础上,本文着重概述了两种典型的层次化网络体系机构 —— OSI七层参考体系结构和TCP/IP四层协议结构,并对每种体系结构中的各层就任务、功能、协议及与其他相似层的区别等几方面做了进一步得介绍,力求还原这些典型的网络体系结构的全...

2017-04-07 18:59:17 16865 13

原创 计算机网络体系结构综述(上)

计算机网络体系结构标准的制定使得两台计算机能够像两个知心朋友那样能够互相准确理解对方的意思并做出优雅的回应。本文首先概述了计算机网络体系结构的提出动机,并结合日常生活中的邮政系统介绍了设计的理念,并给出了相关的基本概念和标准。进一步地,我们着重概述了计算机网络体系结构的分层原理及其最重要的组成部分——协议,使得读者能够对计算网路体系结构有一个全新的、系统的认识。

2017-04-07 18:54:58 28591 18

原创 Struts1与Struts2的区别和对比(深度好文)

本文介绍了Struts2的起源,详细对比了Struts2和Struts1.x的差异,并穿插概述了Struts2框架和请求流程。本文详细介绍了Struts1.x和Struts2两者之间在Action方面、对 Servlet 的依赖方面、输入捕获方面和表达式语言等十几个方面的差别,同时指出Struts2对拦截器与IoC的支持,而在Struts1.x中这些特性是很难想象的。

2017-04-05 22:31:10 16609

原创 Java中的 Scanner简述(企业笔试在线编程的输入控制)

最近进行企业在线笔试时,发现企业的笔试平台大都使用赛码网(虽然槽点很多),而且在线编程都需要使用Scanner来读取程序的输入,因此,笔者就在先辈们的成果上对Scanner做了一份全新的、详细的总结。我们知道,Scanner是Java5的新特征,主要功能是简化文本扫描。这个类最实用的地方表现在获取控制台输入,其他的功能都很鸡肋,尽管Java API文档中列举了大量的API方法,但是都不怎么地,特此简述。

2017-04-05 16:55:04 5676

转载 Java知识图谱(附:阿里Java学习计划)

本文主要描绘了Java基础学习过程,给出Java知识结构图,以及阿里Java岗学习计划,对Java学习爱好者、准备及将要从事Java开发方面的同学大有裨益。

2017-04-04 11:06:41 28763 2

原创 再述 OGNL:在Struts2中的应用

MVC框架的分层结构提高了程序的可维护性、可移植性、可扩展性与可重用性,降低了程序的开发难度,但是也引来了一些新的问题,比如不同层次间的数据流转问题。OGNL的出现填平了这条沟壑,成为字符串与Java对象之间沟通的桥梁。本文首先概述了Struts2为何要集成WebWork的OGNL,并给出了Struts2官方对OGNL的描述,并就OGNL在Struts2中的进一步应用进行了详述,包括数据访问、控制标签等。

2017-04-03 16:19:48 3671 4

原创 与MVC框架解耦的OGNL:前世今生及其基本用法

虽然我们通过MVC框架而结缘OGNL,但它并未与MVC框架耦合在一起,而是一个以独立的库文件出现的功能强大的表达式语言,是字符串与Java对象之间沟通的桥梁。它通过简单一致的语法,可以存取Java对象树中的任意属性、调用Java对象树的方法,并自动实现必要的类型转化。本文首先概述了Ognl的前世今生,介绍了对Java对象属性的访问,静态、实例和构造方法的调用,容器的访问以及集合操作等内容,奠定学习OGNL的基础。

2017-04-03 08:11:17 7042 2

原创 Java Web 基础 --- Filter 综述

伴随J2EE一起发布的Servlet规范中还包括一个重要的组件——过滤器,其主要用于对用户请求进的预处理以及对服务器响应的后处理,是个典型的处理链,并且Servlet规范使用了三个接口Filter,FilterChain和FilterConfig对过滤器机制进行了抽象。本文概述了Filter的提出动机、工作原理、使用流程和应用实例,并指出Java Web中Filter机制是AOP与CoR融合的最佳实践。

2017-03-31 10:09:15 3689 2

原创 责任链模式综述(基础篇)

本篇综述责任链模式的提出动机、原理结构、典型实现和应用场景,并结合实例展现了其灵活性和可插拔性。首先,结合生活中“打扑克”的例子引出了责任链模式动机和应用场景,然后我们概述了责任链模式的内涵和结构,即通过建立一条责任链来组织请求的处理者,请求将沿着链进行传递,而请求发送者无须知道请求在何时、何处以及如何被处理,实现了请求发送者与处理者的解耦。最后给出了责任链模式的典型实现和并结合具体实例介绍其使用方式,以便体会其优点

2017-03-30 16:28:36 11550 14

转载 通过 JS 注入获取和设置input域的值

本文主要给出了以js注入的方式设置和获取表单中input域的值,多用于自动化测试、浏览器插件开发等。

2017-03-22 22:26:56 13417 2

原创 Map 综述(一):彻头彻尾理解 HashMap

摘要:  HashMap是Map族中最为常用的一种,也是 Java Collection Framework 的重要成员。本文首先给出了 HashMap 的实质并概述了其与 Map、HashSet 的关系,紧接着给出了 HashMap 在 JDK 中的定义,并结合源码分析了其四种构造方式。最后,通过对 HashMap 的数据结构、实现原理、源码实现三个方面的剖析,深入到它底层 Hash 存储机...

2017-03-17 17:54:18 94737 77

原创 Java 访问权限控制:你真的了解 protected 关键字吗?

摘要:  对于类的成员而言,其能否被其他类所访问,取决于该成员的修饰词;而对于一个类而言,其能否被其他类所访问,也取决于该类的修饰词。在Java中,类成员访问权限修饰词有四类:private,无(包访问权限),protected 和 public,而其中只有包访问权限和public才能修饰一个类(内部类除外)。特别地,很多Java书籍对protected可见性的介绍都比较笼统,本文重点说明了p...

2017-03-12 22:54:47 84089 79

原创 Java String 综述(下篇)

Java 中的 String类 是我们日常开发中使用最为频繁的一个类,但要想真正掌握的这个类却不是一件容易的事情。笔者为了还原String类的真实全貌,先分为上、下两篇博文来综述String类。笔者从Java内存模型展开,结合 JDK中String类的源码,特别就 String类的常量池、不可变性、对象的创建方式,String类与享元模式、正则表达式、克隆的关系和三大字符串类等几个方面进行全面、准确的阐述。

2017-03-09 23:02:48 8365 24

原创 Java Web基础 --- Servlet 综述(理论篇)

Web 技术成为当今主流的互联网Web应用技术之一,而Servlet是Java Web技术的核心基础。本文首先从请求/响应架构应用的大背景谈起Servlet的由来,明确Servlet的产生动机,揭示了Servlet的本质。紧接着讲述了Servlet族的继承结构,Servlet的生命周期、Servlet执行流程,Servlet与并发的联系,Servlet与 MVC 的联系等,使我们对Servlet有一个更深刻的认识。

2017-03-09 18:09:17 7552 6

原创 Java Web基础 --- Servlet 综述(实践篇)

摘要:  伴随 J2EE 6一起发布的Servlet 3.0规范是Servlet规范历史上最重要的变革之一,它的许多新的特性都极大的简化了 Java Web 应用的开发。本文从一个简单的 Servlet 例子开始,说明了如何开发、配置一个 Servlet。此外,还重点叙述了Servlet的一些新特性,包括Servlet 异步处理、Servlet 非阻塞IO 以及 Servlet 文件上传等内容,以便

2017-03-09 18:00:12 3446

原创 JSP中文乱码问题终极解决方案(上)

本文首先介绍了一个JSP的源文件执行过程,即需要经过三个阶段,两次编码,才能完成一次完整的输出。特别需要注意的是,在这个过程中,编码问题贯穿始终。在JSP/Servlet中,主要有以下四种方式可以设置编码,即pageEncoding、contentType、request.setCharacterEncoding和response.setCharacterEncoding,在本文中,我们就这四种方式进行介绍和总结。

2017-02-27 12:03:23 17677 3

原创 使用 URLDecoder 和 URLEncoder 对中文字符进行编码和解码

摘要:  URLDecoder 和 URLEncoder 用于完成普通字符串 和 application/x-www-form-urlencoded MIME 字符串之间的相互转换。在本文中,我们以使用URLDecoder解决GET请求中文乱码问题为场景说明 URLDecoder/URLEncoder 的用法,并给出了 application/x-www-form-urlencoded MIM...

2017-02-25 23:17:02 95293 9

原创 Java Web基础 --- Jsp 综述(下)

JSP脚本中包含九个内置对象,它们都是Servlet-API接口的实例,并且JSP规范对它们进行了默认初始化。本文首先通过一个JSP实例来认识JSP内置对象的实质,紧接着以基于请求/响应架构应用的运行机制为介绍背景,引出JSP/Servlet的通信方式与内置对象的作用域,并对每个内置对象的常见用法进行深入介绍和总结。

2017-02-25 23:13:32 5320 11

原创 JSP中文乱码问题终极解决方案(下)

本文首先从四个方面给出了在使用JSP过程中可能出现中文乱码的情形,具体包括JSP页面中文乱码、JSP源文件中文乱码、GET 请求的请求参数为中文乱码 和 POST 请求的请求参数为中文乱码四种情形,并针对每种情形给出了相应的终极解决方案。

2017-02-19 22:42:23 99656 17

原创 Java Web基础 --- Jsp 综述(上)

Servlet/Jsp是J2EE规范的一部分,是Tomcat的主要实现部分。当用户发送请求时,Servlet利用输出流动态生成HTML,这导致其开发效率极为低下。JSP技术通过实现普通静态HTML和动态部分混合编码,使得逻辑与外观相分离,简化了表示层的实现。本文以JSP的本质是Servlet为主线,结合其转译后的Servlet,探讨了JSP的原理、执行过程、脚本元素、编译指令和动作指令,并给出了JSP使用的注意事项。

2017-02-19 22:14:25 7009 13

原创 深入理解享元模式

面向对象技术可以很好地解决一些灵活性或可扩展性问题,但在很多情况下需要在系统中增加类和对象的个数。当对象数量太多时,将导致运行代价过高,带来性能下降等问题。享元模式通过共享技术实现相同或相似对象的重用提高系统资源的利用率。本文首先阐述了享元模式要解决的问题和解决问题的理念,然后从实现角度重点说明了该模式的本质,并进一步给出了其所包含的角色和组织结构。最后,给出了共享模式的应用实例和使用场景。

2017-02-13 10:37:26 26295 13

原创 Struts2 实战:从 登录Demo 看 Struts2 应用开发

作为 Struts2 的首篇文章,本文首先以登录Demo为例介绍了创建一个简单的 Struts2 应用的一般步骤和流程,紧接着以该 Demo 为出发点概述了 Struts2 的运行机制,揭示了 Struts2 的本质:将请求与视图相分离。最后,针对该Demo所涉及到的知识点Namespace进行了深入探究,并总结出Struts2的请求路由规则。

2017-02-12 16:19:19 2280 1

原创 Java 并发:Lock 框架详解

我们知道,synchronized是Java的内置特性,在JVM层面实现了对临界资源的同步互斥访问,但 synchronized 粒度有些大,在处理实际问题时存在诸多局限性,比如响应中断等。Lock 提供了比 synchronized更广泛的锁操作,它能以更优雅的方式处理线程同步问题。本文以synchronized与Lock的对比为切入点,对Java中的Lock框架的枝干部分进行了详细介绍,最后给出了锁的一些相关概念

2017-02-10 16:52:05 10511 23

原创 Java 并发:线程间通信与协作

线程与线程之间不是相互独立的个体,它们彼此之间需要相互通信和协作,最典型的例子就是生产者-消费者问题。本文首先介绍 wait/notify 机制,并对实现该机制的两种方式——synchronized+wait-notify模式和Lock+Condition模式进行详细剖析,以作为线程间通信与协作的基础。进一步地,以经典的生产者-消费者问题为背景,熟练对 wait/notify 机制的使用。

2017-02-08 17:43:18 19687 28

原创 Java 并发:深入理解 ThreadLocal

ThreadLocal 又名线程局部变量,是 Java 中一种较为特殊的线程绑定机制,用于保证变量在不同线程间的隔离性,以方便每个线程处理自己的状态。进一步地,本文以源码为切入点,深入分析了ThreadLocal类的作用原理,并给出应用场景和一般使用步骤。

2017-01-19 10:12:38 6139 7

原创 Java 并发:内置锁 Synchronized

在多线程编程中,线程安全问题是一个最为核心的问题,即当多个线程访问某共享、可变数据时,始终都不会导致数据破坏以及其他不该出现的结果。而所有的并发模式解决这个问题采用的方案都是序列化访问临界资源 。在 Java 中,synchronized内置锁实现了同步互斥访问。 synchronized 内置锁是可重入锁,同步方法、同步代码块、实例对象锁 和 Class 对象锁在Java中广泛应用。

2017-01-12 19:48:21 9761 17

原创 Java 并发:Thread 类深度解析

摘要:  Java 中 Thread类 的各种操作与线程的生命周期密不可分,了解线程的生命周期有助于对Thread类中的各方法的理解。一般来说,线程从最初的创建到最终的消亡,要经历创建、就绪、运行、阻塞 和 消亡 五个状态。在线程的生命周期中,上下文切换通过存储和恢复CPU状态使得其能够从中断点恢复执行。结合 线程生命周期,本文最后详细介绍了 Thread 各常用 API。特别地,在介绍会导致...

2017-01-11 20:44:31 11512 25

转载 Word 分节符的删除(不改变文章格式)

WORD中删除分节符,并且不改变文章格式。

2017-01-03 09:03:37 46399 10

原创 Java 并发:volatile 关键字解析

在Java并发编程中,要想使并发程序能够正确地执行必须要保证三条原则:原子性、可见性和有序性。只要有一条原则没有被保证,就有可能导致线程安全性问题。volatile关键字被用来保证可见性,即保证共享变量的内存可见性以解决缓存一致性问题,同时其还会禁止进行指令重排序。volatile关键字主要用于使其他线程及时感知共享变量的修改并保证使用变量最新值,例如,用于修饰状态标记量和Double-Check(双重检查)中。

2016-12-15 16:26:41 19137 113

计算机网络体系结构

计算机网络体系结构标准的制定使得两台计算机能够像两个知心朋友那样能够互相准确理解对方的意思并做出优雅的回应。本文首先概述了计算机网络体系结构的提出动机,并结合日常生活中的邮政系统介绍了设计的理念,并给出了相关的基本概念和标准。进一步地,我们着重概述了计算机网络体系结构的分层原理及其最重要的组成部分——协议,使得读者能够对计算网路体系结构有一个全新的、系统的认识。

2017-04-07

过滤器实现get请求和POST请求的中文乱码问题

使用过滤器实现GET请求和POST请求的中文乱码问题,只需在自己的Web应用中的web.xml中配置该filter即可使用。

2017-03-03

使用json需要导入的全部包(7个)

使用json所需导入的jar包共7个已经上传 亲测好用 欢迎下载

2015-05-01

Android网络编程 非常适合入门

Android网路编程代码 设计客户端和服务器端通信 适合初学者学习 当然其中包括很多其他知识点 例如基于handler的主副线程通信机制 多线程应用等 另外 对于Android入门的学习者 也是一手极好的学习资料 下载即可运行 欢迎指正 ">Android网路编程代码 设计客户端和服务器端通信 适合初学者学习 当然其中包括很多其他知识点 例如基于handler的主副线程通信机制 多线程应用等 另外 对于Android入门的学习者 也是一手极好的学习资料 下载即可运行 [更多]

2015-04-16

eclipse/Myeclipse皮肤大全(10套)

10套皮肤任你选 做一个有个性的程序猿 设置方式:File >import >General >Preferences

2015-04-16

Tomcat 7.0.0

最新的从官网下载的tomcat,绝对好用,只需配置环境变量CATALINA_HOME即可

2013-11-27

典型数据结构的实现

包括所有常见数据结构的经典实现,包括顺序表,静态链表,双向链表,链表,队列,栈,堆,二叉树等,还有一些经典问题的解决,比如八皇后问题等。

2013-11-22

操作系统经典实验

包含了操作系统所有经典实验的源码,即生产者消费者问题、读者优先问题、CPU调度问题、死锁避免问题、虚拟内存页置换等问题。

2013-11-22

公司员工工资管理系统

连Access数据库的用VB语言开发的工资管理系统

2013-06-01

书店购书书系统

一个购物车(买书系统),运用了Jsp,Servlet,JavaBean技术,完美至极。

2013-06-01

栈类模板C++代码

编写一个栈的类模板(包括其成员函数定义),以便为任何类型的对象提供栈结构数据操作。并在应用程序中创建整数栈、字符栈和浮点数栈,提供一些数据进行进栈、退栈和打印操作的测试。

2012-12-02

空空如也

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

TA关注的人

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