您现在的位置是: 首页 > 个人博客 > 据说是一道华为Java面试题 个人博客
据说是一道华为Java面试题
2018-12-26 11:12:31
【问答】1824人已围观
简介 请问下面程序将会输出什么?程序如下: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字符串
相关文章
随机图文
jdk详细安装步骤图解
由于部分同学对jdk安装不是很熟悉,下面详细介绍jdk的安装步骤: jdk下载,包含jdk1.7和jdk1.8的32位(i586)和64位(x64),7u80就是1.7的jdk,8u191就是1.8的jdk;i586表示32位,x64表示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 安装参考文档如下: jdk优先选择1.8,一般是最后一个(64位操作系统) 双击exe程序执行安装 点击下一步,开始安装 设置安装路径 正在安装jdk jdk安装完之后,还需要安装jre,设置jre的安装路径 jre安装中 安装完成 jdk安装完之后,还需要配置环境变量,步骤如下: 环境变量配置,一共需要配置3个系统变量:JAVA_HOME,CLASSPATH,PATH。这里注意是系统变量哦!Win+R组合键之后,弹出一个运行窗口,在输入框中输入sysdm.cpl命令,会弹出一个系统属性的窗口,点击【高级】菜单,就可以看到下面的【环境变量】按钮,点击就可以弹出下面的环境变量配置窗口。 1.新建JAVA_HOME系统变量,输入值为你的jdk目录,我的是C:\Program Files (x86)\Java\jdk1.7.0_80 2.新建CLASSPATH系统变量,值为【.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar】,中括号中红色的一串文本。 3.Path变量,Path变量是已经存在的,这里只作修改。这里注意,Win7和Win10系统操作有点不一样。(谨慎操作,不要把path删了哦!),win7系统直接双击Path,在后面编辑添加变量信息,加上【%JAVA_HOME%\bin】,括号中的红色文本,复制粘贴上去就好了,不要忘了分号。如图:下面是win7的,直接在path后面粘贴进去就好了。 win10双击Path之后,会弹出一个【编辑环境变量】窗口,在窗口右上角点击【新建】,然后把要加的变量加进去就好了。 如图:下面是win10的,点击new,然后直接把【%JAVA_HOME%\bin】,中括号中的红色一串复制粘贴进去就好了,这里没有分号。 以上操作都完成之后,在cmd控制台中输入java -version,如果有jdk版本信息输出,则说明安装成功。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+sqlserver项目部署教程
一.必备软件 1. java运行环境:jdk 2. java开发编辑器:eclipse 3. 数据库:sqlserver2008-r2 4. 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.sqlserver安装 sqlserver一般安装sqlserver2008-r2版本的。 sqlserver2008-r2百度网盘下载链接:https://pan.baidu.com/s/1fo261JzvkbFbu75KI3ahBA 提取码:g9hw sqlserver2008-r2安装参考如下:http://www.xiaoniucr.com/article/view/15.html 由于sqlserver的安装步骤比较多,安装过程中容易出现失误,导致安装失败,下面提供卸载步骤: 步骤参考:http://www.xiaoniucr.com/article/view/14.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 → Existimg Project Into Workspace2. 项目配置 选中项目,右键→Properties→Java Build Path,检查项目是否存在Jar包缺失,一般不会存在,以防万一。3. 项目乱码问题 一般来说,项目不会存在乱码问题,如果存在中文乱码,请修改编码,操作如下:选中项目,右键→Properties→Resource,text file encodeing,选择对应的编码格式,一般来说都是UTF-8。四.数据库配置1.sqlserver数据库附加 安装完sqlserver后,登陆数据库系统,选中数据库,右键→附加→添加.sql文件→确定,这样就导入了sql。 教程参考:http://www.xiaoniucr.com/article/view/18.html五.详细部署教程 详细部署教程,见如下演示视频: Note:项目在第一次成功部署之后,下次启动请注意:javase+sqlserver部署项目教程
很多刚接触编程的同学,还不清楚如何使用eclipse部署javase+sqlserver项目,这里作一个简单的介绍:##软件安装1.jdk配置 首先安装好jdk,我一般使用1.8版本的jdk。配置好JDK环境变量。 jdk下载,包含jdk1.7和jdk1.8,32位(i586)和64位(x64),请看清楚再下载,下载地址如下: 百度网盘下载链接: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位下载。 百度网盘下载链接: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.sqlserver安装 sqlserver一般安装sqlserver2008-r2版本的。 sqlserver2008-r2百度网盘下载链接:https://pan.baidu.com/s/1fo261JzvkbFbu75KI3ahBA 提取码:g9hw sqlserver2008-r2安装参考如下:http://www.xiaoniucr.com/article/view/15.html 由于sqlserver的安装步骤比较多,安装过程中容易出现失误,导致安装失败,下面提供卸载步骤: 步骤参考:http://www.xiaoniucr.com/article/view/14.html##项目导入 eclipse点击File→Import弹出如下选择框 点击next进行项目选择导入 选择完项目之后,最后点击Finish,项目就导入进了eclipse。 ##项目jdk配置 仅仅将项目导入到eclipse还不够,要运行这个项目,还必须为项目设置jdk环境,操作如下: 鼠标选中项目,右键Properties,跳出如下窗体: 点击edit跳出如下窗体,进行jre环境的选择: 选择完jdk之后,点击Apply应用,最后点击[OK]按钮,进行确认,这样jdk就设置好了,如下: ##数据库配置1.首先,导入数据库,步骤参考如下:http://www.xiaoniucr.com/article/view/18.html2.要想正确的连接sqlserver数据库,必须在代码中将数据库的用户名和密码配置,改为你的电脑安装的sqlserver的用户名和密码, 其中,用户名一般都为sa,不需要更改,密码为学生自己安装sqlserver时设置的密码。 具体如何操作,在项目源码包中【配置】文件夹下都会包含一份【详细配置.docx】文件,参照里面的数据库配置进行配置即可。 这里需要注意的是,数据库有两种连接方式,一种是在Windows系统上用windows身份登录, 另外一种是用sa身份登录,在程序中我们使用sa账户连接数据库。 ##项目启动 以上步骤都完成之后,就可以启动项目了,javase项目的启动,一般都是使用Run as Java Application的形式,操纵如下: 找到项目main方法所在的java类,然后右键Run as,选择Java Application的形式启动,即可。 详细操作见:【详细配置.docx】文件中的项目部署,里面都会详细告知。
点击排行
