- 博客(49)
- 资源 (97)
- 收藏
- 关注
原创 Java 动态生成复杂 Word
阅读目录1. 制作 Word 模版2. 将 Word文档保存为 xml 3. freemarker 标签语言替换字段4. 引入项目 项目中需要用 java 程序生成doc 文件,百度一番,发现FreeMarker 的评价比较高。 FreeMarker是一个用Java语言编写的模板引擎,它基于模板来生成文本输出,至于想详细了解 FreeMark
2017-12-11 09:51:00 2526
原创 Java泛型简明教程
摘要:关于Java泛型的教程,几乎所有的Java程序员不仅听说过,而且使用过它。本文介绍了Java的泛型教程供大家学习、参考。导读:本文是从《Java Generics Quick Tutorial》这篇文章翻译而来,译文来自外刊IT评论《Java泛型简明教程》。内容如下:泛型是Java SE 5.0中引入的一项特征,自从这项语言特征出现多年来,我相信,几乎所有的Java程序员
2012-12-27 10:32:21 1099
原创 浅谈java中的四个核心概念
摘要:Java已经成为一个庞大而复杂的技术平台,对于开发人员而言,要想更好的掌握Java技术,深入理解底层的技术处理细节必不可少。Java已经成为一个庞大而复杂的技术平台,对于开发人员而言,要想更好的掌握Java技术,深入理解底层的技术处理细节必不可少。现在介绍下java的四个核心概念:1.Java虚拟机Java虚拟机的主要任务是装在class文件并且执行其中的字节码。
2012-12-27 10:31:21 787
原创 在Java 7里如何对文件进行操作
摘要:文中的代码片段是由经过验证的程序修改而来。观察这些代码片段你会发现,跟以前的版本相比,在Java7里,文件相关的操作变得简单的多了导读:本文是从《Manipulating Files in Java 7》这篇文章翻译而来。 文章内容如下:下面的代码片段是由经过验证的程序修改而来。观察这些代码片段你会发现,跟以前的版本相比,在Java7里,文件相关的操作变得简单的多了。通过
2012-12-27 10:29:56 933
原创 Java堆内存的10个要点
摘要:对大多数程序员都经历过这样的过程,因为学习一种语言是非常容易来的,但是学习基础是非常难的,因为没有什么特定的流程让你学习编程的每个基础,使你发觉编程的秘诀。导读:对于程序员来说,知道堆空间,设置堆空间,处理堆空间的outOfMemoryError错误,分析heap dump是非常重要的。文中介绍了Java堆的学习教程以及Java堆内存(heap memory)的十个要点。
2012-12-27 10:28:44 995
原创 Java程序员应该了解的10个面向对象设计原则
摘要:Java编程最基本的原则就是要追求高内聚和低耦合的解决方案和代码模块设计。查看Apache和Sun的开放源代码能帮助你发现其他Java设计原则在这些代码中的实际运用。面向对象设计原则是OOPS(Object-Oriented Programming System,面向对象的程序设计系统)编程的核心,但大多数Java程序员追逐像Singleton、Decorator、Observe
2012-12-27 10:27:30 639
原创 浅谈Java中的几种随机数
摘要:众所周知,随机数是任何一种编程语言最基本的特征之一。而生成随机数的基本方式也是相同的:产生一个0到1之间的随机数。看似简单,但有时我们也会忽略了一些有趣的功能。众所周知,随机数是任何一种编程语言最基本的特征之一。而生成随机数的基本方式也是相同的:产生一个0到1之间的随机数。看似简单,但有时我们也会忽略了一些有趣的功能。我们从书本上学到什么?最明显的,也是直观的方式
2012-12-27 10:26:36 885
原创 Java 8的重要新特性以及未来版本的发展规划
摘要:我们一直在期待着Java 8的新功能,虽然很大一部分是对Java 7的扩展,发布时间也一推再推。但如今甲骨文终于承诺:新版本将是彻底的变革而不仅仅是Java 7的扩展。那Java 8到底是什么样的呢?我们一直在期待着Java 8的新功能,虽然很大一部分是对Java 7的扩展,发布时间也一推再推。但如今甲骨文终于承诺:新版本将是彻底的变革而不仅仅是Java 7的扩展。那Java 8
2012-12-27 10:25:56 748
原创 Java程序员面试中的多线程问题
摘要:很多核心Java面试题来源于多线程(Multi-Threading)和集合框架(Collections Framework),理解核心线程概念时,娴熟的实际经验是必需的。这篇文章收集了 Java 线程方面一些典型的问题,这些问题经常被高级工程师所问到。很多核心Java面试题来源于多线程(Multi-Threading)和集合框架(Collections Framework),理解
2012-12-27 10:24:15 907
转载 影响Java EE性能的十大问题
摘要:本文总结了影响Java EE性能的十大问题 1)缺乏正确的容量规划;2)中间件环境规范不足;3)虚拟机垃圾回收过度;4)与外部系统集成过多或过少;5)缺乏适当的数据库SQL调优和容量规划;6)特定应用程序性能问题;7)中间件调优问题;8)主动监控不足;9)公共基础设施硬件饱和;10)网络延迟。本文作者是一名有10多年经验的高级系统架构师,他的主要专业领域是Java EE、中间件和
2012-12-27 10:22:23 981
转载 少编码多思考:代码越多 问题越多
摘要:本文作者Ed Finkler是一名PHP、Python、JavaScript程序员。有许多产品开发经验,例如Spaz,一个开源微博客户端桌面和WebOS。他在编码时总结了一些非常益用的编码守则,分享给大家。大约一年前,我曾编写过一些PHP Web编程守则——MicroPHP Manifesto。但我发现各个语言之间有一些共同的编程/编码规则,这或许是我在熟悉各种类型的编程语言后的
2012-12-20 09:29:44 618
转载 从头到尾彻底解析Hash表算法
从头到尾彻底解析Hash 表算法作者:July、wuliming、pkuoliver 出处:http://blog.csdn.net/v_JULY_v。 说明:本文分为三部分内容, 第一部分为一道百度面试题Top K算法的详解;第二部分为关于Hash表算法的详细阐述;第三部分为打造一个最快的Hash表算法。---------------------------
2012-12-11 10:47:56 1096
原创 教你如何迅速秒杀掉:99%的海量数据处理面试题
前言 一般而言,标题含有“秒杀”,“99%”,“史上最全/最强”等词汇的往往都脱不了哗众取宠之嫌,但进一步来讲,如果读者读罢此文,却无任何收获,那么,我也甘愿背负这样的罪名,:-),同时,此文可以看做是对这篇文章:十道海量数据处理面试题与十个方法大总结的一般抽象性总结。 毕竟受文章和理论之限,本文将摒弃绝大部分的细节,只谈方法/模式论,且注重用最通俗最直白的语言阐述相关问
2012-12-11 09:32:41 1384
原创 Web Service学习笔记(webservice、soap、wsdl、jws详细分析)
Web Service概述 Web Service的定义 W3C组织对其的定义如下,它是一个软件系统,为了支持跨网络的机器间相互操作交互而设计。Web Service服务通常被定义为一组模块化的API,它们可以通过网络进行调用,来执行远程系统的请求服务。 这里我们从一个程序员的视角来观察web service。在传统的程序编码中,存在这各种的函数方法调用。通常,我们知道一个程序
2012-12-10 15:40:59 4747
原创 Java多线程(七)之同步器基础:AQS框架深入分析
一、什么是同步器多线程并发的执行,之间通过某种 共享 状态来同步,只有当状态满足 xxxx 条件,才能触发线程执行 xxxx 。这个共同的语义可以称之为同步器。可以认为以上所有的锁机制都可以基于同步器定制来实现的。而juc(java.util.concurrent)里的思想是 将这些场景抽象出来的语义通过统一的同步框架来支持。
2012-12-10 15:39:41 2852
原创 Java多线程(六)之Deque与LinkedBlockingDeque深入分析
一、双向队列DequeQueue除了前面介绍的实现外,还有一种双向的Queue实现Deque。这种队列允许在队列头和尾部进行入队出队操作,因此在功能上比Queue显然要更复杂。下图描述的是Deque的完整体系图。需要说明的是LinkedList也已经加入了Deque的一部分(LinkedList是从jdk1.2 开始就存在数据结构)。 Deque
2012-12-10 15:39:00 9625
原创 Java多线程(五)之BlockingQueue深入分析
一、概述:BlockingQueue作为线程容器,可以为线程同步提供有力的保障。二、BlockingQueue定义的常用方法1.BlockingQueue定义的常用方法如下: 抛出异常特殊值阻塞超时插入add(e)offer(e)put(e)offer(e, time, unit)移除r
2012-12-10 15:37:23 2738
原创 Java多线程(四)之ConcurrentSkipListMap深入分析
一、前言 concurrentHashMap与ConcurrentSkipListMap性能测试在4线程1.6万数据的条件下,ConcurrentHashMap 存取速度是ConcurrentSkipListMap 的4倍左右。但ConcurrentSkipListMap有几个ConcurrentHashMap 不能比拟的优点:1、ConcurrentSkipLis
2012-12-10 15:36:31 25165 2
原创 Java多线程(三)之ConcurrentHashMap深入分析
一、Map体系Hashtable是JDK 5之前Map唯一线程安全的内置实现(Collections.synchronizedMap不算)。Hashtable继承的是Dictionary(Hashtable是其唯一公开的子类),并不继承AbstractMap或者HashMap。尽管Hashtable和HashMap的结构非常类似,但是他们之间并没有多大联系。Concurre
2012-12-10 15:35:53 2999 3
原创 Java多线程(二)之Atomic:原子变量与原子类
一、何谓Atomic? Atomic一词跟原子有点关系,后者曾被人认为是最小物质的单位。计算机中的Atomic是指不能分割成若干部分的意思。如果一段代码被认为是Atomic,则表示这段代码在执行过程中,是不能被中断的。通常来说,原子指令由硬件提供,供软件来实现原子方法(某个线程进入该方法后,就不会被中断,直到其执行完成) 在x86 平台上,CPU提供了在指令执
2012-12-10 15:34:36 1362
原创 Java多线程(一)之volatile深入分析
volatile 变量提供了线程的可见性,并不能保证线程安全性和原子性。什么是线程的可见性:锁提供了两种主要特性:互斥(mutual exclusion) 和可见性(visibility)。互斥即一次只允许一个线程持有某个特定的锁,因此可使用该特性实现对共享数据的协调访问协议,这样,一次就只有一个线程能够使用该共享数据。可见性要更加复杂一些,它必须确保释放锁之前
2012-12-10 15:33:44 1501
转载 Java 多线程同步问题的探究(三、Lock来了,大家都让开【1. 认识重入锁】)
我们已经了解了Java多线程编程中常用的关键字synchronized,以及与之相关的对象锁机制。这一节中,让我们一起来认识JDK 5中新引入的并发框架中的锁机制。我想很多购买了《Java程序员面试宝典》之类图书的朋友一定对下面这个面试题感到非常熟悉:问:请对比synchronized与java.util.concurrent.locks.Lock 的异同。答案:主要相
2012-12-10 15:32:05 958
转载 如何编写出优美的JavaScript代码?
如何编写出优美的JavaScript代码?摘要:爱美之心,人皆有之。即使是一段普通的代码,在保持思维清晰、功能友好的前提下怎样编写才能结构清晰、整洁美观呢?在多年以前,人们注重功能是如何实现的。现如今,随着Web及互联网技术的不断发展,功能仅成了最基本的要求,如何写出漂亮,整洁的代码已成为一个大牛级程序员不可或缺的条件。一位前端开发工程师便在知乎上提问:“我
2012-12-07 14:48:09 1051
转载 从菜鸟到专家的五步编程语言学习法
从菜鸟到专家的五步编程语言学习法编程语言Java摘要:Mark Lassoff是一位高级技术培训师,从事培训工作已有10余年。他培训的客户包括美国国防部、Lockheed Martin等。在多年的培训生涯中,他总结了一些如何快速学习一门语言的技巧,这些技巧非常简单,但是却让人受益匪浅。我已经从事10年的技术培训工作,一直教人如何编程。这些人包括学生、已经走上工作
2012-12-07 14:43:30 845
转载 Java[从菜鸟到高手演变]之设计模式
设计模式(Design Patterns) ——可复用面向对象软件的基础设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化
2012-12-04 17:13:44 891
原创 Excel-VBA教程完全版
目 录 ...................................................................................................................1 一、VBA语言基
2012-11-20 14:15:29 17270
原创 堆和栈的区别
一、预备知识―程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)― 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) ― 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态
2012-11-20 09:48:28 1012
原创 Java命名规范
定义规范的目的是为了使项目的代码样式统一,使程序有良好的可读性。包的命名 (全部小写,由域名定义)Java包的名字都是由小写单词组成。但是由于Java面向对象编程的特性,每一名Java程序员都 可以编写属于自己的Java包,为了保障每个Java包命名的唯一性,在最新的Java编程规范中,要求程序员在自己定义的包的名称之前加上唯一的前缀。 由于互联网上的域名称是不会重复的,所以程序员一般采
2012-11-19 16:37:11 799
原创 Java程序的编码规范
摘要:所有的程序开发手册都包含了各种规则。一些习惯自由程序人员可能对这些规则很不适应,但是在多个开发人员共同写作的情况下,这些规则是必需的。这不仅仅是为了开发效率来考虑所有的程序开发手册都包含了各种规则。一些习惯自由程序人员可能对这些规则很不适应,但是在多个开发人员共同写作的情况下,这些规则是必需的。这不仅仅是为了开发效率来考虑,而且也是为了后期维护考虑。一、命名规范定义这个规范的
2012-11-19 16:12:16 638
原创 做一个有想法的程序员才能成为项目经理
摘要:许多程序员认为其工作任务只是负责后台逻辑的程序开发,对界面的布局莫不关心。实际上评价一个程序员的优秀与否,是要从界面和业务逻辑两方面来衡量的。杂乱无章的界面布局,许多程序员认为其工作任务只是负责后台逻辑的程序开发,对界面的布局莫不关心。实际上评价一个程序员的优秀与否,是要从界面和业务逻辑两方面来衡量的。杂乱无章的界面布局,只会给人留下“三流程序员”的印象。小张在下文中通过一个小项目为
2012-11-19 16:05:46 1192
原创 java 移位操作
移位运算符就是在二进制的基础上对数字进行平移。按照平移的方向和填充数字的规则分为三种:>(带符号右移)和>>>(无符号右移)。 在移位运算时,byte、short和char类型移位后的结果会变成int类型,对于byte、short、char和int进行移位时,规定实际移动的次数是移动次数和32的余数,也就是移位33次和移位1次得到的结果相同。移动long型的数值时,规定实际移动的次数是移动次
2012-11-19 15:42:50 1681
原创 Java深度理解——Java字节代码的操纵
摘要:导读: Java作为业界应用最为广泛的语言之一,深得众多软件厂商和开发者的推崇,更是被包括Oracle在内的众多JCP成员积极地推动发展。但是对于 Java语言的深度理解和运用,毕竟是很少会有人导读:Java作为业界应用最为广泛的语言之一,深得众多软件厂商和开发者的推崇,更是被包括Oracle在内的众多JCP成员积极地推动发展。但是对于 Java语言的深度理解和运用,毕竟是很少会有人
2012-11-19 15:28:58 650
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人