Java语法
文章平均质量分 52
dingpiao190
这个作者很懒,什么都没留下…
展开
-
线程间通信
线程间通信的方式主要有共享内存、信号、信号量、管道等。下面分别用示例代码对各种通信方式进行演示。1.共享内存class Test implements Runnable { static volatile boolean flag = true; @Override public void run() { // TODO Auto-generated metho原创 2017-06-07 10:35:39 · 401 阅读 · 0 评论 -
Java保留小数点若干位的输出方法
直接上代码import java.math.BigDecimal;import java.text.DecimalFormat;import java.text.NumberFormat;public class KeepDecimalPoint { static double f = 111231.5585; public void m1() { BigDeci原创 2017-08-04 17:33:44 · 526 阅读 · 0 评论 -
Java对象是否存活之引用计数算法&可达性分析算法
java通过虚拟机的GC机制来完成不使用对象的回收,虚拟机判断对象是否存活的方法有两种,分别是引用计数算法和可达性分析算法。引用计数算法 为对象添加一个引用计数器,每当有位置引用它的时候,计数器的值就加1,当引用失效的时候,引用的计数值减1。当引用计数器的值为0时表示对象不可再被使用。class B { C c;}class C { B b;}public class A原创 2017-07-07 11:22:32 · 1506 阅读 · 0 评论 -
关于Java的值传递和引用传递
对于参数的传递一般有按值传递和按引用传递,我们首先来看个按值传递的例子public class A { private static void change(int a) { a = -1; } public static void main(String[] args) { int num = 10; change(num);原创 2017-06-23 10:31:32 · 328 阅读 · 0 评论 -
double类型是否相等的判断方法
对于double类型,比如double d1=0.0000001,double d2=0d 当判断两个数据d1和d2是否相等的时候,一般不直接使用if(d1==d2) ...我们一般认为偏差在一个较小的范围内则两个数据是相等的。 正确的代码如下:public static void main(String[] args) { double dis=1e-6;原创 2017-06-20 20:09:18 · 32820 阅读 · 0 评论 -
Java的volatile修饰符
Java的volatile修饰符是和多线程编程相关的,被volatile修饰的变量当其状态被某一个线程修改是,其状态被其他线程可见。volatile变量不会缓存在寄存器或者其他处理器不可见的地方。下面通过一个示例来说明。class Test implements Runnable { static volatile boolean flag = true; @Override原创 2017-06-07 11:04:00 · 432 阅读 · 0 评论 -
Java字符串的代码点和代码单元
Java字符串的代码点个代码单代码点:指可用于编码字符集的数字。 代码单元:存储代码点的空间。首先简单解释下其产生的背景,计算机最初诞生的时候,只有ASCII编码用来表示一些英文字符,随着计算机的普及,也伴随这一些编码的产生,如中国的GB2312、西欧语言中的ISO 8859-1等。随后出现的Unicode字符编码希望创建一个可以表示世界上所有字符的语言字典,其最初设计的时候使用两个字原创 2017-05-24 10:31:51 · 633 阅读 · 0 评论 -
Java字符串在内存中的存储位置
在JDK6的时候在Java虚拟机(这里指的是HotSpot)中内存区域分为本地方法栈、虚拟机栈、堆、程序计数器、方法区等,方法区又被称作永久代。 这里只说一下字符串的存储位置,在Java虚拟机内存中有个区域叫做运行时常量池,是方法区的一部分。在JDK6中其中存放的有类的版本、字段、方法、接口等描述信息以及常量池,常量池用来存放编译期间生成的各种字面量和符号引用,字符串就存储在这个位置。下面通过代码原创 2017-06-01 14:43:58 · 15097 阅读 · 9 评论 -
Java中equals方法和==的区别
一般而言,equals是比较对象的内容,而==比较的是对象实例在内存中的地址,为什么说是一般而言,因为对于Object类中的equals方法,其作用和==相同,比较的都是对象在内存中的地址。下面看一些代码来说明。public boolean equals(Object obj) { return (this == obj); }以上是JDK中Object类的equals方法源原创 2017-06-06 22:38:44 · 290 阅读 · 0 评论 -
Java中Iterator和ListIterator的区别
我们先看HashMap的Iterator源码怎么写的。abstract class HashIterator { Node<K,V> next; // next entry to return Node<K,V> current; // current entry int expectedModCount; // for fas原创 2017-08-20 10:56:10 · 350 阅读 · 0 评论