随笔分类 -  Java基础知识

摘要:(1)final用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。内部类要访问局部变量,局部变量必须定义成final类型,比如一段代码 (2)finally是异常处理语句结构的一部分,表示总是执行。 (3)finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被 阅读全文
posted @ 2018-10-09 10:08 司徒骏 阅读(303) 评论(0) 推荐(0)
摘要:JVM内存区域分为五个部分,分别是堆,方法区,虚拟机栈,本地方法栈,程序计数器。 堆。 堆是Java对象的存储区域,任何用new字段分配的Java对象实例和数组,都被分配在堆上,Java堆可使用-Xms -Xmx进行内存控制,值得一提的是从JDK1.7版本之后,运行时常量池从方法区移到了堆上。 方法 阅读全文
posted @ 2018-10-08 22:29 司徒骏 阅读(3597) 评论(1) 推荐(0)
摘要: 阅读全文
posted @ 2018-10-04 15:27 司徒骏 阅读(110) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2018-10-04 15:15 司徒骏 阅读(129) 评论(0) 推荐(0)
摘要:接口(interface)可以说成是抽象类的一种特例,接口中的所有方法都必须是抽象的。接口中的方法定义默认为public abstract类型,接口中的成员变量类型默认为public static final。另外,接口和抽象类在方法上有区别: 1.抽象类可以有构造方法,接口中不能有构造方法。 2. 阅读全文
posted @ 2018-10-04 14:44 司徒骏 阅读(165) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2018-09-24 11:30 司徒骏 阅读(443) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2018-09-23 13:33 司徒骏 阅读(509) 评论(0) 推荐(0)
摘要:对于外部类来说,只有两种修饰,public和默认(default),因为外部类放在包中,只有两种可能,包可见和包不可见。 对于内部类来说,可以有所有的修饰,因为内部类放在外部类中,与成员变量的地位一致,所以有四种可能。 阅读全文
posted @ 2018-09-23 13:05 司徒骏 阅读(314) 评论(0) 推荐(0)
摘要:单一职责原则(SRP)开放封闭原则(OCP) 里氏替换原则(LSP) 依赖倒置原则(DIP) 接口隔离原则(ISP) 阅读全文
posted @ 2018-09-21 17:19 司徒骏 阅读(106) 评论(0) 推荐(0)
摘要:1、相同点:Session.load/get方法均可以根据指定的实体类和id从数据库读取记录,并返回与之对应的实体对象。 2、区别在于: (1)如果未能发现符合条件的记录,get方法返回null,而load方法会抛出一个ObjectNotFoundException。 (2)Load方法可返回实体的 阅读全文
posted @ 2018-09-19 13:48 司徒骏 阅读(189) 评论(0) 推荐(0)
摘要:volatile本质是在告诉jvm当前变量在寄存器中的值是不确定的,需要从主存中读取,synchronized则是锁定当前变量,只有当前线程可以访问该变量,其他线程被阻塞住. volatile仅能使用在变量级别,synchronized则可以使用在变量,方法. volatile仅能实现变量的修改可见 阅读全文
posted @ 2018-09-18 12:02 司徒骏 阅读(142) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2018-09-18 11:48 司徒骏 阅读(524) 评论(0) 推荐(0)
摘要:语言跨平台是编译后的文件跨平台,而不是源程序跨平台。Java源代码首先经过编译器生成字节码,即class文件,该class文件与平台无关,而class文件经过解释执行之后翻译成最终的机器码,这是平台相关的。 阅读全文
posted @ 2018-09-18 11:39 司徒骏 阅读(292) 评论(0) 推荐(0)
摘要:方法名相同,参数类型相同 子类返回类型小于等于父类方法返回类型, 子类抛出异常小于等于父类方法抛出异常, 子类访问权限大于等于父类方法访问权限。 阅读全文
posted @ 2018-09-18 11:34 司徒骏 阅读(745) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2018-09-17 19:18 司徒骏 阅读(224) 评论(0) 推荐(0)
摘要:按照先后顺序: 1,静态先于非静态代码库执行(静态代码块随着类的加载而加载,初始化只执行一次) 2,父类先于子类 3,非静态代码块优于构造函数执行 所以执行顺序如下: 父类B静态代码块->子类A静态代码块->父类B非静态代码块->父类B构造函数->子类A非静态代码块->子类A构造函数 阅读全文
posted @ 2018-09-17 19:12 司徒骏 阅读(2683) 评论(0) 推荐(0)