您现在的位置是: 首页 > 个人博客 > 据说是一道华为Java面试题 个人博客
据说是一道华为Java面试题
2018-12-26 11:12:31
【问答】1926人已围观
简介 请问下面程序将会输出什么?程序如下:public class Test { class A{ private static final int m = 10; public A(){ change(); } public void change(){ System.ou......
请问下面程序将会输出什么?程序如下:
public class Test { class A{ private static final int m = 10; public A(){ change(); } public void change(){ System.out.println(m); } } class B extends A{ private static final int num = 20; public void change(){ System.out.println(num); } } }
输出测试:
public class Test2 { public static void main(String[] args) { new Test().new B(); } }
结果公布,最终会输出:20,为什么?分析一下继承的初始化顺序。
继承的初始化顺序一般如下:
父类的静态变量-->父类的静态代码块-->子类的静态变量-->子类的静态代码快-->父类的非静态变量(父类的非静态代码块)-->父类的构造函数-->子类的非静态变量(子类的非静态代码块)-->子类的构造函数
值得注意的是:父类的非静态变量(父类的非静态代码块)是同一级的,看哪个部分写在类的最前面谁就先被执行,子类的非静态变量(子类的非静态代码块)也是一样。
所以这道题,实例化一个子类,首先会去执行父类的构造方法,执行构造方法中的函数change,但是由于change函数被子类重写了,所以执行的将是子类的change,所以会输出20;
但是,如果我们把子类的中的
private static final int num = 20;
改为
private int m = 20;
那么结果又会输出什么呢?结果是0,因为在父类的构造方法中调用子类的change方法输出num的时候,num作为一个实例变量,这时候还没有被实例化赋值,所以取得是初始值0。
上一篇: 有趣的Java字符串
相关文章
随机图文
sqlserver卸载详细步骤图解
sqlserver的安装过程还是稍微有点复杂的,同学们很容易在安装过程中,因为各种原因导致安装失败。 下面我们就针对sqlserver2008-r2,来详细介绍sqlserver的卸载步骤。 首先找到控制面板的卸载程序,在程序列表中找到我们此次的目标【Microsoft SQL Server 2008 R2】,右键选卸载。 点击“删除”按钮 按常理会出现如下图,如果“重新启动计算机”一栏显示未通过,则重启计算机,在重复上面的步骤。 如果全部显示已通过,则点击“确定”进入下一步。 接下来,点击下一步 全部勾选,接着点击“下一步” 下一步 点击“删除”按钮 等待删除卸载,过程大概20-30分钟 删除完成,点击关闭。 接着在继续卸载2008的其他组件--Native Client 卸载完成,界面会自动关闭 接着卸载Compact组件,卸载完成,界面也会自动消失。 到这里控制面板的卸载就已经完成了,接下来,我们还需要删除历史安装遗留目录,主要是以下两个目录。 C:\Program Files\Microsoft SQL Server C:\Program Files (x86)\Microsoft SQL Server 历史安装目录删除完毕之后,我们还需要删除注册表的一些东西,主要是以下几个地方。 删除所有sqlserver相关的注册表值。 Win+R,在搜索框中输入指令regedit,进去注册表。 1.HKEY_CURRENT_USER\ Software\ Microsoft\ Microsoft SQL Server 2.HKEY_LOCAL_MACHINE\SOFTWARE\ Microsoft\ Microsoft SQL Server(这个地方注意了,在这个附近,有可能有你安装的部分组件的注册嘛,名字前缀都是Microsoft SQL,一并删除了。) 3.HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\ MSSQLServer 还有最后一个比较特殊的: 4.HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager中的PendingFileRenameOperations 全部清除干净之后,重新启动电脑,后面就可以再次进行过安装了。good luck!sqlserver2008-r2详细安装步骤图解
sqlserver安装还是稍微有点麻烦的,步骤比较多,很容易出错,下面详细介绍sqlserver2008-r2的详细安装步骤。 sqlserver2008-r2百度网盘下载链接:https://pan.baidu.com/s/1fo261JzvkbFbu75KI3ahBA 提取码:g9hw sqlserver2008-r2的下载 sqlserver解压,第一次解压得到一个iso镜像文件,在对镜像文件进行右键解压,得到最终的安装文件。 双击setup.exe开始执行安装 选择安装-全新安装或向现有安装添加功能 全部通过后,点击确定 输入产品密钥,下一步 接受条款,下一步 点击安装 正在执行安装,请耐心等待 全部通过后,点击下一步 保持默认,点击下一步 功能全选 点击下一步 下一步 下一步 下一步 点击【对所有SQL Server服务使用相同的账户】按钮 选择第二个选项,不要设置密码,在点击确定 下一步 选择混合模式、设置数据库密码(该密码尽量简单,方便记忆,后面程序中需要用到,请牢记)、添加当前用户,下一步 添加当前用户 保持默认,下一步 下一步 下一步 点击【安装】按钮 安装中.......该过程比较久,请耐心等待,整个过程大概40-50分钟左右。 安装完成-关闭 good luck。。。。。mysql详细安装步骤图解
MySQL的安装记住一句话:有executor的就点击进行,没有的就next,要装的插件点yes装。由于大多数人可能没有接触过mysql数据库,不太清楚mysql的安装步骤,下面详细演示mysql的安装步骤:mysql百度网盘下载链接: 链接:https://pan.baidu.com/s/1PObOxF0CCKIgg9kzIFDnkA 提取码:zq1jmysql官网下载地址:https://dev.mysql.com/downloads/installer/5.6.html mysql下载 双击mysql安装包执行安装 有些同学电脑点击安装之后会跳出如下界面,这是因为缺少.NET插件。 请到如下网址,直接点击下载插件安装。安装完成之后,电脑重启。 https://www.microsoft.com/en-us/download/details.aspx?id=42642 以上插件安装成功之后(没有出现上面问题的同学,请忽略上面的步骤),再次点击双击安装包开始安装mysql. 勾选协议条款,开始安装 保持默认,点击Next进行下一步安装 点击Execute进行组件检查,安装必须组件。有些学生安装的时候,可能没有下面这么多组件,不要惊慌,依旧正常进行下面的安装。 依旧记住:有executor的就点击进行,没有的就next,要装的插件点yes装。 组件安装完成之后,点击Next进行下一步 点击Yes,下一步 点击Execute正式安装mysql所有组件 mysql组件全部安装完成,点击Next进行下一步。这里需要注意,可能有个别组件安装失败,比如ODBC,没有关系,还是点击Next,下一步。 点击Next下一步 保持默认,点击Next进入下一步 设置数据库密码,简单就好,该密码请务必记住,后面程序中需要用到。 mysql服务名设置,第一次安装保持默认就好;如果是重装,该服务名可能已经存在,需要修改,不修改不让进行下一步。 点击Execute进行配置 到这一步,理论上mysql已经装完了。点击Finish 点击Next,下一步。 mysql密码校验 继续点击Execute mysql全部安装完成 我们一般使用navicat数据库可视化工具,不使用Workbench,取消勾选,点击Finish结束安装javaweb+mysql项目部署教程
一.必备软件java运行环境:jdkjava开发编辑器:eclipse数据库:mysql数据库可视化工具:navicat for mysql或者navicat premium web服务器:tomcat以上软件请务必全部下载安装,请到我的百度网盘里下载!二.软件安装1.jdk配置 首先安装好jdk,我一般使用1.8版本的jdk。配置好JDK环境变量。 jdk下载,包含jdk1.7和jdk1.8,32位(i586)和64位(x64),现在电脑操作系统一般都是64位的,建议下载64位的。 请看清楚再下载,下载地址如下: 百度网盘下载链接:https://pan.baidu.com/s/1O2eHQ83LB4SmDI7ivTKApA 提取码:0cdj 或者官网下载: jdk1.7下载,下载需要登录oracle账户,地址如下: https://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html jdk1.8下载,地址如下 https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 安装参考文档如下: http://www.xiaoniucr.com/article/view/9.html2.安装eclipse 我一般使用mar2版本。请自行选择32位或者64位下载。win32-x86_64的就是64位的,win32的就是32位的。 现在电脑操作系统一般都是64位的,所以请下载64位的。 百度网盘下载链接:https://pan.baidu.com/s/14Fo2b4znVPF6JrEmcZyc1Q 提取码:cwoc 官网下载地址如下: http://www.eclipse.org/downloads/packages/release/mars/2/eclipse-ide-java-ee-developers eclipse为免安装软件,下载到某个目录,解压就好了,发送快捷方式到桌面。 注意eclipse的版本必须和JDK版本一致,即eclipse必须保持和JDK同时是 32位或者64位,否则会打不开或者报错。3.mysql安装 mysql我使用的是5.7.24的版本。现提供5.6.42和和5.7.24安装版本的下载地址。 建议下载mysql-installer-community-5.7.24.0.msi安装版本,按照步骤一步步执行安装。 mysql百度网盘下载链接: 链接:https://pan.baidu.com/s/1PObOxF0CCKIgg9kzIFDnkA 提取码:zq1j mysql官网下载地址:https://dev.mysql.com/downloads/installer/5.6.html mysql安装教程参考:http://www.xiaoniucr.com/article/view/10.html 安装过程中请记住自己的数据库用户名和密码,项目配置需要用到。 由于部分同学第一次安装过程中出现失误,需要完全卸载mysql进行再次安装,mysql完全卸载比较费劲,参考步骤如下: mysql卸载参考:http://www.xiaoniucr.com/article/view/13.html4. eclipse配置tomcat tomcat版本一般选择8.0.47的版本。请下载8.0.47的版本。 tomcat为免安装版本,下载之后无需安装,直接解压到某个盘的根目录即可。 tomcat百度网盘下载链接:链接:https://pan.baidu.com/s/1eChKbCVH7_u7csyQSvlAoQ 提取码:zmoa tomcat官网下载链接:http://tomcat.apache.org/download-70.cgi 配置参考地址:http://www.xiaoniucr.com/article/view/7.html二.项目配置1.项目导入 File → Import → General → Existing Project Into Workspace2. 项目配置 选中项目,右键→Properties→Java Build Path,检查项目是否存在Jar包缺失,一般不会存在,以防万一。3. 项目乱码问题 一般来说,项目不会存在乱码问题,如果存在中文乱码,请修改编码,操作如下:选中项目,右键→Properties→Resource,text file encodeing,选择对应的编码格式,一般来说都是utf-8。五.详细部署教程 详细部署教程,见下面演示视频: Note:项目在第一次成功部署后,下次启动,请注意:
点击排行
