Java
文章平均质量分 65
FIRE_TRAY
生命在于折腾
展开
-
The Java™ Tutorials — Generics :Guidelines for Wildcard Use 通配符使用指南
The Java™ Tutorials — Generics :Guidelines for Wildcard Use 通配符使用指南原文地址:https://docs.oracle.com/javase/tutorial/java/generics/wildcardGuidelines.html关键点“输入”和“输出”变量的定义 输入:负责添加数据到代码中翻译 2016-01-30 10:09:55 · 649 阅读 · 0 评论 -
How Garbage Collection Really Works 垃圾清理究竟是如何工作的
How Garbage Collection Really Works 垃圾清理究竟是如何工作的原文地址:http://www.dynatrace.com/en/javabook/how-garbage-collection-works.html关键点标记清除算法GC root 的选取: 一个线程的栈所引用的局部变量活动的线程静态变量JNI引用的变量全文翻译 Java Memory翻译 2016-01-18 21:25:34 · 749 阅读 · 0 评论 -
Can I create an array whose component type is a concrete parameterized type? 我可以创建一个泛型数组嘛?
Can I create an array whose component type is a concrete parameterized type? 我可以创建一个元素类型为具体的参数化类型的数组嘛(我可以创建一个泛型数组嘛)?原文地址:http://www.angelikalanger.com/GenericsFAQ/FAQSections/ParameterizedTypes.ht翻译 2016-02-01 16:45:16 · 685 阅读 · 0 评论 -
The Java™ Tutorials — Concurrency :Intrinsic Locks and Synchronization 内置锁和同步
The Java™ Tutorials — Concurrency :Intrinsic Locks and Synchronization 内置锁和同步原文地址:https://docs.oracle.com/javase/tutorial/essential/concurrency/locksync.html关键点同步的实现原理:同步是通过一种名为内置锁或者监控翻译 2016-02-15 20:16:21 · 717 阅读 · 0 评论 -
The Java™ Tutorials — Concurrency :Memory Consistency Errors 内存一致性错误
The Java™ Tutorials — Concurrency :Memory Consistency Errors 内存一致性错误原文地址:https://docs.oracle.com/javase/tutorial/essential/concurrency/memconsist.html关键点先行发生关系:一个保证,它可以让一个操作的效果对另一个可见拓展翻译 2016-02-11 21:02:19 · 647 阅读 · 0 评论 -
The Java™ Tutorials — Concurrency :Atomic Access 原子访问
The Java™ Tutorials — Concurrency :Atomic Access 原子访问原文地址:https://docs.oracle.com/javase/tutorial/essential/concurrency/atomic.html关键点原子操作:不可打断的操作原子操作类型 对于引用变量,和大部分的原始数据类型的读写(除long翻译 2016-02-15 20:55:23 · 613 阅读 · 0 评论 -
The Java™ Tutorials — Concurrency :Liveness 活跃度
The Java™ Tutorials — Concurrency :Liveness 活跃度原文地址:https://docs.oracle.com/javase/tutorial/essential/concurrency/liveness.html关键点活跃度定义:一个并发程序及时执行的能力称为“活跃度”。全文翻译A concurr翻译 2016-02-15 21:04:06 · 438 阅读 · 0 评论 -
The Java™ Tutorials — Concurrency :Synchronized Methods 同步方法
The Java™ Tutorials — Concurrency :Synchronized Methods 同步方法原文地址:https://docs.oracle.com/javase/tutorial/essential/concurrency/syncmeth.html关键点使用方法:在方法定义中使用synchronized关键字功能:在并发环境中,为多个翻译 2016-02-12 17:00:14 · 646 阅读 · 0 评论 -
The Java™ Tutorials — Concurrency :Deadlock 死锁
The Java™ Tutorials — Concurrency :Deadlock 死锁原文地址:https://docs.oracle.com/javase/tutorial/essential/concurrency/deadlock.html关键点发生条件: 请求和保持资源互斥循环等待不可抢夺全文翻译Deadlock翻译 2016-02-15 21:50:44 · 592 阅读 · 0 评论 -
The Java™ Tutorials — Generics :Effects of Type Erasure and Bridge Methods 类型擦除的影响以及桥方法
The Java™ Tutorials — Generics :Effects of Type Erasure and Bridge Methods 类型擦除的影响以及桥方法原文地址:https://docs.oracle.com/javase/tutorial/java/generics/bridgeMethods.html关键点补充阅读:http://www.c翻译 2016-01-31 11:09:41 · 673 阅读 · 0 评论 -
编译器对父子类同名变量和同名方法的处理
编译器对父子类同名变量和同名方法的处理带有override的情况先看个例子,猜猜会输出什么?class Base { int count = 2; public void display() { System.out.println("Base : " + this.count); }}class Derived extends原创 2016-01-31 11:05:39 · 1493 阅读 · 0 评论 -
The Java™ Tutorials — Generics :Erasure of Generic Methods 泛型方法的类型擦除
The Java™ Tutorials — Generics :Erasure of Generic Methods 泛型方法的类型擦除原文地址:https://docs.oracle.com/javase/tutorial/java/generics/genMethods.html关键点消除方法:同对泛型类的处理 无限制:替换为Object有限制:替换为第翻译 2016-01-30 16:04:57 · 589 阅读 · 0 评论 -
The Java™ Tutorials — Generics :Type Erasure 类型消除
The Java™ Tutorials — Generics :Type Erasure 类型消除原文地址:https://docs.oracle.com/javase/tutorial/java/generics/erasure.html关键点功能:保证了泛型不在运行时出现类型消除应用的场合: 编译器会把泛型类型中所有的类型参数替换为它们的上(下)限,如果翻译 2016-01-30 12:07:21 · 832 阅读 · 0 评论 -
The Java™ Tutorials — Concurrency :Defining and Starting a Thread 线程的定义和启动
The Java™ Tutorials — Concurrency :Defining and Starting a Thread 线程的定义和启动原文地址:https://docs.oracle.com/javase/tutorial/essential/concurrency/runthread.html关键点创建Thread的两种方式: 利用Runna翻译 2016-02-10 22:49:43 · 648 阅读 · 0 评论 -
The Java™ Tutorials — Concurrency :Pausing Execution with Sleep 利用Sleep暂停线程执行
The Java™ Tutorials — Concurrency :Pausing Execution with Sleep 利用Sleep暂停线程执行原文地址:https://docs.oracle.com/javase/tutorial/essential/concurrency/sleep.html关键点sleep的时间不是精确的当一个线程的休眠被中断时,s翻译 2016-02-11 09:34:08 · 796 阅读 · 0 评论 -
The Java™ Tutorials — Concurrency :Interrupts 中断
The Java™ Tutorials — Concurrency :Interrupts 中断原文地址:https://docs.oracle.com/javase/tutorial/essential/concurrency/interrupt.html关键点响应中断的方法: 捕获InterruptedException,如果代码有抛出此异常的可能。如果翻译 2016-02-11 10:51:12 · 596 阅读 · 0 评论 -
The Java™ Tutorials — Concurrency :Joins 插入
The Java™ Tutorials — Concurrency :Joins 插入原文地址:https://docs.oracle.com/javase/tutorial/essential/concurrency/join.html关键点join定义:t.join()会引起当前线程暂停执行直到t线程执行完毕join也会抛出InterruptedExceptio翻译 2016-02-11 11:23:58 · 454 阅读 · 0 评论 -
The Java™ Tutorials — Concurrency :The SimpleThreads Example SimpleThreads案例
The Java™ Tutorials — Concurrency :The SimpleThreads Example SimpleThreads案例原文地址:https://docs.oracle.com/javase/tutorial/essential/concurrency/simple.html关键点理解文中的案例全文翻译Th翻译 2016-02-11 11:35:07 · 691 阅读 · 0 评论 -
The Java™ Tutorials — Concurrency :Synchronization 同步
The Java™ Tutorials — Concurrency :Synchronization 同步原文地址:https://docs.oracle.com/javase/tutorial/essential/concurrency/sync.html关键点同步目的:防止线程冲突以及内存一致性错误线程冲突的两种形式:饥饿与死锁内存一致性错误:对共享数据的不一致翻译 2016-02-11 17:16:03 · 763 阅读 · 0 评论 -
The Java™ Tutorials — Concurrency :Thread Interference 线程冲突
The Java™ Tutorials — Concurrency :Thread Interference 线程冲突原文地址:https://docs.oracle.com/javase/tutorial/essential/concurrency/interfere.html关键点线程冲突的原因:并发环境下,非原子操作所带来的结果不确定性全文翻译翻译 2016-02-11 18:59:07 · 589 阅读 · 0 评论 -
The Java™ Tutorials — Concurrency :Starvation and Livelock 饥饿和活锁
The Java™ Tutorials — Concurrency :Starvation and Livelock 饥饿和活锁原文地址:https://docs.oracle.com/javase/tutorial/essential/concurrency/starvelive.html关键点饥饿:一个急需此资源的线程长时间无法获得该资源活锁:两个线程频繁地响应对方,进而导致双方的工作无法进翻译 2016-02-16 09:50:12 · 877 阅读 · 0 评论 -
The Java™ Tutorials — Concurrency :Guarded Blocks 保护块
The Java™ Tutorials — Concurrency :Guarded Blocks 保护块原文地址:https://docs.oracle.com/javase/tutorial/essential/concurrency/guardmeth.html关键点wait():必须在synchronized块中使用,通过synchronized关键字过获取翻译 2016-02-18 08:38:10 · 680 阅读 · 0 评论 -
String.intern in Java 6, 7 and 8 – string pooling (在Java 6,7和8中的String.intern - 字符串常量池化)
String.intern in Java 6, 7 and 8 – string pooling (在Java 6,7和8中的String.intern - 字符串常量池化)原文链接:http://java-performance.info/string-intern-in-java-6-7-8关键点java 6中字符串常量池存储于永久代区中,由于此区域大小固定,因此String.intern的翻译 2016-04-30 19:32:50 · 4620 阅读 · 1 评论 -
Java 6 和 7 中String.intern返回引用的不同
Java 6 和 7 中String.intern返回引用的不同先看看下面这段代码,这段代码在Java 6 和Java 7中的运行的结果并不同,为什么呢?public class Main { public static void main(String[] args) { String myString = "Rafe"; String str1 = new原创 2016-04-30 20:11:33 · 960 阅读 · 0 评论 -
Java对象死亡标记的过程
Java对象死亡标记的过程在Java可达性标记算法中,要宣告一个对象死亡,至少要进行两次标记过程:原理摘要首先,如果发现对象从GC root出发不可达,那么就会被第一次标记并进行筛选。筛选条件是此对象是否有必要执行finalize()方法。当对象没有覆盖finalize()方法,或者finalize()方法已经被执行过了,则会被判定为“没有必要执行”。在确定对象有必要执行finalize()方法原创 2016-04-30 22:26:25 · 1302 阅读 · 0 评论 -
C 的布尔值
C 的布尔值基本原理C中并没有像Java中true 和 false 中那种显式的布尔类型,整型担任了此重任。原则就是:0为假,任何非0值为真代码验证#include <stdio.h>#include <stdlib.h>void printLine(char *s){ printf("%s\n",s);}int main(){ if(-1){ printLin原创 2016-05-01 15:37:11 · 829 阅读 · 0 评论 -
JVM 方法区回收小结
JVM 方法区回收小结方法区也会发生垃圾回收,只是效率和性价比较低。回收主要分为两部分内容:废弃常量和无用的类。废弃常量的回收这与堆中对象的回收类似。以常量池的字符串为例,如果没有任何对象引用了此字符串,那么它就有可能被系统清理出常量池。废弃类的回收此类回收条件较为苛刻,需要满足如下的3点:该类所有实例已被回收,即Java堆中不存在该类的任何实例加载该类的ClassLoader已经被回收该类对原创 2016-05-02 20:23:48 · 1109 阅读 · 0 评论 -
JVM的几种垃圾收集器
JVM的几种垃圾收集器Serial收集器基本原理:新生代收集器,采用标记复制算法它是一个单线程收集器,只会使用一个CPU和一条收集线程完成GC。缺陷:在于它“Stop-The-World”的收集方式。进行垃圾收集时必须暂停其他线程的所有工作优点:简单而高效(与其他收集器的单线程比),对于限定单个CPU的环境来说,Serial收集器由于没有线程交互的开销,专心做GC反而效率更高。适用场景原创 2016-05-13 17:20:02 · 821 阅读 · 0 评论 -
Java GC 日志格式理解小结
Java GC 日志理解小结下面以一个典型的GC日志做分析:33.125: [GC[DefNew:3324K->152K(3712K), 0.0025925 secs]3324K->152K( 11904K), 0.0031680 secs]100.667: [FullGC[Tenured: 0 K->210K(10240K) , 0.0149142secs]4603K->210K( 19456K原创 2016-05-13 19:40:05 · 1711 阅读 · 0 评论 -
Java 垃圾清理基础理论
Java 垃圾清理基础理论标记-清除算法基本原理先标记需要回收的对象,然后回收被标记的对象。标记过程标记过程(对象的死亡至少要经历两次标记):首先,如果发现对象从GC root出发不可达,那么就会被第一次标记并进行筛选。筛选条件是此对象是否有必要执行finalize()方法。当对象没有覆盖finalize()方法,或者finalize()方法已经被执行过了,则会被判定为“没有必要执行”。在确定对原创 2016-05-05 09:56:11 · 622 阅读 · 0 评论 -
WeakHashMap的使用
WeakHashMap的使用WeakHashMap的使用与HashMap类似,但是区别在于WeakHashMap对Key保留了弱引用(弱引用,四大引用类型中的一种。对于只有弱引用的对象而言,当垃圾回收进行时,无论系统内存是否足够,总会回收该对象所占用的内存),而HashMap保留了对Key的强引用。也就是说只要该HashMap存在,那么Key所引用的对象就不会被回收。而WeakHashMap的Key原创 2016-04-29 16:40:01 · 1994 阅读 · 0 评论 -
对象的访问定位:句柄与直接指针
对象的访问定位:句柄与直接指针Java程序通过栈中的reference数据来操作堆上的具体对象,而对象的访问方式取决于虚拟机的实现。主流访问方式有句柄和直接指针两种句柄方式Java堆中将会划出一块内存来作为句柄池,reference对象存储的就是对象的句柄地址。句柄中包含了对象实例数据和类型数据的具体地址:直接指针方式reference对象直接存储对象地址:两者对比句柄由于reference中存储的原创 2016-04-28 16:53:04 · 4743 阅读 · 0 评论 -
对象的内存布局 (HotSpot)小结
对象的内存布局 (HotSpot)小结总共分为三个部分,对象头、实例数据和对齐填充部分对象头主要用于从存储两部分信息:对象自身的运行时数据和类型指针存储对象自身的运行时数据 内容举例: 哈希码HashCodeGC分代年龄锁状态标识线程持有的锁等长度(未开启压缩指针下):32 or 64 位的虚拟机中分别为 32bit or 64 bit官方名称:Mark Word非固定数据结构:原创 2016-04-28 16:01:20 · 1046 阅读 · 0 评论 -
The Java™ Tutorials — Concurrency :Immutable Objects 不可变对象
The Java™ Tutorials — Concurrency :Immutable Objects 不可变对象原文地址:https://docs.oracle.com/javase/tutorial/essential/concurrency/immutable.html关键点并发环境中,不可变对象十分有用。由于它们的状态不可变,也就因此不会陷入到线程冲突,或翻译 2016-02-18 09:13:52 · 503 阅读 · 0 评论 -
The Java™ Tutorials — Concurrency :A Synchronized Class Example 一个同步类的例子
The Java™ Tutorials — Concurrency :A Synchronized Class Example 一个同步类的例子原文地址:https://docs.oracle.com/javase/tutorial/essential/concurrency/syncrgb.html关键点理解本文案例中,可变对象带来的读取不一致问题。翻译 2016-02-18 09:27:48 · 520 阅读 · 0 评论 -
The Java™ Tutorials — Concurrency :A Strategy for Defining Immutable Objects 一个定义不可变对象的策略
The Java™ Tutorials — Concurrency :A Strategy for Defining Immutable Objects 一个定义不可变对象的策略原文地址:https://docs.oracle.com/javase/tutorial/essential/concurrency/imstrat.html关键点一个定义不可变对象的策略:翻译 2016-02-18 10:54:02 · 554 阅读 · 0 评论 -
#The Java™ Tutorials — Concurrency :High Level Concurrency Objects 高并发对象
The Java™ Tutorials — Concurrency :High Level Concurrency Objects 高并发对象原文地址:https://docs.oracle.com/javase/tutorial/essential/concurrency/highlevel.html全文翻译 So far, this lesson has focused on the low翻译 2016-02-18 11:19:46 · 658 阅读 · 0 评论 -
The Java™ Tutorials — Concurrency :Lock Objects 锁对象
The Java™ Tutorials — Concurrency :Lock Objects 锁对象原文地址:https://docs.oracle.com/javase/tutorial/essential/concurrency/newlocks.html关键点Lock的使用全文翻译Synchronized code relies翻译 2016-02-18 16:32:30 · 522 阅读 · 0 评论 -
The Java™ Tutorials — Concurrency :Executors
The Java™ Tutorials — Concurrency :Executors原文地址:https://docs.oracle.com/javase/tutorial/essential/concurrency/executors.html关键点Executor 接口定义了executor对象的三种类型线程池是最常见的一种executor实现Fork/Join 是充分利用了多处理器的翻译 2016-02-18 16:57:06 · 472 阅读 · 0 评论 -
Java枚举类型小结
Java枚举类型小结Java5 中引入了一个新的关键字——enum。我们可以利用enum来创建枚举。Java中的枚举也是一种类。它可以有自己的成员变量、方法,也可以实现接口、定义自己的构造器。同其他类一样,每个Java原文件中只能定义一个public访问权限的枚举类,且此public枚举类名需和Java源文件名相同。枚举类和其他类的不同点不能显示继承其他父类 enum定义的枚举类默认继承了jav原创 2016-04-26 17:07:46 · 558 阅读 · 0 评论