Java几个简单例子
来源:互联网 发布:希特勒侄女知乎 编辑:程序博客网 时间:2024/06/01 10:37
例子1
Class.isPrimitive()方法:判断Class类是否是基础数据类型
Class.isAssignableFrom:用来判断一个类Class1和另一个类Class2是否相同或是另一个类的子类或接口,
isAssignableFrom的参数类型都是Class
instanceof 的参数类型是对象
@Testpublic void testAssignableFrom() {Assert.assertEquals(true, boolean.class.isPrimitive());Assert.assertEquals(false, Boolean.class.isPrimitive());Assert.assertEquals(true, Object.class.isAssignableFrom(String.class));Assert.assertEquals(true, Object.class.isAssignableFrom(Boolean.class));Assert.assertEquals(false, Object.class.isAssignableFrom(boolean.class));}
例子2
WeakReference:表示弱引用,当执行gc时。会回收对象。
SoftReference:表示强引用,执行gc时并不会回收,只有当内存吃紧时,才会回收,适全Cache操作
/** * WeakReference 是弱引用,当执行gc时。会垃圾回收,适合debug,内存监控 */ public void testWeakReference() { A a = new A(); a.str = "Hello weakrefrence"; WeakReference<A> weak = new WeakReference<A>(a); a = null; int i = 0; while (weak.get() != null) { System.out.println(String.format("Get str from object of weakReference : %s, count: %d", weak.get().str, ++i)); if (i % 10 == 0) { System.gc(); System.out.println("System.gc() was invoked!"); } try { Thread.sleep(500); } catch (Exception e) {// TODO: handle exception} } System.out.println("object a was cleared by JVM"); }/** * SoftReference是强引用,gc并不会回收,只有当内存吃紧时才会被回收,适合Cache * 以下程序会一直跑。除非内存不够用 */@Test public void testSoftReference() { A a = new A(); a.str = "Hello softReference"; SoftReference<A> soft = new SoftReference<A>(a); a = null; int i = 0; while (soft.get() != null) { System.out.println(String.format("Get str from object of softReference : %s, count: %d", soft.get().str, ++i)); if (i % 10 == 0) { System.gc(); System.out.println("System.gc() was invoked!"); } try { Thread.sleep(500); } catch (Exception e) {// TODO: handle exception} } System.out.println("object a was cleared by JVM"); }
例子3
System.identityHashCode():对象内存地址来计算哈希值,返回默认的hashCode,不管子类是否重写的hashCode方法
hashCode:Object的方法。
public class TestIdentityHashCode {@Testpublic void testIdentityHashCode() {String a = "a";TestA b = new TestA();TestB c = new TestB();Assert.assertEquals(false, a.hashCode() == System.identityHashCode(a));Assert.assertEquals(true, b.hashCode() == System.identityHashCode(b));Assert.assertEquals(false, c.hashCode() == System.identityHashCode(c));}}class TestA {}class TestB {@Overridepublic int hashCode() {return 11110;}}
0 0
- Java几个简单例子
- 几个简单java基础的例子
- 几个简单php例子
- 在网上搜索了几个简单的经典java例子!
- Java nio几个例子
- 几个简单的SQL例子
- 终端驱动程序:几个简单例子
- html5的几个简单例子
- Jedis几个简单测试例子
- 几个简单的博弈例子
- Jedis几个简单测试例子
- Java多线程几个例子学习
- Schema的几个简单例子 入门
- 几个简单的voip的小例子
- sql 存储过程 几个 简单例子
- sql 存储过程 几个 简单例子
- 【Boost】boost::algorithm的几个简单例子
- objc_runtime使用方法的几个简单例子
- eclipse安装extjs插件
- 编译器,CPU和操作系统的宏
- ScrollView控件实现屏幕滚动
- 使用SqlConfigDataSource实现ODBC数据源配置
- Mysql 连接出错" unblock with ‘mysqladmin flush-hosts'"
- Java几个简单例子
- application activity生命周期
- 给iOS开发新手送点福利,简述UIScrollView的属性和用法
- 微商培训不会告诉你的10个秘密,来看真正的实战
- 2015/2/10换网小记
- applications over the unaudited use restrictions!
- cocos2dx 3.x判断node点击区域是否透明
- linux 定时执行任务
- Junit白盒测试