Fork me on GitHub

Apache Freemarker的一个小坑

xxx.png
前段时间用到了Apache Freemarker来做前端页面,发现一个问题,就是JavaBean的Long类型和Integer类型向模板中注入的时候,只要是注入input类型,那么大
于999的数字则不会被显示,这个问题我也问了Apache官方的论坛:https://issues.apache.org/jira/browse/FREEMARKER-132 ,果然是官方站点呀,反馈还是很快的,系统还自动发了邮件!

阅读更多...

Linux Cgroups的资源控制

今天主要是说说Linux的Cgroup技术,之前介绍的是构建Linux容器的namespace技术,它能够很好的帮助进程隔离出自己单独的空间,但Docker又是怎么限制每个空间的大小,保证他们不会互相争抢呢?这就要用到Linux的Cgroups技术。

mark

Linux Cgroups(Control Groups) 提供了对一组进程及将来的子进程的资源的限制 ,控制和统计的能力,这些资源包括CPU,内存,存储,网络等。通过Cgroups,可以方便的限制某个进程的资源占用,并且可以实时的监控进程的监控和统计信息。

阅读更多...

虚拟化的基石——Namespace

每每被人问到:“Docker技术到底是怎么实现的呢?”我只能粗粗浅浅地说:“Docker是使用Linux Kernel的Namespace 和 Cgroups实现的一种容器技术。”那么,什么是Namespace,什么是Cgroups,Docker是怎么使用它们的,容器到底是怎么一步步被创建出来的?问到这些,我就会支支吾吾地不知所以。由此可见,了解容器技术的底层技术,然后明白它们是如何工作的,尤为重要,这些才是整个容器技术的基石,掌握了这些基石才能更加容易地向上攀登。

那今天就先看看Namespace吧!

mark

阅读更多...

构建可复用模块

Golang的工程管理一直是初学者所不能很好的理解的事物,本篇主要讲述了在Golang中如何进行工程管理,如何构建可复用模块,从GitHub获取Go的包是如何操作的,以及Golang的包管理工具的基本使用,这样再进行项目开发的时候就可以模块化的管理自己的工程,首先还得从Package说起!

mark

阅读更多...

在Golang中处理异常

通常我们需要编写好的错误处理方式,在了避免某些程序员滥用异常,于是Go这里直接把异常这一块给砍掉了,最终还是通过返回值来判断程序的异常情况,毕竟Go可是支持多返回值的语言,比如atoi、itoa等函数,就不能忽略它的第二个返回值,因为第二个返回值代表了转换是否成功!不过Golang还是提供了一些错误处理机制的

mark

阅读更多...

实践Go的面向对象

Go是一种面向对象的语言吗?

关于Go是一种面向对象的语言吗这种问题,官方的解释是难说,说不准,这回答就有意思了!在我看来尽管Go具有类型和方法,并允许使用面向对象的编程风格,但没有类型层次结构。 Go的接口完全提供了一种不同的方法,可以将类型嵌入其他类型,达到继承的效果,其实又完全不同于继承,因为Go其中一个特点是可以为任何类型的数据定义方法,所以再讨论Go是不是面向对象的语言的时候还是可以先体验体验Go的Functional Programming

mark

阅读更多...

IDEA插件推荐

mark

Alibaba Java Coding Guidelines

写代码怎么能没有规范呢?这款插件是伴随阿里巴巴编码约规出现的,自我感觉是必须要安装的插件

Lombok

以前的Java项目中,充斥着太多不友好的代码:各种getter/setter/toString;异常处理;I/O流的关闭操作等等,这些样板代码既没有技术含量,又影响着代码的美观,Lombok必备!不要忘记引入Lombok依赖

阅读更多...
  • © 2018-2020 changlin zou
    • Page View:
    • Unique Visitor:

请我喝杯咖啡吧~

支付宝
微信