0074 几道面试题

昨天参加了惠装网的面试,有些题不会做的,记录下来

switch语句能否作用在byte、long、String上

Java1.7以前:byte、short、int、char
Java1.7开始:新增String
因此switch语句不能作用在long上,看下面代码:

public class Test {public static void main(String[] args)  {long b=126L;                            //将b的类型改为byte、short、int、char都可以正常执行switch(b){                              //b类型为long时,提示编译错误:Incompatible Types,Found"long", required "byte、short、int、char"case 125:System.out.println("A");break;case 126:System.out.println("B");break;case 127:System.out.println("C");break;}}
}

Java中如何跳出当前的多重嵌套循环

先看代码:

public class Test {public static void main(String[] args)  {lable1:for(int i=0;i<8;i++) {                                   //循环1System.out.println("i= "+i);    lable2:for(int j=0;j<5;j++) {                               //循环2System.out.println("    j= " + j);  lable3:for(int m=0;m<2;m++) {                           //循环3if (j == 2) {System.out.println("    j==2  break lable2;");break lable2;                                   //j==2时,退出循环2,也就是上层循环}System.out.println("        m= " + m);}}}}
}

break语句一般只能退出当前循环
嵌套循环中如果要退出上面几层的循环,那得先给该层循环定义一个标签,在break语句处指定标签名即可
注意的是,break只能退出包含了这个break语句的代码块,包括直接和间接的
break除了可用于退出嵌套循环,实际上可用于用标签定义的代码块,比如下面这样

public class Test {public static void main(String[] args)  {lable1:{lable2:{lable3:{for(int i=0;i<=3;i++) {if (i==2) {break lable2;}else{System.out.println("i=  " + i);}}}System.out.println("lable2的输出,不会被执行");}System.out.println("lable3的i==2,终止lable2的执行");}}
}

HashTable与HashMap的区别

同步:HashTable的方法是同步的,而HashMap不是
null:HashTable的key和value都不能有null,而HashMap的key可以有一个null,value可以有多个null
遍历:HashTable和HashMap都有values()、entrySet()、keySet()方法返回key的集合进行遍历,但HashTable多了个elements()方法,可以返回Enumeration对象进行遍历
hash值:HashTable直接使用Object的hashCode()的返回值,但HashMap还要进行一番计算
数组大小:HashTable默认大小是11,增加方式是2*old+1; 而HashMap默认是16,成倍增加
参考:http://blog.csdn.net/tianfeng701/article/details/7588091

hashCode()方法的作用

在HashMap、HashTable等集合类中,用于确定元素的存放位置,可以实现快速查找

其他: 两个对象equals那么其hashCode一定要想等,反过来,hashCode相等,不一定equals,一个桶里可以放多个不equals的对象

序列化接口的id有什么用

可以将一个对象保存到硬盘或者在网络上传输,这就需要对象的序列化。
查看Java标准库中的类,很多都有一个“serialVersionUID”的属性,比如HashMap是这样的:

private static final long serialVersionUID = 362498820763181265L;

这个serialVersionUID的作用是什么呢?
就是为了保证对象在反序列化后的类跟序列化前的类能够兼容。谁知道一个对象序列化后多久会反序列化呢,几秒、几天还是几年,万一反序列化的时候,原来的那个类进行了很多修改呢,还能反序列化为那个类型吗?
简单的说,这个id就是为了版本的兼容性。
那么如何指定这个id呢?
如果不特别指定,那系统会根据这个类的成员变量等信息计算一个hash。这种情况下,如果一个类后来增加删除了几个属性,就很可能导致反序列化的失败。因此最好还是自己指定一个id。
是不是id相同,就一定能反序列化成功呢?不是。如果那个类进行了一些非兼容性改动,那即使id相同,也会失败。

构造器是否能被重写

不能。构造器不能被继承,不能被重写。可以重载

Java中是否存在内存泄漏

Java有垃圾回收机制,不可达对象都会被垃圾回收器自动回收,一般而言,不会出现内存泄漏,但还是有可能的。
如果内存中存在大量的无用但可达的对象、长生命周期对象持有短生命周期对象,内存就可能会爆掉。考虑这两种情况

  1. 一个类的静态属性指向了一个集合对象,而这个对象还会持续增大。
  2. 一个单例类持有外部对象的引用,这些外部对象在这个单例类的生命期内都是可达的,如果这些外部对象特别大或者持续增长而不能减小。

转载于:https://www.cnblogs.com/sonng/p/7246238.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/252218.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot入门之内嵌Tomcat配置

spring boot默认web程序启用tomcat内嵌容器tomcat&#xff0c;监听8080端口,servletPath默认为 / 。需要用到的就是端口、上下文路径的修改&#xff0c;在spring boot中其修改方法极其简单&#xff0c;实例如下&#xff1a; server.port8088 server.context-path/test 启动程序…

第二十二章:动画(六)

复合动画您可以混合等待和未等待的调用来创建复合动画。 例如&#xff0c;假设您希望按钮在大小扩展的同时旋转360度然后收缩。ViewExtensions类定义一个方法名称ScaleTo&#xff0c;它为Scale属性设置动画&#xff0c;就像RotateTo为Rotate属性设置动画一样。 Button大小的扩展…

C#操作Excel总结

0. 导入命名空间&#xff1a; 1234using Microsoft.Office.Core;using Microsoft.Office.Interop.Excel;using System.IO;using System.Reflection;1. 如何打开已有excel文档&#xff0c;或者创建一个新的excel文档 123Application app new Application();Workbooks wbks app…

Ubuntu16.04用源安装Nginx+PHP5.6+MySQL5.6

安装Nginx 1、首先添加nginx_signing.key(必须&#xff0c;否则出错) $ wget http://nginx.org/keys/nginx_signing.key$ sudo apt-key add nginx_signing.key 2、添加]Nginx](http://nginx.org/)官方提供的源 $ echo "deb http://nginx.org/packages/ubuntu/ trusty ngin…

leetcode -39组合总数

搜就完事了&#xff0c;没想着优化。唉~太菜&#xff0c;给一个位置标记位置&#xff0c;然后通过该位置向该位置及该位置以下寻找&#xff0c;这样不存在什么重复回去查找问题。 如果总结大于目标值&#xff0c;回溯一下&#xff0c;如果不大于继续。 class Solution { public…

避免某个子窗体重复运行的方法(showdialog、show)

在C#中窗口的显示有两种方式&#xff1a;模态显示&#xff08;showdialog&#xff09;和非模态显示&#xff08;show&#xff09;。 二者最常见的区别是&#xff1a;模态显示后&#xff0c;弹出窗口阻止调用窗口的所有消息响应。只有在弹出窗口结束后调用窗口才能继续。在模态窗…

ubantu之Git使用

本文讲述在Ubuntu 14.04 x64环境下&#xff0c;如何安装Git&#xff0c;配置连接GitHub&#xff0c;并且上传本地代码到github。 一. 注册Git账户以及创建仓库 要想使用github第一步当然是注册github账号了。之后就可以创建仓库了&#xff08;免费用户只能建公共仓库&#xff0…

Java中基础数据类型分类

Java中的四类八种基本数据类型 第一类&#xff1a;整数类型 byte short int long &#xff08;int是整形&#xff0c;也属于整数类型&#xff09; 第二类&#xff1a;浮点型 float double 第三类&#xff1a;逻辑型 boolean(它只有两个值可取true false) 第四类&#xff1…

C#如何打包EXE程序生成setup安装文件

C#如何打包EXE程序生成setup安装文件作为研发人员&#xff0c;在本机上开发的winform wpf或者控制台程序需要发给其他人测试时候&#xff0c;一般需要对其进行打包生成setup安装文件&#xff0c;今天第一次&#xff0c;搜了下资料&#xff0c;记录如下&#xff1a;注&#xff1…

PHP正则表达式

php正则表达示的定界符 PHP的正则表达示定界符的规定如下&#xff1a; 定界符&#xff0c;不能用a-z A-Z 0-9 其他的都可以用。必须成对出现&#xff0c;有开始就有结束。 我们来例几个例子&#xff1a; /中间写正则/ 正确%中间写正则% 正确^中间写正则^ 正确中间写正则 正确(…

最具戏剧性的分析诊断案例——十分钟锁定数据库性能“元凶”

昨天&#xff0c;正好有点空时间想看看书&#xff0c;结果&#xff0c;刚打开书&#xff0c;没看几个字儿&#xff0c;接到用户电话说&#xff1a;一个库有问题&#xff0c;希望能帮忙看下。因为我知道他们那边也有自己的专职DBA&#xff0c;于是问&#xff1a;没让人给看看吗&…

Python黑科技:在家远程遥控公司电脑,python+微信一键连接!

有时候需要远程家里的台式机使用&#xff0c;因为我平时都是用 MAC 多&#xff0c;但是远程唤醒只能针对局域网&#xff0c;比较麻烦&#xff0c;于是我想用微信实现远程唤醒机器。 *注意&#xff1a;全文代码可左右滑动查看 准备工作 本程序主要是实现远程管理 Windows10操作系…

c#通过app.manifest使程序以管理员身份运行

通常我们使用c#编写的程序不会弹出这个提示&#xff0c;也就无法以管理员身分运行。微软的操作系统使用微软的产品方法当然是有的&#xff0c;通过app.manifest配置可以使程序打开的时候&#xff0c;弹出UAC提示需要得到允许才可以继续&#xff0c;这样就获得了管理员的权限来执…

Oracle 作业

Oracle 作业 dbms_job与 dbms_scheduler 用于安排和管理作业队列,通过使用作业,可以使ORACLE数据库定期执行特定的任务。 一. dbms_job 1.1. 创建 variable jobno number; begin dbms_job.submit(:jobno,proce_t;, sysdate, sysdate1/24/60); commit; end; / 1.2. 参数 Job 输出…

企业级 Spring Boot 教程 (十四)用restTemplate消费服务

构架工程 创建一个springboot工程&#xff0c;去消费RESTFUL的服务。这个服务是 http: ///gturnquist-quoters.cfapps.io/api/random &#xff0c;它会随机返回Json字符串。 Spring Cloud大型企业分布式微服务云架构源码请加一七九一七四三三八零 在Spring项目中&#xff0c;它…

MOS管基本认识(快速入门)

1. 三个极的判定G极(gate)—栅极&#xff0c;不用说比较好认 S极(source)—源极&#xff0c;不论是P沟道还是N沟道&#xff0c;两根线相交的就是 D极(drain)—漏极&#xff0c;不论是P沟道还是N沟道&#xff0c;是单独引线的那边2. N沟道与P沟道判别箭头指向G极的是N沟道 箭头背…

基础构建模块

5 基础构建模块 Java平台类库包含了丰富的并发基础构建模块&#xff0c;例如线程安全的容器类以及各种用于协调多个相互协作的线程控制流的同步工具类(Synchronizer)。本章将介绍其中一些最有用的并发构建模块。 5.1同步容器类 同步容器类包括Vector和Hashtable&#xff0c;二者…

TCP定时器

1. TCP中7种定时器 TCP中有7中定时器 &#xff08;1&#xff09;建立连接定时器(connection-establishment timer) &#xff08;2&#xff09;重传定时器(retransmission timer) &#xff08;3&#xff09;延迟应答定时器(delayed ACK timer) &#xff08;4&#xff09;坚持定时…

sql优化大全

1. 优化SQL步骤 1. 通过 show status和应用特点了解各种 SQL的执行频率 通过 SHOW STATUS 可以提供服务器状态信息&#xff0c;也可以使用 mysqladmin extende d-status 命令获得。 SHOW STATUS 可以根据需要显示 session 级别的统计结果和 global级别的统计结果。 如显示当前s…

Halcon实现边缘提取

一、边缘提取 1、设置ROI兴趣区域 2、快速二值化&#xff0c;并连接相邻区域。 这样做的目的是进一步减少目标区域&#xff0c;通过二值化将目标区域大概轮廓提取出来 3、提取最接近目标区域的轮廓 常用函数有boundary&#xff0c;gen_contour_region_xld 4、根据自己的需求提取…