Core Java
文章平均质量分 70
JoJo小风
这个作者很懒,什么都没留下…
展开
-
synchronized与lock区别
synchronized 修饰方法时 表示同一个对象在不同的线程中 表现为同步队列。如果实例化不同的对象 那么synchronized就不会出现同步效果了。1、对象的锁所有对象都自动含有单一的锁。JVM负责跟踪对象被加锁的次数。如果一个对象被解锁,其计数变为0。在任务(线程)第一次给对象加锁的时候,计数变为1。每当这个相同的任务(线程)在此对象上获得锁时,计数会递增。只有首先获得锁的任务(线程)才能转载 2016-06-07 13:09:44 · 474 阅读 · 0 评论 -
为什么在重写了equals()方法之后也必须重写hashCode()方法
我们都知道Java语言是完全面向对象的,在java中,所有的对象都是继承于Object类。Object类中有两个方法equals、hashCode,这两个方法都是用来比较两个对象是否相等的。 在没有重写equals方法的时候我们是继承了Object的equals方法,该方法是用来比较两个对象的内存地址,显然我们new了两个对象内存地址肯定不一样。对于值对象,==比较的是两个对象的值对于引用对象转载 2016-06-04 23:27:49 · 416 阅读 · 0 评论 -
Lombok 安装、入门
Lombok 安装、入门lombok 的官方网址:http://projectlombok.org/lombok 其实到这里我就介绍完了,开个玩笑,其实官网上有 lombok 三分四十九秒的视频讲解,里面讲的也很清楚了,而且还有文档可以参考。 在这里我就不扯太多,先来看一下 lombok 的安装,其实这个官网视频上也有讲到啦lombok 安装先在官网下载JAR 包,我用的是 v1.16.8,然后根翻译 2016-05-27 11:17:12 · 671 阅读 · 0 评论 -
Java 内置的进制转换
public static void main(String[] args) { // 十进制转为其它进制 System.out.println(Integer.toBinaryString(112)); // 二进制 System.out.println(Integer.toHexString(112)); // 十六进制 Syste原创 2016-07-23 22:53:39 · 398 阅读 · 0 评论 -
Java 注解
一、JDK 自带注解@OverrideOverride 用于标识子类重写父类的方法或实现类实现接口的抽象方法,以实现为例:// 接口public interface Person { public String name(); public int age(); public void sing();}// 实现类public class Child implements P原创 2016-07-24 17:34:53 · 869 阅读 · 1 评论 -
BigDecimal用法
最近做项目用到了高精度数字,为了跟数据库中 Decimal 类型字段对应,在程序中只能使用 BigDecimal,接下来就简单介绍一下 BigDecimal 的用法。1、运算1.1、加法public static void main(String[] args) { BigDecimal bigDecimal1 = new BigDecimal("22.0000"); BigDeci原创 2016-07-07 21:39:54 · 419 阅读 · 0 评论 -
深入理解Java——IO
一、File 类java.io.File类是文件和目录路径名的抽象表示。以下是有关文件的要点:实例表示实际的文件系统对象,如文件或目录。如果是这样表示这样一个对象,然后该对象位于一个分区。分区是存储为文件系统的操作系统的特定部分。文件系统可以实现限制某些操作的实际文件系统对象,如读,写,和执行上。这些限制统称为访问权限。File类的实例是不可变的;也就是说,一旦创建,由一个File对象表示的抽原创 2016-08-11 17:41:10 · 741 阅读 · 0 评论 -
Collator类详解(Collections.sort 中文排序)
前言:类 Collator简介Collator 类执行区分语言环境的 String 比较。使用此类可为自然语言文本构建搜索和排序例程。 Collator 是一个抽象基类。其子类实现具体的整理策略。Java 平台目前提供了 RuleBasedCollator 子类,它适用于很多种语言。还可以创建其他子类,以处理更多的专门需要。 与其他区分语言环境的类一样,可以使用静态工厂方法 getInstanc原创 2016-09-11 23:16:09 · 15167 阅读 · 1 评论 -
Java中 BlockingQueue(阻塞队列)的使用
引言Queue接口与List、Set同一级别,都是继承了Collection接口。LinkedList实现了Queue接 口。Queue接口窄化了对LinkedList的方法的访问权限(即在方法中的参数类型如果是Queue时,就完全只能访问Queue接口所定义的方法 了,而不能直接访问 LinkedList的非Queue的方法),以使得只有恰当的方法才可以使用。BlockingQueue 继承了Qu原创 2016-09-20 14:23:05 · 4583 阅读 · 0 评论 -
关于system.gc()与finalize()方法
注:本文的目的并不是鼓励使用finalize方法,而是大致理清其作用、问题以及GC执行finalize的过程。1. finalize的作用finalize()是Object的protected方法,子类可以覆盖该方法以实现资源清理工作,GC在回收对象之前调用该方法。finalize()与C++中的析构函数不是对应的。C++中的析构函数调用的时机是确定的(对象离开作用域或delete掉),但Jav转载 2016-09-23 17:07:06 · 5568 阅读 · 0 评论 -
java中的闭包与回调
闭包(closure)是一个可调用的对象,它记录了一些信息,这些信息来自于创建它的作用域。通过这个定义,可以看出内部类是面向对象的闭包,因为它不仅包含外围类对象(创建内部类的作用域)的信息,还自动拥有一个指向此外围类对象的引用,在此作用城内,内部类有权操作所有的成员,包括private成员。Java最引人争议的问题之一就是,人们认为Java应该包含某种类似指针的机制,以允许回调(callback)。原创 2016-09-27 22:36:46 · 407 阅读 · 0 评论 -
Java 无意识递归
之前在练习中碰到一个问题,程序中没有使用递归却出现了 Exception in thread “main” java.lang.StackOverflowError 异常,先把之前的代码贴上来:public class InfiniteRecursion { public String toString() { return "InfiniteRecursion addres原创 2016-12-31 16:14:12 · 571 阅读 · 0 评论