
java
Star先生
技术为本,行业为先!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
减少GC的5个编程技巧
垃圾收集器(GC)在分配内存以及释放内存上面,占用更少的CPU时间,减少GC的开销。原创 2015-04-13 16:47:01 · 2048 阅读 · 0 评论 -
Java网络爬虫
实际的爬虫是从一系列的种子链接开始。种子链接是起始节点,种子页面的超链接指向的页面是子节点(中间节点),对于非html文档,如excel等,不能从中提取超链接,看做图的终端节点 网络爬虫的基本知识网络爬虫通过遍历互联网络,把网络中的相关网页全部抓取过来,这体现了爬的概念。爬虫如何遍历网络呢,互联网可以看做是一张大图,每个页面看做其中的一个节点,页面的连接看做是有向边。图的遍历方式分为宽度遍历和深度原创 2015-08-06 17:18:23 · 1358 阅读 · 0 评论 -
Java性能优化(13):支持非可变性
一个非可变类是一个简单的类,它的实例不能被修改。每个实例中包含的所有信息都必须在该实例被创建的时候就提出来,并且在对象的整个生存期内固定不变。Java平台库包含许多非可变类,其中有String、原语类型的包装—BigInteger和BigDecimal。非可变类的存在有许多理由:非可变类比可变类更加易于设计、实现和使用。它们不容易出错,更加安全。原创 2015-09-09 17:07:32 · 1196 阅读 · 0 评论 -
Java异步事件:轮询与中断
CPU几乎把所有的时间都花费在从内存获取指令并运行它们的过程中。然而,CPU和主存仅仅只是计算机硬件系统中众多组件的其中两个。一个完整的系统还包含其他的设备,比如:硬盘或者固态硬盘,用来存储程序和数据文件的。(注意,主存仅保存少量的信息,并且只有在计算机接通电源的时候才能保存信息。硬盘或者固态硬盘用来永久存储大量的信息。但是在程序真正运行前,程序必须把硬盘或者固态硬盘里的数据加载到主存中。硬盘把数据原创 2015-09-19 20:06:44 · 4040 阅读 · 0 评论 -
Java线程池源码解析及高质量代码案例
ThreadPoolExecutor是一个 ExecutorService,它使用可能的几个池线程之一执行每个提交的任务,通常使用 Executors 工厂方法配置。线程池可以解决两个不同问题:由于减少了每个任务调用的开销,它们通常可以在执行大量异步任务时提供增强的性能,并且还可以提供绑定和管理资源(包括执行任务集时使用的线程)的方法。每个 ThreadPoolExecutor 还维护着一些基本的统原创 2015-11-09 14:46:00 · 6902 阅读 · 1 评论 -
JAVA EE 7 SDK Tutorial分析
随着Java平台企业版(Java EE),Java企业应用程序的开发从未如此简单或更快。在Java EE 7平台的目的是向开发人员提供了一套强大的API,同时缩短开发时间,降低了应用的复杂性,并提高应用程序的性能。在Java EE 7平台引入了一个简化的编程模型。随着Java EE 7的技术,XML部署描述符现在是可选的。相反,开发人员可以简单地输入信息作为注释直接到Java源文件,以及Java E原创 2016-01-02 13:59:32 · 4204 阅读 · 3 评论 -
Java实现高斯模糊算法处理图像
高斯模糊(英语:Gaussian Blur),也叫高斯平滑,是在Adobe Photoshop、GIMP以及Paint.NET等图像处理软件中广泛使用的处理效果,通常用它来减少图像噪声以及降低细节层次。 简介高斯模糊(Gaussian Blur)是美国Adobe图像软件公司开发的一个图像处理软件:Adobe Photoshop(系列)中的一个滤镜,具体的位置在:滤镜—模糊——高斯模糊!高斯模糊的原原创 2015-12-21 21:53:11 · 13746 阅读 · 15 评论 -
Android功能代码
Android功能代码原创 2015-07-23 15:29:01 · 1295 阅读 · 0 评论 -
基于OAtuth2的新浪微博Java爬虫
OAUTH协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是OAUTH的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此OAUTH是安全的。oAuth是Open Authorization的简写。 其实多数尝试动手写新浪微博爬虫的童鞋都知道,新浪微博虽然为用户提供了API调用的接口。原创 2015-09-07 10:54:41 · 11516 阅读 · 2 评论 -
Java性能优化(12):最小化类和成员可访问能力
类和接口是Java程序设计语言的核心,它们也是Java语言的基本抽象单元。Java语言提供了许多强大的基本元素,供程序猿来设计类和接口。 要想区别一个设计良好的模块与一个设计不好的模块,最重要的因素是,这个模块对于外部其他模块而言,是否隐藏了内部的数据和其他的实现细节。一个设计良好的模块会隐藏所有的实现细节,把它的API与实现清晰的隔离开来。然后,模块之间只通过它们的API进行通信,一个模块不原创 2015-09-08 12:52:52 · 1402 阅读 · 0 评论 -
Java处理大文件
最近要处理一套存储历史实时数据的大文件fx market data,使用传统的InputStream不能够将它们读取到内存,因为每一个文件都超过了4G。甚至编辑器都不能够打开这些文件。 处理这个问题的方式通常就是使用内存映射文件递增地处理区域的数据。关于内存映射文件的一个好处就是它们不会使用虚拟内存和换页空间,因为它们是从磁盘上的文件返回来的数据。 这些文件和额原创 2015-04-26 14:44:25 · 1629 阅读 · 0 评论 -
深入JVM
Java 程序运行在 JVM 之上, JVM 的运行状况对于 Java 程序而言会产生很大的影响, 因此掌握 JVM 中的关键机制对于编写稳定、 高性能的 JAVA 程序至关重要。 JVM 制定了 Java 类的加载、 编译、 执行、 对象内存的分配和回收、 线程以及锁机制,这些机制对 Java 程序的运行效果起到了重要的影响, 当然, JVM 涉及的不仅仅是上面这些机制, 但在本章节中并不打算介原创 2015-07-27 13:45:52 · 2592 阅读 · 1 评论 -
Java字符串操作、基本运算方法等优化策略
字符串操作优化字符串对象字符串对象或者其等价对象 (如 char 数组),在内存中总是占据最大的空间块,因此如何高效地处理字符串,是提高系统整体性能的关键。String 对象可以认为是 char 数组的延伸和进一步封装,它主要由 3 部分组成:char 数组、偏移量和 String 的长度。char 数组表示 String 的内容,它是 String 对象所表示字符串的超集。String 的真实内容原创 2015-08-22 20:37:04 · 1729 阅读 · 0 评论 -
三层架构与MVC区别
我们平时总是将混为一谈,殊不知它俩并不是一个概念。下面我来为大家揭晓我所知道的一些真相。首先,它俩根本不是一个概念。原创 2015-07-25 10:03:49 · 1362 阅读 · 0 评论 -
10个微妙的Java编码最佳实践
编写和维护jOOQ(Java中内部DSL建模的SQL)时遇到过这些。作为一个内部DSL,jOOQ最大限度的挑战了Java的编译器和泛型,把泛型,可变参数和重载结合在一起,Josh Bloch可能不会推荐的这种太宽泛的API。 10个微妙的Java编码最佳实践: 1. 牢记C++的析构函数 记得C++的析构函数?不记得了?那么你真的很幸运,因为你原创 2015-04-10 20:46:41 · 1437 阅读 · 0 评论 -
深入JDK
JDK 是 Java 规范的实现, Java 程序在运行期间除了 JVM 的因素外, JDK 也是另外一个重要的影响因素, Java 规范中定义了众多的接口 规范, 但实现则取决于各个 Java 规范实现的厂商, 例如 Sun、 IBM、 Bea, 其在实现 Java 规范时采用的方法并不一定相同, 在编写 Java 程序时, 由于 Java 提供了众多看似功能一样的类, 如何选择合适的类来实现需原创 2015-07-29 15:04:30 · 1464 阅读 · 0 评论 -
Java性能优化
随着系统数据量的不断增长, 访问量的不断提升, 系统的响应通常会越来越慢, 又或是编写的新的应用在性能上无法满足需求, 这个时候需要对系统的性能进行调优, 调优过程是构建高性能应用的必备过程, 也是一个相当复杂的过程, 而且涉及到了很多的方面, 硬件、操作系统、 运行环境软件以及应用本身, 要实现调优, 首先需要做的是找到性能低的根本原因, 然后才是针对性的进行调优原创 2015-07-30 09:36:04 · 1565 阅读 · 0 评论 -
大型分布式 Java 应用
当应用从集中式步入分布式, 随着系统功能的越来越丰富, 应用就逐步从一个由 10 个系统以下构成的应用逐步发展为 100 个, 甚至 1000 个系统构成的应用, 随着系统越来越多,如何管理和运维好一个如此庞大的系统就将成为一个大问题, 这其中包括了开发、 调试、 测试、 部署、 升级等众多的过程, 同时, 高可用性以及高性能也会一直伴随着这个发展过程,随着系统的越来越多, 数据的不断增加, 访问量原创 2015-07-30 13:12:55 · 1826 阅读 · 0 评论 -
Android动画
Android动画原创 2015-07-23 17:46:43 · 1132 阅读 · 0 评论 -
写Java须知CPU缓存
CPU,一般认为写C/C++的才需要了解,写高级语言的(Java/C#/pathon…)并不需要了解那么底层的东西。我一开始也是这么想的,但直到碰到LMAX的Disruptor,以及马丁的博文,才发现写Java的,更加不能忽视CPU。经过一段时间的阅读,希望总结一下自己的阅读后的感悟。本文主要谈谈CPU缓存对Java编程的影响,不涉及具体CPU缓存的机制和实现。现代CPU的缓存结构一般分三层,L1,原创 2015-08-04 20:29:43 · 1172 阅读 · 0 评论