今天来研究一下含继承.静态成员.非静态成员时Java程序的执行顺序: 一.不含继承,含有静态变量.静态代码块 创建一个子类,该类包含静态变量.静态代码块.静态方法.构造方法 /** * @createtime 2017年3月17日 下午5:17:02 * @description 创建一个子类 */ public class Son{ public static String name = "子类name"; public static long date = new Date().g…
今天来说一波自己对Java中抽象类和接口的理解,含参考内容: 一.抽象类 1.定义: public abstract class 类名{} Java语言中所有的对象都是用类来进行描述,但是并不是所有的类都是用来描述对象的.我所理解的抽象类其实就是对同一类事物公共部分的高度提取,这个公共部分包括属性和行为.比如牛.羊.猪它们的公共属性是都有毛,公共行为是都哺乳,所以我们可以把公共部分抽象成一个哺乳类,含有属性毛和行为哺乳,当牛.羊.猪继承了哺乳类后也就有了哺乳的功能,至于怎么完成这个功能就需要自己…
今天看到一篇名为<Java开发岗位面试题归类汇总>的博客,戳进去看了一下题目,觉得有必要夯实一下基本功了,所以打算边学边以博客的形式归纳总结,每天一道题, 并将该计划称为java问题解读系列,今天的题目是:String类为什么是final的? 在回答这个问题之前,我觉得有必要搞清楚final到底是个什么? 一.理解final 望文生义,final意为“最终的,最后的”,我理解为“不能被改变的”,它可以修饰类.变量和方法. 所以我是否可以理解为被它所修饰的类.变量和方法都不能被改变呢?答案是”是…
前几天和棒棒童鞋讨论Java(TA学的是C++)的时候,他提到一个浅拷贝和深拷贝的问题,当时的我一脸懵圈,感觉自己学Java居然不知道这个知识点,于是今天研究了一番Java中的浅拷贝和深拷贝,下面来做一下总结: 一.定义 调研过程中发现普遍的解释如下: 我在用代码实战之后总结出的定义是: 浅拷贝,就是创建了一个新对象,这个新对象以及新对象中的基本类型都被分配了新的存储空间,从此与原对象毫无瓜葛:但是原对象中的引用类型没有被分配新的空间,新对象和原对象都指向同一片内存,任何一方的改变都会影响到对方…
今天的题目是String.StringBuffer和StringBuilder的区别: 首先还是去官方的API看看对这三种类型的介绍吧,Go...... 一.继承类和实现接口情况 1.String类 public final class String extends Object implements Serializable, Comparable<String>, CharSequence 2.StringBuffer类 public final class StringBuffer ex…
今天的题目是:String类的常用方法? 首先,我们在eclipse中定义一个字符串,然后使用alt+/就会出现String类的所有方法,如下图所示: 下面我就挑选一些常用的方法进行介绍: 首先定义两个字符串 String path1 = "C:\\Windows\\Web\\Wallpaper\\Windows\\img0.jpg"; String path2= " C:\\Windows\\Web\\Wallpaper\\Windows\\img0.jpg ";…
最近面试遇到一个之前也看到过但没去看一下的问题.就是有return情况下的try,catch,finally的执行顺序. 今天写了下. 先看顺序问题.总结如下: 一:finally中没有写return: 1.不管有没写catch,也不管有没异常,不管try与catch内有没有return,finally始终会执行. 2.finally是在return后面的表达式运算后执行的,此时的i值会被保存(finally不做return,其他变化i值的操作不会产生结果),所以此时返回值是在finally执行…
java中子类继承父类程序执行顺序 FatherTest.java public class FatherTest { private String name; public FatherTest() { System.out.println("--父类的无参构造函数--"); } public FatherTest(String name) { this.name = name; System.out.println("--父类的有参构造函数--" + this.…
1.单独的父类测试 Java中,new一个类的对象,类里面的静态代码块.非静态代码.无参构造方法.有参构造方法.类的一般方法等部分, 它们的执行顺序相对来说比较简单,用程序也很容易验证. 比如新建一个测试父类. public class FatherTest { private String name; FatherTest(){ System.out.println("--父类的无参构造函数--"); } FatherTest(String name){ this.name=name…
Java与C++有一个不同之处在于,Java不但有构造函数,还有一个”初始化块“(Initialization Block)的概念.下面探究一下它的执行顺序与可能的用途. 执行顺序 首先定义A, B, C三个类用作测试,其中B继承了A,C又继承了B,并分别给它们加上静态初始化块.非静态初始化块和构造函数,里面都是一句简单的输出. 主类Main里面也如法炮制. class A { static { System.out.println("Static init A."); } { Sys…