作者:daicy

Java 内存分配全面浅析

本文将由浅入深详细介绍Java内存分配的原理,以帮助新手更轻松的学习Java。这类文章网上有很多,但大多比较零碎。本文从认知过程角度出发,将带给读者一个系统的介绍。 进入正题前首先要知道的是Java程序运行在JVM(Java Virtual Machine,Java虚拟机)上,可以把JVM理解成Java程序和操作系统之间的桥梁,JVM实现了Java的平台无关性,由此可见JVM的重要性。所以在

daicy daicy 发布于 2019-04-17

通过Java Swing看透MVC设计模式

通过Java Swing看透MVC设计模式 一、引言 (一)GUI设计思想的启发 在现实世界中,一个简单的电脑键盘按键,如按钮,就体现了GUI设计的规则。它由动作特性(如可被按下)和表现(如代表的字母)两部分构成。这种设计思想可应用于软件开发,例如Model/View/Controller(MVC)

daicy daicy 发布于 2019-04-17

Java 理论和实践: 了解泛型

简介: JDK 5.0 中增加的泛型类型,是 Java 语言中类型安全的一次重要改进。但是,对于初次使用泛型类型的用户来说,泛型的某些方面看起来可能不容易明白,甚至非常奇怪。在本月的“Java 理论和实践”中,Brian Goetz 分析

daicy daicy 发布于 2019-04-17

如何写一份好的工程师简历

近三年作为 Google(谷歌)的软件工程师,我每周会帮人事部门审查简历,决定要不要给他们面试。Google 这几年的发展让很多许多优秀的工程师都前来申请。到目前为止,我已经看了上千份简历,有些简历留下的印象比别的好很

daicy daicy 发布于 2019-04-17

推荐给初级Java程序员的3本进阶书

原作者在这篇文章中介绍3本不错的技术书籍。作者认为这些书籍对新手或者学生而言尤其有帮助。通过一些基础性的教程入门后,我们可以使用Java做基础性的编程。然而,当我们需要从初级提升更高的一个层次时,大多数的人却不知道从何入手。一些好的书籍在这个阶段可以很好地帮助初级开发人员。

daicy daicy 发布于 2019-04-17

使用 Antlr 开发领域语言 - 开发一个完整的应用

简介: 为了使应用系统能够快速地响应复杂多变的业务规则,通过让用户使用领域语言来自定义业务规则是一种常用的选择。 然而实现领域语言并非易事,本文使用 Antlr 语言识别工具

daicy daicy 发布于 2019-04-17

基于 JUnit 的全局单元测试程序

简介: 在 Java 程序中,JUnit 是备受开发人员喜爱的单元测试工具。通常,程序员会对每个程序的每个模块写单元测试。对于小型程序来说,程序员只需要手工执行这些单元测试程序就可以,工作量并不大,但是对于中大型程序来说,可能拥有非常多的程序模块,而每个程序模块内又含有众多

daicy daicy 发布于 2019-04-17

程序员:如何写出杀手级简历

这几年,我在Google工作,是一名软件工程师(之前是在微软做一个开发团队的队长),我曾浏览过成百上千的简历,从中挑选出可以进行下一步面试过程的 应聘者。 有些人的简历给我留下了很深的印象,而另一些则没有感觉。   慢慢的,有越来越多的朋友和亲

daicy daicy 发布于 2019-04-17

Spring AOP实现原理与CGLIB应用

AOP(Aspect Orient Programming),也就是面向方面编程,作为面向对象编程的一种补充,专门用于处理系统中分布于各个模块(不同方法)中的交叉关注点的问题,在 Java EE 应用中,常常通过 AOP 来处理一些具有横切性质的系统级服务,如事务管理、安全检查、缓存、对象池管理等。AOP 实现的关键就在于 AOP 框架自动创建的 AOP 代理,AOP 代理主要分为静态代理和动态代

daicy daicy 发布于 2019-04-17

HashMap vs ConcurrentHashMap — 示例及Iterator探秘

如果你是一名Java开发人员,我能够确定你肯定知道ConcurrentModificationException,它是在使用迭代器遍历集合对象时修改集合对象造成的(并发修改)异常。实际上,Java的集合框架是[迭代器设计模式](http://www.journaldev.com/1716/iterator-design-pattern-in-java-example-tutorial)的一个很好的实现。

daicy daicy 发布于 2019-04-17

NC(netcat)使用指南

第一次知道nc(netcat)是好几年前的事了,那个时候天比现在更蓝,草比现在更绿,卤煮也还是一个刚上大学不久的青葱骚年... 现在把这个01年的老古董拿出来说好像有点炒冷饭的意思,资料也铺天盖地了说多了还惹人嫌。         不过没办法啊,毕竟当卤煮逐渐发现它有许多颇有内涵的功能的时候,连小伙伴都让它给惊呆了 :D ...

daicy daicy 发布于 2019-04-17

如何编写一个高效的Java表达式求值程序

当然,这个标题是有一点夺人眼球,但我确实这么做了(关于是否相信基准测试结果,这是另一个话题)。 所以,上周我一直在找一个小型、实用的计算数学表达式的类库。偶然间我在stackoverflow上看到了一个帖子,里面推荐的库(Expr)确实是很快而且基本拥有我需要的所有特性。但不幸的是,它不支持提供限制变量范围(在虚拟机里面,所有变量都位于一个全局命名空间)。 所以,我做了一件正常人不会做

daicy daicy 发布于 2019-04-17

Java编程:常见问题汇总

该页面收集了一些不好的代码,对于初学者来说看起来似乎并不那么糟糕。初学者经常在语言语法上挣扎。他们对标准JDK类库以及如何最好地利用它也不了解。实际上,我已经从日常初级代码中收集了所有示例。我已经修改了原始代码,为它提供了示例字符,从而突出了问题所在。SonarQube可以很容易地发现许多这些问题。我强烈推荐此工具。

daicy daicy 发布于 2019-04-17

Java正则表达式教程及示例

当我开始我的Java职业生涯的时候,对于我来说正则表达式简直是个是梦魇。本教程旨在帮助你驾驭Java正则表达式,同时也帮助我复习正则表达式

daicy daicy 发布于 2019-04-17

happens-before俗解

学习Java并发,到后面总会接触到happens-before偏序关系。初接触玩意儿简直就是不知所云,下面是经过一段时间折腾后个人对此的一点浅薄理解,希望对初接触的人有帮助。如有不正确之处,欢迎指正。 synchronized、大部分锁,众所周知的一个功能就是使多个线程互斥/串行的(共享锁允许多个线程同时访问,如读锁)访问临界区,但他们的第二个功能 —— 保证变量的可见性 —— 常被遗忘。

daicy daicy 发布于 2019-04-17

单例模式中为什么用枚举更好

枚举单例(Enum Singleton)是实现单例模式的一种新方式,尽管单例模式在java中已经存在很长时间了,但是枚举单例相对来说是一种比较新的概念,枚举这个特性是在Java5才出现的,这篇文章主要讲解关于为什么我们应该使用枚举来实现单例模式,它与传统方式实现的单例模式

daicy daicy 发布于 2019-04-17

在创业型软件公司的收获

我在两家创业公司工作过。A公司,由3人发展到20人;B公司,由20人发展到60人。这两家公司都不算成功,因此,要讲收获,更多的是经验与教训。就如同教材一样,反面教材更加有教育意义。我针对创业公司面临的重要问题,谈谈我的想法。 灵活性 相对于大公司,小公司的灵活性是核心竞争优势。小公司的灵活性,是指小公司船小好调头,能够快速地响应用户。我在B公司时,公司刚好处于创业扩张期(20→60人)

daicy daicy 发布于 2019-04-17

UML类图与类的关系详解

在画类图的时候,理清类和类之间的关系是重点。类的关系有泛化(Generalization)、实现(Realization)、依赖(Dependency)和关联(Association)。其中关联又分为一般关联关系和聚合关系(Aggregation),合成关系(Composition)。下面我们结合实例理解这些关系。 基本概念 类图(Class Diagram): 类图是面向对象系统建模中最常用

daicy daicy 发布于 2019-04-17

现代浏览器的工作原理

简介 浏览器可以被认为是使用最广泛的软件,本文将介绍浏览器的工 作原理,我们将看到,从你在地址栏输入google.com到你看到google主页过程中都发生了什么。 将讨论的浏览器 今天,有五种主流浏览器——IE、Firefox、Safari、Chrome及Opera。 本文将基于一些开源浏览器的例子——Firefox、 Chrome及Safari,Safari是部分开源的。 根据W3C

daicy daicy 发布于 2019-04-17

技术普及帖:你刚才在淘宝上买了一件东西

你发现快要过年了,于是想给你的女朋友买一件毛衣,你打开了www.taobao.com。这时你的浏览器首先查询DNS服务器,将www.taobao.com转换成ip地址。不过首先你会发现,你在不同的地区或者不同的网络(电信、联通、移动)的情况下,转换后的IP地址很可能是 不一样的,这首先涉及到负载均

daicy daicy 发布于 2019-04-17