
Java
文章平均质量分 92
xhmj12
一个码农,技术公众号:开发者全社区(JANiubility)
展开
-
最实用的代码重构小技巧排行榜TOP10
最实用的代码重构小技巧排行榜TOP10原创 2016-04-26 15:34:32 · 3927 阅读 · 0 评论 -
垃圾回收器如何处理循环引用
垃圾回收是一门编程语言中必不可少的一部分,不论是手动释放内存的C和C++,还是自动回收垃圾的Java和C#等语言。对于Java这样的语言,一般的开发者不强求关心对象回收和内存释放,但是理解垃圾回收对开发工作还是大有裨益的。在编程语言中,普遍存在着循环引用这样的问题,垃圾回收器是如何处理循环引用呢,常用的垃圾回收有引用计数和引用对象遍历两种实现,它们各自又是如何处理循环引用呢?本文讲以JVM...原创 2015-10-19 10:30:54 · 582 阅读 · 0 评论 -
Java运行时的数据区
理解JVM运行时的数据区是Java编程中的进阶部分。我们在开发中都遇到过一个很头疼的问题就是OutOfMemoryError(内存溢出错误),但是如果我们了解JVM的内部实现和其运行时的数据区的工作机制,那么前面的问题就会迎刃而解。在这片文章中,我们将简单了解JVM中有哪些运行时数据区以及这些数据区的工作机制。JVM运行时数据区分类程序计数器 (Program Counter (PC)...原创 2015-10-18 16:42:30 · 166 阅读 · 0 评论 -
读懂Java中的Socket编程
Socket,又称为套接字,Socket是计算机网络通信的基本的技术之一。如今大多数基于网络的软件,如浏览器,即时通讯工具甚至是P2P下载都是基于Socket实现的。本文会介绍一下基于TCP/IP的Socket编程,并且如何写一个客户端/服务器程序。餐前甜点Unix的输入输出(IO)系统遵循Open-Read-Write-Close这样的操作范本。当一个用户进程进行IO操作之前,它需要...原创 2015-10-18 16:27:37 · 115 阅读 · 0 评论 -
9本Java程序员必读的书
本文列出的9本书在Java程序员界都是被认为很棒的书。当一个程序员开始初学Java时,他的第一个问题应该是如何选择一本书来作为指导学习Java。这个问题也就表明,相对于其他的教程和博客,Java书籍还是很重要的参考,主要表现在以下两点通常书籍是由比较权威的程序员来撰写的。相比其他媒介,书籍对于内容的描述更加详细,解释更加明确。本文列出的九本书是我个人非常喜欢的J...原创 2015-10-18 14:43:36 · 177 阅读 · 0 评论 -
Java中堆和栈的区别
当一个人开始学习Java或者其他编程语言的时候,会接触到堆和栈,由于一开始没有明确清晰的说明解释,很多人会产生很多疑问,什么是堆,什么是栈,堆和栈有什么区别?更糟糕的是,Java中存在栈这样一个后进先出(Last In First Out)的顺序的数据结构,这就是java.util.Stack。这种情况下,不免让很多人更加费解前面的问题。事实上,堆和栈都是内存中的一部分,有着不同的作用,而且一...原创 2015-10-18 14:36:40 · 128 阅读 · 0 评论 -
细话Java:"失效"的private修饰符
在Java编程中,使用private关键字修饰了某个成员,只有这个成员所在的类和这个类的方法可以使用,其他的类都无法访问到这个private成员。上面描述了private修饰符的基本职能,今天来研究一下private功能失效的情况。Java内部类在Java中相信很多人都用过内部类,Java允许在一个类里面定义另一个类,类里面的类就是内部类,也叫做嵌套类。一个简单的内部类实...原创 2015-10-18 14:03:22 · 124 阅读 · 0 评论 -
java中的接口和抽象类是什么?
抽象类与接口的区别 abstract class和interface是Java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了Java强大的面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进行抽象类定义时对于abstract class和interface的选择显得比较随意...原创 2015-07-15 17:41:38 · 142 阅读 · 0 评论 -
ThreadLocal详解
Java中的ThreadLocal类早在JDK1.2中就有了,ThreadLocal为解决多线程并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序。 ThreadLocal很容易让人望文生义,想当然地认为是这是一个"本地线程"。其实ThreadLocal并不是一个Thread,而是Thread的局部变量,也许把它命名为Threa...原创 2015-06-01 19:24:14 · 135 阅读 · 0 评论 -
volatile关键字
之前,我们讲线程中断的时候,使用了volitate关键字完成了最简单的中断操作,那我们今天就来好好的探究下volitate关键字。争取做到知道什么时候用volitate关键字,他的作用是什么。一.volatile的作用在JDK1.2之前,Java的内存模型实现总是从主存(即共享内存)读取变量,是不需要进行特别的注意的。而随着JVM的成熟和优化,现在在多线程环境下volatil关键字的使用变...原创 2018-08-31 10:40:42 · 324 阅读 · 0 评论 -
Java注解(Annotation)原理详解
序言注解在Java中到底是什么样的东西?具体是如何实现的? 本文将一层一层深入探究注解的实现原理。为了尽可能的将分析的过程呈现出来,所以文章包含了大量的截图和代码。(ps:如果图片看不清楚,请将网页放大来看,chrome可以通过ctrl+鼠标滚轮放大)前期准备知识方面开始分析前,提醒一下,下面的分析必须具备以下知识 1. 知道如何自定义注解 2. 理解Java动态代理机制 ...原创 2018-08-08 17:08:18 · 396 阅读 · 1 评论 -
Java常量池理解与总结
一.相关概念什么是常量用final修饰的成员变量表示常量,值一旦给定就无法改变!final修饰的变量有三种:静态变量、实例变量和局部变量,分别表示三种类型的常量。Class文件中的常量池在Class文件结构中,最头的4个字节用于存储魔数Magic Number,用于确定一个文件是否能被JVM接受,再接着4个字节用于存储版本号,前2个字节存储次版本号,后2个存储主版本号,再接着...原创 2016-02-21 09:34:25 · 654 阅读 · 0 评论