在 Java 语言众多的关键字中,final 关键字无疑是被提到最多的,也是在面试过程中经常被问到的知识点.今天,老王查找了很多材料,最后终于收集了关于 final 关键字比较全的知识点.首先,final 关键字可以修饰的对象有三个:一是修饰变量.二是修饰方法.三是修饰类,下面我们来看经过 final 关键字修饰的这三种对象会有着怎样的不同. 1,final 关键字修饰变量在使用 final 关键字修饰变量时,又可以分为两种情况:一种是基本数据类型的变量.另一种是引用类型的变量.final 关键…
如果您使用过 Apache Lucene 或 Apache Solr,就会知道它们的使用体验非常有趣.尤其在您需要扩展基于 Lucene 或 Solr 的解决方案时,您就会了解 Elasticsearch 项目背后的动机.Elasticsearch(构建于 Lucene 之上)在一个容易管理的包中提供了高性能的全文搜索功能,支持开箱即用地集群化扩展.您可以通过标准的 REST API 或从特定于编程语言的客户端库与 Elasticsearch 进行交互. 本教程将展示 Elasticsearch…
之前学习了很多涉及servlet的内容,本小结我们说一下监听器,说起监听器,编过桌面程序和手机App的都不陌生,常见的套路都是拖一个控件,然后给它绑定一个监听器,即可以对该对象的事件进行监听以便发生响应,从本质上来说这些都是观察者模式的具体实现,在web程序中的监听器也不例外.在Java Web程序中使用监听器可以通过以下两种方法:通过注解@WebListener来标识一个自定义的监听器:[java] view plain copy@WebListener public class Custom…
如果您一直在阅读这个系列,那么您应该已经看到有各种各样使用 Groovy 的有趣方式,Groovy 的主要优势之一就是它的生产力.Groovy 代码通常要比 Java 代码更容易编写,而且编写起来也更快,这使得它有足够的资格成为开发工作包中的一个附件.在另一方面,正如我在这个系列中反复强调的那样,Groovy 并不是 —— 而且也不打算成为 —— Java 语言的替代.所以,这里存在的问题是,能否把 Groovy 集成到 Java 的编程实践中?或者说这样做有什么用?什么时候 这样做有用? 这个…
深入理解Java内存模型中的虚拟机栈 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域,这些区域都会有各自的用途,以及创建和销毁的时间,有的区域会随着虚拟机进程的启动而存在,有些区域则依赖用户线程的启动和结束而建立和销毁.Java虚拟机所管理的内存将会包括以下几个运行时数据区域.如下图所示(图片来自<深入理解Java虚拟机>一书). 在内存中,栈分为两部分,一部分是本地方法栈,为虚拟机使用到的Native方法服务,具体的虚拟机可以自由实现,另一部分就是虚拟机…
在Java Web程序中使用Hibernate与普通Java程序一样.本文中将使用Servlet和JSP结合Hibernate实现数据库表的增删改查操作. Web程序中,hibernate.cfg.xml中必须配置current_session_context_class参数.如果使用JBoss等内置Hibernae的容器,参数值要配置为jta,其他容器(如Tomcat等)需要配置为thread. 1. 创建工程并搭建Hibernate框架 在MyEclipse中创建一个Web工程,工程名为hi…
本指南介绍了 NetBeans IDE 对 Java 应用程序中 Bean 绑定和数据绑定的支持. 要学完本教程,您需要具备以下软件和资源. 软件或资源 要求的版本 NetBeans IDE 版本 7.1.7.2 或 7.3 Java 开发工具包 (JDK) 版本 6 或更高版本 简介:NetBeans IDE 中的 Bean 绑定 在发布 Bean 绑定库之前,将 UI 组件连接到数据库或将组件属性的值保持同步非常麻烦.例如,将标准数据库中的数据显示在 JTable 中需要手动创建实用程序类来…
声音可以创造意境,触发遐想,当与虚拟图像相结合时,更加可以让整个世界充满幻觉,声音是多媒体技术的基础. 播放声音是Java对多媒体的支持一个重要部分,它支持的声音文件类型主要有: AU - (扩展名为AU或SND)适用于短的声音文件. WAV - (扩展名为WAV)由 Microsoft和 IBM共同开发,几乎能被所有支持声音的Windows应用程序播放. AIFF - (扩展名为AIF或IEF)音频互换文件格式是为Macintosh计算机和Silicon Graphics (SGI)计算机所共…
了解什么是可见性错误,为什么会发生,以及如何在并发Java应用程序中查找难以捉摸的可见性错误.这些问题你可能也遇到过,当在优锐课学习了一段时间后,我对这些问题有了一定见解,写下这篇文章和大家分享. 检测可见性错误的机会各不相同.在最佳情况下,可以在所有情况的90%中检测到以下可见性错误.在最坏的情况下,检测错误的机会低于百万分之一. 但是首先,什么是可见性错误? 什么是可见性错误? 当线程读取陈旧值时,会发生可见性错误.在以下示例中,一个线程向另一个线程发出信号以停止其while循环的处理: p…
近期发现测试的项目中有JAVA内存泄露的现象.虽然JAVA有垃圾回收的机制,但是如果不及时释放引用就会发生内存泄露现象.在实际工作中我们使用Jprofiler调用java自带的 jmap来做检测还是很快能够定位到错误.不过亡羊补牢不如先把羊圈修补得好一些.下面这篇文章给出了几种常见的内存泄露类型.大家coding的时候注意一下. btw,一些静态代码扫描工具也能检测出不好的编程习惯带来潜在的内存泄露的风险. --------------------------------------------…