Java提高篇——Java的四舍五入

  |   0 评论   |   135 浏览

四舍五入是我们小学的数学问题,这个问题对于我们程序猿来说就类似于1到10的加减乘除那么简单了。在讲解之间我们先看如下一个经典的案例:

public static void main(String[] args) {
        System.out.println("12.5的四舍五入值:" + Math.round(12.5));
        System.out.println("-12.5的四舍五入值:" + Math.round(-12.5));
    }
Output:
12.5的四舍五入值:13
-12.5的四舍五入值:-12
 

Gson 日期格式化问题 有更新!

  |   0 评论   |   225 浏览

Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss").create()

在Java中处理JSON格式的数据时,Google Gson是个不错的选择,用起来挺方便的,也有一定灵活性。我现在工作中在参与的两个项目里都有用它。不过它在处理Date格式时有个小陷阱,在不同环境中部署时可能会遇到问题。 

快速排序的分析与优化 有更新!

  |   0 评论   |   204 浏览

快速排序的介绍

快速排序是一种排序算法,对包含n个数的输入数组,最坏的情况运行时间为Θ(n^2)[Θ读作theta]。虽然这个最坏情况的运行时间比较差,但快速排序通常是用于排序的最佳的实用选择。这是因为其平均情况下的性能相当好:期望的运行时间为Θ(nlgn),且Θ(nlgn)记号中隐含的常数因子很小。另外,它还能够进行就地排序,在虚拟内存环境中也能很好的工作。

和归并排序一样,快速排序也是基于分治法(Divide and conquer):

  • 分解:数组A[p..r]被划分成两个(可能为空)的子数组A[p..q-1]和A[q+1..r],使得A[p..q-1]中的每个元素都小于等于A[q],A[q+1..r]中的每个元素都大于等于A[q]。这样元素A[q]就位于其最终位置上了。
  • 解决:通过递归调用快速排序,对子数组A[p..q-1]和A[q+1..r]排序。
  • 合并:因为两个子数组是就地排序,不需要合并,整个数组已有序。

 

你真的会用“单例模式”吗? 有更新!

  |   1 评论   |   357 浏览

23种设计模式之——单例模式(Singleton)

单例对象(Singleton)是一种常用的设计模式。在Java应用中,单例对象能保证在一个JVM中,该对象只有一个实例存在。这样的模式有几个好处:

  • 某些类创建比较频繁,对于一些大型的对象,这是一笔很大的系统开销。
  • 省去了new操作符,降低了系统内存的使用频率,减轻GC压力。
  • 有些类如交易所的核心交易引擎,控制着交易流程,如果该类可以创建多个的话,系统完全乱了。(比如一个军队出现了多个司令员同时指挥,肯定会乱成一团),所以只有使用单例模式,才能保证核心交易服务器独立控制整个流程。

把RecyclerView撸成 马 蜂 窝

  |   0 评论   |   369 浏览

Android自定义蜂窝图实现

于是我将文章中源码下载下来看了一下,发现只支持7张图,不能多不能少。而且在设计上也有一定的欠缺。不过也给我提拱了一种思路。

于是想想自己的RecyclerView系列正好要讲LayoutManager了,那么我来做一个类似上面功能的LayoutManager好了。那么下面我来教大家一步一步把你的RecyclerView撸成马蜂窝。

源码地址:HiveLayoutManager