Welcome 微信登录

首页 / 软件开发 / JAVA

实现Java中的高性能解析器

实现Java中的高性能解析器

实现Java中的高性能解析器2014-05-29 infoq/Jakob Jenkov 译:邵思华在某些情况下,你可能需要在Java中实现你自己的数据或语言解析器,也许是这种数据格式或语言缺乏标准的Java或开源解析器可以使用。或者虽然有现成的解析器实现,但它们要么太慢,要么太占内存,要么就是没有符合你所需要的特性。又或者是某个开源的解析器存在缺陷,要么是某个开源解析器的项目中止了,原因不一而足。不过无论原因是什么,总之事实就是你必须要自己去实现这个解析器...
eclipse debug多线程概述

eclipse debug多线程概述

eclipse debug多线程概述2014-05-29以前用到过许多线程开发,对多线程开发也算是小有点心得,但一开始多线程开发的时候,碰到很多 壁。但总得来说,有个好的工具总是能事半功倍。我用的工具是eclipse,在开发多线程时,其debug模式 是能直接模拟多线程环境的,网上也有许多资料,但大多都不是很全。希望我能够将自己的一些心得记录 下来,希望能帮助到还为多线程开发而纠结的朋友。先写个简单的多线程测试用例:package com.wxw.debu...
Eclipse快捷键大全

Eclipse快捷键大全

Eclipse快捷键大全2014-05-29Eclipse的编辑功能非常强大,掌握了Eclipse快捷键功能,能够大大提高开发效率。Eclipse中有如下一些和编辑相关的快捷键。1.【ALT+/】此快捷键为用户编辑的好帮手,能为用户提供内容的辅助,不要为记不全方法和属性名称犯愁,当记不全类、方法和属性的名字时,多体验一下【ALT+/】快捷键带来的好处吧。2.【Ctrl+O】显示类中方法和属性的大纲,能快速定位类的方法和属性,在查找Bug时非常有用。3.【C...
Java IO流基础

Java IO流基础

Java IO流基础2014-05-29输入输出流想必大家已经用的非常熟练了,但是,我们往往忽略了身边最熟悉的一些东西,又或者我 们只知道要这样做,却不知道为什么这么做,所以在这里跟大家分享一下在网络编程当中看到的一些关于 I/O流的细节,闲话不多说,下面开始:OutputStream,顾名思义:输出流,它的子类使用所提供的方法向某种媒体写入数据,例如, FileOutputStream将数据写入文件,TelnetOutputStream将数据写入网络连接...
使用Spring Boot构建RESTful Web服务以访问存储于Aerospike集群

使用Spring Boot构建RESTful Web服务以访问存储于Aerospike集群

使用Spring Boot构建RESTful Web服务以访问存储于Aerospike集群2014-05-29 infoq/Peter Milne 译:张卫滨Spring Boot是对Spring快速入门的强大工具。Spring Boot能够帮助你很容易地构建基于Spring的应 用。 Aerospike是分布式和可复制的内存数据库,不管使用DRAM还是原生的flash/SSD,Aerospike都进行 了优化。 Aerospike具有高可靠性并且遵循AC...
深入探索Java热部署

深入探索Java热部署

深入探索Java热部署2014-05-29 IBM 丁 志君简介在 Java 开发领域,热部署一直是一个难以解决的问题,目前的 Java 虚拟机只能实现 方法体的修改热部署,对于整个类的结构修改,仍然需要重启虚拟机,对类重新加载才能完成更新操作。 对于某些大型的应用来说,每次的重启都需要花费大量的时间成本。虽然 osgi 架构的出现,让模块重启 成为可能,但是如果模块之间有调用关系的话,这样的操作依然会让应用出现短暂的功能性休克。本文将 探索如何在不破坏 ...
Java异常处理机制

Java异常处理机制

Java异常处理机制2014-05-29 iteye cq520异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的。比如说,你用System.out.println(5/0),那么你是因为你用0做了除数,会抛出java.lang.ArithmeticException的异常。 有些异常需要做处理,有些则不需要捕获处理,在下面会详细讲到。天有不测之风云,人有旦夕祸福,Java的程序代码也如此。在编程过程中,首先应当尽可能去避免错误...
tomcat部署web项目的常用方式

tomcat部署web项目的常用方式

tomcat部署web项目的常用方式2014-05-29例:项目名称--SpringMVC,物理路径--D:STUDYWorkspacesSpringMVC,目标URL访问形式--http://localhost:8080/smvc/...;注:以下部署方式均建立在tomcat默认配置情况下,如果有自定义设置,需要做出相应调整。方式一:将项目拷贝到webapps目录下;(myeclipse部署所用的方式)操作:在webapps下新建名为smvc的文件夹,将...
深入理解Java内存模型(一) 基础

深入理解Java内存模型(一) 基础

深入理解Java内存模型(一) 基础2014-05-31 infoq 程晓明并发编程模型的分类在并发编程中,我们需要处理两个关键问题:线程之间如何通信及线程之 间如何同步(这里的线程是指并发执行的活动实体)。通信是指线程之间以何种机制来交换信息。在命令 式编程中,线程之间的通信机制有两种:共享内存和消息传递。在共享内存的并发模型里,线程 之间共享程序的公共状态,线程之间通过写-读内存中的公共状态来隐式进行通信。在消息传递的并发模 型里,线程之间没有公共状态...
深入理解Java内存模型(二) 重排序

深入理解Java内存模型(二) 重排序

深入理解Java内存模型(二) 重排序2014-05-31 infoq 程晓明如果两个操作访问同一个变量,且这两个操作中有一个为写操作,此时这两个操作之间就存在数据依 赖性。数据依赖分下列三种类型:上 面三种情况,只要重排序两个操作的执行顺序,程序的执行结果将会被改变。前面提到过,编译 器和处理器可能会对操作做重排序。编译器和处理器在重排序时,会遵守数据依赖性,编译器和处理器不 会改变存在数据依赖关系的两个操作的执行顺序。注意,这里所说的数据依赖性仅针对单...
深入理解Java内存模型(三) 顺序一致性

深入理解Java内存模型(三) 顺序一致性

深入理解Java内存模型(三) 顺序一致性2014-05-31 infoq 程晓明数据竞争与顺序一致性保证当程序未正确同步时,就会存在数据竞争。java内存模型规范对数 据竞争的定义如下:在一个线程中写一个变量,在另一个线程读同一个变量,而且写和读没有通过同步来排序。当代码中包含数据竞争时,程序的执行往往产生违反直觉的结果(前一章的示例正是如此)。如果一 个多线程程序能正确同步,这个程序将是一个没有数据竞争的程序。JMM对正确同步的多线程程序 的内存一致性...
深入理解Java内存模型(四) volatile

深入理解Java内存模型(四) volatile

深入理解Java内存模型(四) volatile2014-05-31 infoq 程晓明volatile的特性当我们声明共享变量为volatile后,对这个变量的读/写将会很特别。理解 volatile特性的一个好方法是:把对volatile变量的单个读/写,看成是使用同一个监视器锁对这些单个 读/写操作做了同步。下面我们通过具体的示例来说明,请看下面的示例代码:class VolatileFeaturesExample {volatile long vl...
深入理解Java内存模型(六) final

深入理解Java内存模型(六) final

深入理解Java内存模型(六) final2014-05-31 infoq 程晓明与前面介绍的锁和volatile相比较,对final域的读和写更像是普通的变量访问。对于final域,编译 器和处理器要遵守两个重排序规则:在构造函数内对一个final域的写入,与随后把这个被构造对象的引用赋值给一个引用变量,这两个操 作之间不能重排序。初次读一个包含final域的对象的引用,与随后初次读这个final域,这两个操作之间不能重排序。下面,我们通过一些示例性的代...
深入理解Java内存模型(七) 总结

深入理解Java内存模型(七) 总结

深入理解Java内存模型(七) 总结2014-05-31 infoq 程晓明处理器内存模型顺序一致性内存模型是一个理论参考模型,JMM和处理器内存模型在设计时通 常会把顺序一致性内存模型作为参照。JMM和处理器内存模型在设计时会对顺序一致性模型做一些放松, 因为如果完全按照顺序一致性模型来实现处理器和JMM,那么很多的处理器和编译器优化都要被禁止,这 对执行性能将会有很大的影响。根据对不同类型读/写操作组合的执行顺序的放松,可以把常见处 理器的内存模型划分...
Hibernate映射文件打成jar,JUnit测试无法正确执行的问题分析

Hibernate映射文件打成jar,JUnit测试无法正确执行的问题分析

Hibernate映射文件打成jar,JUnit测试无法正确执行的问题分析2014-05-31 csdn博客 wangjunjun2008之前将Hibernate的实体类及其映射文件也放到项目中,由于有多个项目使用同一个数据库, Hibernate实体类和映射文件重复,不便于维护和升级。因此将其抽取出来,打成jar包,再引入回项目。实际操作中,发现个诡异的问题:项目运行没问题,但是JUnit单元测试不能运行(方法使用了HQL语 句时),总是报org.hib...
Java多线程:“JUC锁”01之框架

Java多线程:“JUC锁”01之框架

Java多线程:“JUC锁”01之框架2014-06-02 cnblogs skywang12345根据锁的添加到Java中的时间,Java中的锁,可以分为"同步锁"和 "JUC包中的锁"。同步锁即通过synchronized关键字来进行同步,实现对竞争资源的互斥访问的锁。Java 1.0版本中就已经支 持同步锁了。同步锁的原理是,对于每一个对象,有且仅有一个同步锁;不同的线程能共同访问该同步锁。但是, 在同一个时间...
<< 271 272 273 274 275 276 277 278 279 280 >>