编程语言:Java
Java 7中的Try-with-resources
这篇文章介绍了Java 7中的异常处理机制"try-with-resources"。它可以帮助简化资源的关闭操作,避免繁琐的代码。在旧的代码风格中,需要使用try-catch-finally来管理资源的关闭,而在新的机制中,可以使用try-with-resources来自动关闭资源。文章还提到了多个资源的使用情况,并且介绍了如何在自定义类中实现AutoClosable接口来在try-with-resources结构中使用。这种方法可以确保资源能够被正确地关闭。
Java定时任务Timer、TimerTask与ScheduledThreadPoolExecutor详解
定时任务就是在指定时间执行程序,或周期性执行计划任务。Java中实现定时任务的方法有很多,本文从从JDK自带的一些方法来实现定时任务的需求。一、Timer和TimerTask Timer和TimerTask可以作为线程实现的第三种方式(前两种详见《Java多线程基础》),JDK1.5之后定时任...
Java Integer.highestOneBit(i)代码品读
1、在写代码的过程中,偶尔使用到了 Integer.highestOneBit(i)这个函数调用。使用的第一感觉就是这个函数是干什么用的,通过查看文档得知,这个函数的作用是取 i 这个数的二进制形式最左边的最高一位且高位后面全部补零,最后返回int型的结果。
Java 学习之路 之 类型通配符(四十一)
正如前面讲的,当使用一个泛型类时(包括声明变量和创建对象两种情况),都应该为这个泛型类传入一个类型实参。如果没有传入类型时间参数,编译器就会提出泛型警告。
JAVA并发编程学习笔记之CAS操作
CAS是单词compare and set的缩写,意思是指在set之前先比较该值有没有变化,只有在没变的情况下才对其赋值。 我们常常做这样的操作 试想一下如果在做a++之前a的值被改变了怎么办?a++还执行吗?
Java 原子类 java.util.concurrent.atomic
Java 原子类 java.util.concurrent.atomic 1、i++为什么是非线程安全的 i++其实是分为3个步骤:获取i的值, 把i+1, 把i+1的结果赋给i 如果多线程执行i++操作,没有同步的话,结果可能不正确 如两个线程同时获取i的值,然后各自+1后,赋给i。正确的情况下i的值应该是加了2,但这&#
Java提高篇(三六)-----java集合细节(二):asList的缺陷
在实际开发过程中我们经常使用asList讲数组转换为List,这个方法使用起来非常方便,但是asList方法存在几个缺陷: 使用8个基本类型数组转换为列表时会存在一个比较有味的缺陷。
10 Subtle Best Practices when Coding Java
This is a list of 10 best practices that are more subtle than your average Josh Bloch Effective Java rule. While Josh Bloch’s list is very easy to learn and concerns everyday situations, this…
聊聊我对Java内存模型的理解
本文主要介绍了Java内存模型以及与之相关的关键词“volatile”和“synchronized”。Java语言规范试图通过虚拟概念来实现线程安全,而编译器则根据Java语言规范的约束在不同平台上实现线程安全。此外,文章还提到了一些参考资料,包括IA-32 Architectures Software Developer’s Manual Volume 3A、MESI协议、Java内存模型的解释以及C语言内存模型的解释。
Linkedin工程师是如何优化他们的Java代码的
最近在刷各大公司的技术博客的时候,我在Linkedin的技术博客上面发现了一篇很不错博文。这篇博文介绍了Linkedin信息流中间层Feed Mixer,它为Linkedin的Web主页,大学主页,公司主页以及客户端等多个分发渠道提供支撑(如下图所示)。
java中通过反射获取方法并且调用(getMethod和invoke深入)实践
为了支持业务的快速变更,往往采用可配置的方式,将业务逻辑的处理部分配置在数据库中或者XMl文件里。配置什么,如何配置才更灵活,That's a problem。