LangInteger

Archive: 2018

Spring-to-tell 之基于 XML 配置文件的启动流程

Bean 的管理是 Sping 框架中的核心内容。在 Spring 中,Bean 被抽象为 BeanDefinition 这种数据结构,其定义完整描述了我们在配置文件中定义的 \ 节点中的所有信息,包括各种属性、各种类型的子节点。Spring 对 Bean 的管理就是围绕 BeanDefination 来展开的。根据 Bean 来源的不同,Spring 的启动围绕各种定义了 Bean 的资源文件、注解去展开。本文从最基础的形式开始,主要讲述基于 XML 配置文件的 Spring IOC 容器的启动流程。

Lambda 表达式

讲讲 java 中 Lambda 表达式的那些故事。

Spring Data JPA 简明教程

JPA 是为了整合第三方 ORM 框架建立的一套标准接口,统一了数据持久化存储的相关操作。程序员只需学习一套统一的 JPA api,而不必关心底层去做事情的 ORM 框架到底是谁。
Hibernate 等 ORM 框架是 JPA 的底层实现,本身提供了一些 CRUD 功能,但是包含业务逻辑的数据库访问操作仍然需要手写 sql 语句来实现,而 Spring-data-jpa 则提供了进行了更强大的功能,封装了一定的业务逻辑功能,最大程度上减少了手写 sql。

Spring @Transactional两三事

事务是指访问并可能更新数据库中各种数据项的一系列操作,这些操作要么全部成功,要么全部失败。如果说一个数据库支持事务,那么该数据库必须要具备ACID四个特性。亦即:

  • 原子性(Atomicity):事务包含的操作要么全部成功,要么全部失败
  • 一致性(Consistency):事务操作使数据库从一个一致性状态变换到另一个一致性状态
  • 隔离性(Isolation):多个用户并发访问数据库时,每个并发事务之间会互相隔离,不会互相干扰。
  • 持久性(Durability):事务操作对数据库中数据的改变是永久性的。
    由此又引出事务的隔离级别、不同隔离级别会产生的不同毛病等问题。
    在Spring中使用这些概念的时候,可能会和Spring中的一些具体的定义产生混淆,在此记录。

线性表顺序映像的Java实现

本例中线性表顺序映像实现难点主要在于实现线性表的add函数,借鉴JDK源码中的空间扩增方式,每次增加原有容量的一半。由于标记线性表大小的size变量为int类型,故需要考虑size值溢出的情况。

条条大路通罗马 —— Java 路径漫谈

编写 Java 程序,无论是 Java EE 还是 SE ,和各种程序外资源打交道都蛮多的。本文对 Java 程序中的路径问题进行一定探索,帮助 Javaer 不迷路。

天下还有免费的午餐--Heroku初体验

作为最早的云服务平台之一,经过十年的努力,Heroku 终于在 2018 年引起了我的注意(做不要脸状)。本文主要介绍在 Heroku 平台上部署运行在 Jetty 容器中的 Java Web 应用的过程以及踩的那些坑。最终的成果见 langexample

Java 爬虫: 8021 招聘网站漫游指南

已经是 8021 年了,找工作也需要用数据来作为支撑,当然,我的决定权也是很重要滴。出于这种想法,一股来自东方的神奇力量开始了使用 Java 对 BOSS 直聘、拉钩、猎聘等网站的漫漫爬取之路。

震惊! Set 家族中出了一个元素重复的叛徒

在 Java 源码中,对 Set 有如下定义:

A collection that contains no duplicate elements. More formally, sets contain no pair of elements e1 and e2 such that e1.equals(e2), and at most one null element.

总结成一句话就是: Set 是不含重复元素的 Collection 。

Java面向对象编程知识点总结

主要是针对Java面向对象部分知识点的梳理,方便日后查找。

JSF、Servlet和JSP的前世今生

JSP 和 Servlet 之间是何种关系? JSP 本身是不是就是一种 Servlet ? JSP 和 JSF 的联系间又蕴藏何种玄机? JSF 是否如 ASP.NET-MVC 一样,是某种形式的 prebuild UI ?答案尽在译者新番

Hello World

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.

String和它的常量池朋友以及intern()方法在JDK1.7中的变化

Java语言中有8种基本数据类型和一种比较特殊的数据类型String。为了使用起来更加高效(时间上和空间上),JVM为这些类型的数据分别维护了系统级别的常量池。本文主要叙述String类型的常量池以及向常量池中添加对象的intern()方法在JDK1.7以后版本中的变化。

基于TCP的局域网文件复制

依稀记得以前有个软件叫做“茄子快传”,是一款基于局域网进行文件传输的工具,但是APP开发商使劲儿往自己的应用里塞进了一堆累赘的功能,让我逐渐失去了对它的爱。借着Java的东风,俺自己也来实现一个局域网文件传输工具。

Java IO-文件及其操作

I/O是一个庞大复杂的系统,既要考虑到各种I/O源端和各种想要与之通信的接收端(文件、控制台、网络链接等),而且还要考虑和他们通信的不同方式(顺序、随机存取、缓冲、二进制、按字符、按行、按字等)。
下面的内容记录了Java IO中对文件的典型操作。

天堂电影院-Cinema Paradiso

![paradiso](paradiso.jpg)

Java排序算法的实现及比美-进阶篇

继昨天快排吊打一干O(n^2)的排序算法之后,新的风暴已经出现。堆排序、快速排序、归并排序三个大手子开始决战紫禁之巅,在10w-1000w数据排序的比拼中一探高下。

Java排序算法的实现及比美

今日用Java实现了几种排序算法,包括冒泡排序、简单选择排序、插入排序、归并排序和快速排序。前三种是我以前眼中比较low的时间复杂度为O(n^2)的算法,后面两种则是感觉各种高大上的时间复杂度为O(nlogn)的排序。写完之后手痒痒,对这几种排序进行了10万~100万数据量之间排序性能的测试,由于归并排序比较扯淡,不在次次测试之列(事实是它并不扯淡)。

1