随笔分类 -  Java基础知识

摘要:参考:http://droidyue.com/blog/2014/12/21/string-literal-pool-in-java/index.html 阅读全文
posted @ 2016-07-31 13:37 Mr.van_Gogh 阅读(197) 评论(0) 推荐(0)
摘要:Java是值传递: (1)基本类型作为参数传递时,是传递值的拷贝,无论你怎么改变这个拷贝,原值是不会改变的; (2)对象的引用作为参数传递时,是把对象在内存中的地址拷贝了一份传给了参数,无论怎么改变这个地址值,原值都不会改变。 参考:http://blog.sina.com.cn/s/blog_4b 阅读全文
posted @ 2016-07-31 12:45 Mr.van_Gogh 阅读(289) 评论(0) 推荐(0)
摘要:1. 首先明确一点的是:test.txt文件可以和test文件夹同时存在同一目录下;test文件不能和test文件夹同时存在同一目录下。 原因是: (1)win的文件和文件夹都是以节点形式存放,这就意味着相同的文件和文件名不能处在同一目录下,会命名冲突。 (2)文件后缀名也算是文件名的一部分,即te 阅读全文
posted @ 2016-07-24 14:31 Mr.van_Gogh 阅读(241080) 评论(0) 推荐(6)
摘要:Java的反射工具很强大,有句著名的话:No reflection ,no frameworks. 工作中直到涉及到UT,才体会到它的重要性,现归纳整理一个小例子: 反射工具类: 阅读全文
posted @ 2016-07-20 21:24 Mr.van_Gogh 阅读(19884) 评论(0) 推荐(2)
摘要:1. 通过类对象调用newInstance()方法,适用于无参构造方法: 例如:String.class.newInstance() 2. 通过类对象的getConstructor()或getDeclaredConstructor()方法获得构造器(Constructor)对象并调用其newInst 阅读全文
posted @ 2016-07-19 21:15 Mr.van_Gogh 阅读(40829) 评论(0) 推荐(5)
摘要:1. 类型.class,例如:String.class 2. 对象.getClass(),例如:“Hello”.getClass() 3. Class.forName(),例如:Class.forName("java.lang.String") 阅读全文
posted @ 2016-07-19 20:22 Mr.van_Gogh 阅读(1102) 评论(0) 推荐(0)
摘要:ArrayList 和Vector他们底层的实现都是一样的,都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢。 Vector中的方法由于添加了synchronized修饰,因 阅读全文
posted @ 2016-07-18 21:26 Mr.van_Gogh 阅读(20375) 评论(1) 推荐(1)
摘要:一个类实现接口和继承抽象类对于抽象方法的实现原则是相同的: (1)如果这个类是个普通类,那么必须实现这个接口/抽象类的所有抽象方法; (2)如果这个类是个抽象类,那么不必实现这个接口/抽象类的抽象方法,因为抽象类中可以定义抽象方法。 阅读全文
posted @ 2016-07-18 20:28 Mr.van_Gogh 阅读(7789) 评论(0) 推荐(0)
摘要:Java平台提供了两种类型的字符串:String和StringBuffer/StringBuilder,它们可以储存和操作字符串。 其中String是只读字符串,也就意味着String引用的字符串内容是不能被改变的。而StringBuffer/StringBuilder类表示的字符串对象可以直接进行 阅读全文
posted @ 2016-07-17 21:50 Mr.van_Gogh 阅读(247) 评论(0) 推荐(0)
摘要:sleep 是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复。调用sleep 不会释放对象锁。wait 是Object 类的方法,对此对象调用wait 方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出no 阅读全文
posted @ 2016-07-17 21:40 Mr.van_Gogh 阅读(6855) 评论(0) 推荐(0)
摘要:在JDK 1.2以前的版本中,若一个对象不被任何变量引用,那么程序就无法再使用这个对象。也就是说,只有对象处于可触及(reachable)状态,程序才能使用它。从JDK 1.2版本开始,把对象的引用分为4种级别,从而使程序能更加灵活地控制对象的生命周期。这4种级别由高到低依次为:强引用、软引用、弱引 阅读全文
posted @ 2016-07-17 20:43 Mr.van_Gogh 阅读(2025) 评论(0) 推荐(0)
摘要:首先明确一点,equals是方法,==是操作符。 1. 如果比较的是基本数据类型: 只讨论==,因为equals是不存在的,因为java中基本数据类型不能调用method的。 2. 如果比较的是引用类型: ==:比较两个引用是不是指向同一个对象实例,即相同的地址。 equals:equals方法是O 阅读全文
posted @ 2016-07-17 19:43 Mr.van_Gogh 阅读(1424) 评论(0) 推荐(0)
摘要:在Java5以前,switch(expr)中,exper只能是byte,short,char,int类型。 从Java5开始,java中引入了枚举类型,即enum类型。 从Java7开始,exper还可以是String类型。 但是long在所有版本中都是不可以的。 阅读全文
posted @ 2016-07-17 16:33 Mr.van_Gogh 阅读(6015) 评论(0) 推荐(2)
摘要:参考:http://blog.csdn.net/mazhimazh/article/details/16799925 1. Java八种基本数据类型的大小,以及封装类,自动装箱/拆箱的用法? 原始类型-大小-包装类型 (1) char-2B-Character booelan-1B-Boolean 阅读全文
posted @ 2016-07-17 16:23 Mr.van_Gogh 阅读(3155) 评论(0) 推荐(0)