随笔分类 -  Java

摘要:输出 A [id=1, b=B [name=null]] 输出 A [id=1, b=null] 阅读全文
posted @ 2017-12-07 22:42 raindream 阅读(210) 评论(0) 推荐(0)
摘要:Why are only final variables accessible in anonymous class? java thread accessing outer object before it's created 输出: 阅读全文
posted @ 2017-09-03 15:42 raindream 阅读(144) 评论(0) 推荐(0)
摘要:为了防止内存泄露,一旦threadlocal完成任务,最好调用remove() 详见:ThreadLocal explained 阅读全文
posted @ 2017-08-27 16:51 raindream 阅读(152) 评论(0) 推荐(0)
摘要:一般栈溢出在无限递归下出现,下面的程序在创建对象时出现栈溢出: 不应该是outofmemory吗?栈里只有a这个reference,其引用的对象,以及对象里的a引用的对象都在堆里分配内存? 猜想(毫不负责): 应该是执行new A()时,调用构造函数,而构造函数初始化a需要调用构造函数,函数调用函数 阅读全文
posted @ 2017-08-20 14:49 raindream 阅读(2200) 评论(0) 推荐(0)
摘要:1. 如果n为2的幂,则 2. mod运算规则: 结合律 ((a+b) mod p + c)mod p = (a + (b+c) mod p) mod p ((a*b) mod p * c)mod p = (a * (b*c) mod p) mod p 交换律 (a + b) mod p = (b+ 阅读全文
posted @ 2017-05-20 17:06 raindream 阅读(219) 评论(0) 推荐(0)
摘要:The only times finally won't be called are: 以上来自:Does finally always execute in Java? 另见Sun Tutorials中的note: Note: If the JVM exits while the try or c 阅读全文
posted @ 2017-04-22 00:15 raindream 阅读(263) 评论(0) 推荐(0)
摘要:转自:String.valueOf 今天在排查问题的时候发现String.valueOf 的一个有意思的问题: 第一种情况: 第二种情况: 第一种情况会报空指针异常,第二种情况不会报异常,只是得到一个null 。 上网查了一下,原因如下:String.valueOf方法有好几个重载方法,但是由于nu 阅读全文
posted @ 2017-04-09 23:41 raindream 阅读(758) 评论(0) 推荐(0)
摘要:当加载一个类完成后,会在内存中实例化一个java.lang.Class类的对象,也就是该类的类对象。但是并没有明确规定必须在java堆中存放该类对象,对于HotSpot虚拟机而言,类对象存放在方法区里,但是新版本HotSpot也许会存放在java堆中。 请见《深入理解java虚拟机》类加载的过程 阅读全文
posted @ 2017-04-07 00:11 raindream 阅读(1347) 评论(0) 推荐(0)
摘要:请见:触摸java常量池 阅读全文
posted @ 2017-04-06 00:41 raindream 阅读(144) 评论(0) 推荐(0)
摘要:分配过程: 对象不在堆上分配的情况有两种:TLAB和栈上分配。 之所以在TLAB(Thread Local Allocation Buffer)上分配是因为TLAB是线程私有的,没有锁开销,在Eden上分配需要加锁。 Sun Hotspot JVM为了提升对象内存分配的效率,对于所创建的线程都会分配 阅读全文
posted @ 2017-04-04 20:06 raindream 阅读(211) 评论(0) 推荐(0)
摘要:转自:What is the difference between “text” and new String(“text”)? new String("text"); explicitly creates a new and referentially distinct instance of a 阅读全文
posted @ 2017-04-03 00:33 raindream 阅读(251) 评论(0) 推荐(0)
摘要:-Xmx 最大堆 -Xms 最小堆 -Xss 栈大小 -Xmn 新生代(年轻代)大小 -XX:SurvivorRatio Eden与Survivor的比例 -XX:PermSize 永久代(方法区)初始大小 -XX:MaxPermSize 永久代(方法区)最大容量 -XX:MaxDirectMemo 阅读全文
posted @ 2017-02-15 22:09 raindream 阅读(217) 评论(0) 推荐(0)
摘要:查看时区: 查看当前时间也正常: 但是java写入是就少14小时。这是因为:在解析成预编译语句的时候,误将CST(China Standard Time utc+8)解析成CST(Central Standard Tim UTC-6),美国中部标准时间,所以少14个小时。 两种解决办法: 1. 命令 阅读全文
posted @ 2016-12-28 00:23 raindream 阅读(4359) 评论(1) 推荐(0)
摘要:先看例子: 程序输出: show_2 和show_3方法其实是完完全全等效的。意思就是说ClassName<T>中一旦T被指定为Fruit后那么show_1没有前缀<T> 的话,该方法中只能是show_1 (Fruit对象) 要是有前缀<T>或<E>的话,那么就是告诉编译器:这是新指定的一个类型,跟 阅读全文
posted @ 2016-12-20 23:27 raindream 阅读(2583) 评论(0) 推荐(0)
摘要:内部类访问外部类的一个例子: 执行Cde的main方法,输出为“cde”。 说明Abc.this代表的是运行时对象,而不是Cde父类Abc的对象。 阅读全文
posted @ 2016-12-20 23:01 raindream 阅读(2554) 评论(0) 推荐(0)
摘要:转自:Java中泛型是类型擦除的 Java 泛型(Generic)的引入加强了参数类型的安全性,减少了类型的转换,但有一点需要注意:Java 的泛型在编译器有效,在运行期被删除,也就是说所有泛型参数类型在编译后都会被清除掉,看下面一个列子,代码如下: 代码很简单,看起来没什么问题,但是编译器却报出如 阅读全文
posted @ 2016-11-26 01:38 raindream 阅读(23500) 评论(3) 推荐(2)
摘要:转自:Java泛型中extends和super的区别? 另,问题来源:Java 泛型 <? super T> 中 super 怎么 理解?与 extends 有何不同? <? extends T>和<? super T>是Java泛型中的“通配符(Wildcards)”和“边界(Bounds)”的概 阅读全文
posted @ 2016-11-25 00:46 raindream 阅读(33237) 评论(4) 推荐(27)
摘要:转自:Java float保留两位小数或多位小数 方法1:用Math.round计算,这里返回的数字格式的. float price=89.89; int itemNum=3; float totalPrice=price*itemNum; float num=(float)(Math.round( 阅读全文
posted @ 2016-11-07 22:18 raindream 阅读(3167) 评论(0) 推荐(0)
摘要:首先需要下载插件:"Help" --> "Market Place" --> Search for java 8 kepler. install Java 8 support eclipse kepler sr2, Java 8 Facets for web tools eclipse kepler 阅读全文
posted @ 2016-09-29 00:00 raindream 阅读(2151) 评论(0) 推荐(0)
摘要:转自:JUnit中按照顺序执行测试方式 很多情况下,写了一堆的test case,希望某一些test case必须在某个test case之后执行。比如,测试某一个Dao代码,希望添加的case在最前面,然后是修改或者查询,最后才是删除,以前的做法把所有的方法都集中到某一个方法去执行,一个个罗列好, 阅读全文
posted @ 2016-08-15 22:23 raindream 阅读(1238) 评论(0) 推荐(0)