Java
寻龙诀
这个作者很懒,什么都没留下…
展开
-
异常
1 异常是为了在异常情况下使用而设计的。不要将它们用于普通的控制流。2 Java提供了三种可抛出结构:受检异常、运行时异常和错误。其中后两者称为未受检异常。 使用原则: (1)如果期望调用者能够适当恢复,对于这种情况就应该使用受检的异常。对于这样的异常,提供一些辅助方法尤为重要,通过这些方法,调用者可以收获一些有助于恢复的信息。例如,用于欠费,企图呼叫,这是可以抛出受检异常,提供用于查询所原创 2016-10-02 20:59:53 · 202 阅读 · 0 评论 -
泛型与原生态类型
1.泛型的概念 声明具有一个或者多个类型参数的类或者接口就是泛型。2.每个泛型都定义了一个原生态类型,即不带任何实际类型参数的泛型名称。例如,List< String >相应的原生态类型是List。3.无限制的通配符类型,如Set< ? >(读作“某个类型的集合”)。与原生态类型的区别是通配符类型是安全的,原生态类型则不安全。4.使用泛型的好处(1)对于错误的插入编译时会报错(2)从集合中取原创 2016-09-28 22:11:40 · 352 阅读 · 0 评论 -
JVM的内存区域
方法区:在java的虚拟机中有一块专门用来存放已经加载的类信息、常量、静态变量以及方法代码的内存区域,叫做方法区。常量池:常量池是方法区的一部分,主要用来存放常量和类中的符号引用等信息。堆区:用于存放类的对象实例。栈区:也叫java虚拟机栈,是由一个一个的栈帧组成的后进先出的栈式结构,栈桢中存放方法运行时产生的局部变量、方法出口等信息。当调用一个方法时,虚拟机栈中就会创建一个栈帧存放这些数据,当方法原创 2016-10-16 10:09:15 · 305 阅读 · 0 评论 -
类的生命周期
参考:http://www.2cto.com/kf/201204/129386.html 1 须知 当我们编写一个java的源文件后,经过编译会生成一个后缀名为class的文件,这种文件叫做字节码文件,只有这种字节码文件才能够在java虚拟机中运行。2 定义 java类的生命周期就是指一个class文件从加载到卸载的全过程。3过程 一个java类的完整的生命周期会经历加载、原创 2016-10-16 10:07:23 · 285 阅读 · 0 评论 -
产生随机数
import java.util.Random;public class GenerateRandomNumber{ public static void main(String[] args) { Random r=new Random(); //设置种子 r.setSeed(System.currentTimeMil原创 2016-10-03 11:22:09 · 150 阅读 · 0 评论 -
需要精确答案,避免使用float和double
1 float和double类型主要是为了科学计算和工程计算而设计的。它们执行二进制浮点运算,这是为了在广泛的数值范围上提供较为精准的快速近似计算而精心设计的,然而它们并没有提供完全精准的结果,所以不应该用于需要精准结果的场合。尤其不适合用于货币计算2 如果想让系统来记录十进制小数点,并且不介意因为不适用基本类型带来的不便,应该使用BigDecimal。3 如果性能非常关键,并且不介意自己记录十进制原创 2016-10-03 16:58:27 · 581 阅读 · 0 评论 -
命名惯例
标识符类型 字面命名惯例 语法命名惯例 包 Internet域名转换 类或者接口 一个或多个单词,首字母大写 类:一个名词或者名词短语命名;接口:与类类似,或者用一个以‘-able’或‘-ible’结尾的形容词命名 方法 与类和接口类似,但是首字母小写 (1)执行某个动作的方法常用动词或者动词短语命名。(2)对于返回boolean值的方法,其名称以‘is’原创 2016-10-04 19:31:27 · 343 阅读 · 0 评论 -
返回数组类型
原文 http://blog.csdn.net/vonzhoufz/article/details/38229539 在C和C++中不能返回一个局部变量,因为函数中的局部变量分配的存储空间在栈上,当函数执行完后会被重新利用,所以想要返回数组类型,有两种方式: 1)静态变量(static in a function可以在函数调用之间保持值有效) 2)利用malloc动态分配,但是最终要记得释放原创 2016-09-22 19:35:40 · 1189 阅读 · 0 评论 -
继承方法调用问题
class ParentClass{ public void parentMethod(){ System.out.println("parent Class"); } public void overrid(){ parentMethod(); }}class ChildClass extends ParentClass{原创 2016-11-12 16:04:37 · 275 阅读 · 0 评论 -
Java内存机制
笔记:Java内存管理 Java内存机制所有的程序在运行的时候才进行内存的实际分配,在编译期间只是进行内存分配的规划。1、程序计数器:当前进程所执行的字节码的行号指示器2、Java栈/Java虚拟栈:Java中方法执行的内存模型,每个方法在执行的同时都会创建一个栈帧。3、本地方法栈4、Java堆:存放对象实例和数组。存放类的引用数据类型,成员方法不会存原创 2016-09-22 17:36:35 · 246 阅读 · 0 评论 -
Java静态方法继承问题
原文结论: java中静态属性和静态方法可以被继承,但是没有被重写(overwrite)而是被隐藏. 原因: 1) 静态方法和属性是属于类的,调用的时候直接通过类名.方法名完成对,不需要继承机制及可以调用。如果子类里面定义了静态方法和属性,那么这时候父类的静态方法或属性称之为”隐藏”。如果你想要调用父类的静态方法和属性,直接通过父类名.方法或变量名完成。2)静态属性、静态方法和非转载 2016-09-25 16:51:25 · 205 阅读 · 0 评论 -
从内存上看swap
原文:http://www.importnew.com/3559.html 问题: 如果Java是用引用来传递的话,为什么交换函数(swap)不起作用呢?public void tricky(Point arg1, Point arg2){ arg1.x = 100; arg1.y = 100; Point temp = arg1; arg1 = arg2;原创 2016-09-23 09:46:11 · 184 阅读 · 0 评论 -
多态的必要条件、重载和重写的区别
1 多态存在的三个必要条件:继承重写父类引用指向子类对象2 重写和重载之间的区别 访问权限 重载方法 重写方法 参数列表 必须修改 一定不能修改 返回类型 可以修改 一定不能修改 异常 可以修改 可以减少或者删除,一定不能抛出新的或者更广的异常 访问 可以修改 一定不能做更严格的限制(可以降低限制)原创 2016-09-22 20:23:50 · 909 阅读 · 0 评论 -
虚函数、抽象函数、抽象类、接口
原文JAVA – 虚函数、抽象函数、抽象类、接口1. Java虚函数虚函数的存在是为了多态。 C++中普通成员函数加上virtual关键字就成为虚函数 Java中其实没有虚函数的概念,它的普通函数就相当于C++的虚函数,动态绑定是Java的默认行为。如果Java中不希望某个函数具有虚函数特性,可以加上final关键字变成非虚函数 PS: 其实C++和Java在虚函数的观点大同小异,异曲同工罢了转载 2016-09-22 19:54:46 · 345 阅读 · 0 评论 -
char和byte的区别
原文 http://blog.csdn.net/luoweifu/article/details/7770588 byte 是字节数据类型 ,是有符号型的,占1 个字节;大小范围为-128—127 。char 是字符数据类型 ,是无符号型的,占2字节(Unicode码 );大小范围 是0—65535 ;char是一个16位二进制的Unicode字符,JAVA用char来表示一个字符 。转载 2016-09-24 10:26:44 · 215 阅读 · 0 评论 -
protected、try...finally
class A{ protected int val; public A(int i){ this.val = i; } public int getValue(){ try{ val += 10; return val; }finally{ Sys原创 2016-09-24 11:22:43 · 129 阅读 · 0 评论 -
多个构造器参数
当类需要扩展大量的可选参数时,有以下几种选择: (1)构造多个构造器 优点:保证构造过程中安全。 缺点:缺乏可读性且客户端代码很难编写。(2)JavaBean模式 优点:可读性好且容易扩展。 缺点:类无法仅仅通过检查构造器参数的有效性来保证一致性,会造成调试上的困难阻止了把类做成不可变的可能,这就需要程序员付出额外的努力来保证它的线程安全(3)Builder模式 例子:public原创 2016-09-25 11:38:14 · 462 阅读 · 0 评论 -
Switch语句注意事项
(1)expression的类型只能是int、byte、char和short(本质上都是int,其他是指通过类型转换所得) (2) int a=2; int i=0; switch(a){ case 1:i++;break; case 2:i++;break; case 3:i++原创 2016-09-22 18:34:43 · 653 阅读 · 0 评论 -
通过私有化构造器强化不可实例化的能力
有时候,可能需要编写只包含静态方法和静态域的类。如利用这些类,以java.lang.Math或者java.util.Arrays的方式,把基本类型的值或者数组类型的相关方法组织起来。 这些工具类不希望被实例化,实例化它们没有任何意义。但是由于存在缺省构造器的情况。 为了避免上述情况,我们可以通过私有化构造器使得该类的外部无法访问它。但是有一个副作用,就是该类无法子类化。原创 2016-09-25 16:16:41 · 271 阅读 · 0 评论 -
Java参数传递
Java只有值传递。当一个对象作为参数传递到方法中时,只是将内存地址拷贝一份过去,并不是引用传递。详情参见: http://blog.sina.com.cn/s/blog_4b622a8e0100c1bo.html原创 2016-11-23 10:01:09 · 208 阅读 · 0 评论