Java常见面试题-1
问:
1 面向对象的特征有哪些方面?
2 访问修饰符public,private,protected,以及不写(默认)时的区别?
3 String 是最基本的数据类型吗? 对象类型 基本类型
4 float f=3.4;是否正确?
5 short s1 = 1; s1 = s1 + 1;有错吗?short s1 = 1; s1 += 1;有错吗?
6 Java有没有goto?
7 int和Integer有什么区别?
8 &和&&的区别? if( a>6 && a<100 )
9 switch 是否能作用在byte 上,是否能作用在long 上,是否能作用在String上?
10 用最有效率的方法计算2乘以8?
11 数组有没有length()方法?String有没有length()方法?
12 在Java中,如何跳出当前的多重嵌套循环?
13、构造器(constructor)是否可被重写(override)?
14、是否可以继承String类?
15、String和StringBuilder、StringBuffer的区别?
16、重载(Overload)和重写(Override)的区别。重载的方法能否根据返回类型进行区分?
17、char 型变量中能不能存贮一个中文汉字,为什么?
18、抽象类(abstract class)和接口(interface)有什么异同?
19、抽象的(abstract)方法是否可同时是静态的(static),是否可同时是本地方法(native),是否可同时被synchronized修饰? 是否能使final修饰的?
20、阐述静态变量和实例变量的区别。
21、是否可以从一个静态(static)方法内部发出对非静态(non-static)方法的调用?
22、接口是否可继承(extends)接口?抽象类是否可实现(implements)接口?抽象类是否可继承具体类(concrete class)?
23、一个".java"源文件中是否可以包含多个类(不是内部类)?有什么限制?
24、Java 中的final关键字有哪些用法?
25、Error和Exception有什么区别?
26、try{}里有一个return语句,那么紧跟在这个try后的finally{}里的代码会不会被执行,什么时候被执行,在return前还是后?
27、Java语言如何进行异常处理,关键字:throws、throw、try、catch、finally分别如何使用?
28、运行时异常和受检异常有什么区别?
29、列举一些常见的运行时异常?
30、final 和 finally finalize的区别?
答:
1:面向对象的特征有:继承、多态、封装;Java中面向对象的特征有:继承、多态、封装、抽象、接口等。
2:访问修饰符public、private、protected、以及不写时默认default的区别:作用域的不同(参考下表)
当前类 | 当前包 | 当前子类 | 其他包 | ||
public | √ | √ | √ | √ | |
protected | √ | √ | √ | ||
default | √ | √ | |||
private | √ |
3:Java中String不是基本数据累i系那个,属于对象类型,是object的子类。
4:Float f = 3.4; 不正确,编译器会报强制类型转换的错误,3.4默认的是Double类型而不是单精度浮点型float,float声明的时候需要在后面加F。
5:Short s1 = 1; s1 = s1 + 1;编译器会报强制类型转换的错误:int类型不能转换为short;s1 = s1 + 1;等式右边会发生类型的自动提升,转换才int,int不能隐式类型转换为short,故报错;short s1 = 1; s1 += 1;编译器正常运行,+=是Java中的运算符,s1 += 1在运行的时候会默认进行隐式类型转换,等于s1 = (short)(s1 + 1);故不报错。
6:Java中goto是保留字,但是没有使用。
7:int是Java提供的8中基本数据类型之一。Java为每个基本数据类型提供了封装类,integer是Java为int提供的封装类。int的默认是是0;而integer的默认值是null,即integer可以区分出未赋值和值为0的区别,int则无法表达出未赋值的情况。
8:&和&&都可用于逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式结果都为True时,整个运算结果才为True,如果有一方为False,则运算结果为False;&&还有短路的功能,如果第一个表达式结果为False,则第二个表达式不再运算,运算结果为False;&主要用于位运算;例如:If(a>6&&y++),a>6为False时,运算结果为False,y不会++;If(a>5&y++),a>6为False时还需判断y++是否为False,此时会报错,布尔值无法和int类型比较。
9:switch能作用在byte上,不能作用在long 和String 上。
10:2<<3
11:数组中没有length()方法,有length属性;String中有length()方法 。
12:额可在最外层的循环语句前定义一个标号,然后在里层循环体的代码中使用带有标号的break语句即可跳出外层循环。try-catch抛出异常也可以跳出循环;让外层循环体的条件表达式,可以受到里层循环体的控制也可跳出循环。
13:构造器(constructor)不能被继承,因此不能重写override,但是可以被重载overload。
14:String类是final类故不可以被继承。
15:StringBuff线程安全的可变字符序列;StringBuilder一个可变的字符序列;StringBuff和StringBuilder上的主要操作都是append和intert方法,可重载这些方法,以接受任意类型的数据。
16:overload重载表示同一类中可以有多个名称相同的方法,但这些方法的参数列表各不相同,而override重写指的是父类的方法满足不了子类的需求,子类可以重写父类的方法,参数列表和函数名相同,返回值的数据类型,子类的要比父类的的占位范围大,例如,父类是int类型的返回值,子类就不能为short、char、byte,子类可以为long等。
17:char字符型变量能存贮一个Unicode字符集里面的汉字, Java中的char字符型占位两个字节,而Unicode中的汉字也是两个字节。
18:抽象类中可以有普通函数,成员变量,抽象函数;而接口中只能有抽象函数;接口可以理解成是一种特殊的抽象类,抽象类中是继承,接口中是实现;
19:abstract方法不可同时是Static、Native;也不能使用final修饰。
20:在语法定义上的区别:静态变量前要加Static关键字,而实例变量钱则不加;在程序运行时的区别:实例变量必须创建了对象后才可以通过 这个对象来使用;静态变量则可以直接使用类名使用。
21:Static方法内部不可以发出对非Static方法的调用,因为非Static方法是要与对象关联在一起的,必须创建一个对象后,才可以在该对象上进行方法调用,而Static方法调用时不需要创建对象,可以直接用类名调用;也就是说,当一个Static方法被调用时,可能还没有创建 任何实例对象,如果从一个Static方法中发出对非Static方法的调用,那个非Static方法是关联到哪个 对象呢?这个逻辑无法成立,所以,一个Static方法不可以从内部发出对非Static方法的调用。
22:接口与接口之间是多继承的继承 关系,抽象类可以实现接口,类与接口之间是多实现的实现关系;抽象类可以继承具体的类,因为抽象类也是类,类与类之间是单继承的继承关系。
23:一个.java源文件可以包含多个类,但是只能有一个Public类,且类名与文件名一致。
24:Java中final关键字的用法:final修饰的类称之为最终类,被final修饰的类,不能被其他类继承;final修饰的函数,可以被子类调用,但是,不能被重写;final修饰的成员变量称之为常量(常量就是只能赋值一次,别且不能被修改)final修饰的常量 命名规范为:全大写+下划线 final修饰的成员变量赋值的时候只能在初始化的时候或则构造函数里;fianl修饰的静态变量只能在初始化的时候或静态代码块中赋值。
25:Error:程序级别的问题,不是代码出问题;Exception:代码级别的问题;
26:会被执行,在 try{ }里面的语句 运行至return时会接着运行finally里面的代码,如果finally里面也有return那么会返回finally里面return的值。
27:Java中进行异常处理的方式有两种:A 、继续抛,调用方在调用有异常的函数的时候,如果当前调用方的函数内部不想处理,则可以继续上抛,抛给当前函数的调用方,如果没有调用方想处理,都继续抛,此时最终会抛到JVM,JVM就会来处理本次异常--报错,终止程序;B、自己try 通过使用try-catch语句对 异常进行处理;throws是用在继续上抛时,在函数声明的参数小括号后面添加throws关键字,抛出具体的异常类;throw是政策抛出异常的格式,throw new 异常类( ); try-catch格式:try{ 有异常的代码块 }catch( 异常类 参数 ){ 对异常的处理 }我们catch可以写多个,每个都可以具体捕获不同的异常,然后对不同的异常进行处理;finally是接在try-catch后使用,fianlly后面的语句块,无论是否有异常都会执行。
28:可检异常:编译器要求必须处理,否则不能通过编译;运行时异常:编译期不会检查,所以在程序中可以不处理,但如果发生,会在运行时抛出。可检异常和 运行时异常都是属于Exception异常,是代码级别的异常。
29:数组下标越界异常(ArrayIndexOutOfBoundsException)空指针异常(NullPointerException)类型强制转换异常(ClassCaseException)算术异常类(AritheneticExecption)文件未找到异常(FileNotFoundException)
30:final和finally、finalize的区别:fianl用于声明属性、方法和类,分别表示属性不可变、方法不可覆盖,类不可继承;内部类要访问局部变量必须定义成final类型;finally是异常处理语句结构的一部分,表示总是执行;finalize是Object类的一个方法,在垃圾收集器执行的时候,会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。JVM不保证 此方法总被调用。
Java常见面试题-1的更多相关文章
- java常见面试题及答案 1-10(基础篇)
java常见面试题及答案 1.什么是Java虚拟机?为什么Java被称作是"平台无关的编程语言"? Java 虚拟机是一个可以执行 Java 字节码的虚拟机进程.Java 源文件被 ...
- java常见面试题及答案
java常见面试题及答案 来源 https://blog.csdn.net/hsk256/article/details/49052293 来源 https://blog.csdn.net/hsk25 ...
- Java 常见面试题(一)
1)什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”? Java虚拟机是一个可以执行Java字节码的虚拟机进程.Java源文件被编译成能被Java虚拟机执行的字节码文件.Java被设 ...
- 【转载】JAVA常见面试题及解答(精华)
JAVA常见面试题及解答(精华) 1)transient和volatile是java关键字吗?(瞬联) 如果用transient声明一个实例变量,当对象存储时,它的值不需要维持.例如: ...
- JAVA常见面试题问题简述(持续更新中)
JAVA常见面试题问题简述 1. springcloud和dubbo的区别 ①相比之下springcloud 的社区会更加活跃,解决问题的速度也会越来越快,dubbo相对来说如果碰到没有解决的问题,就 ...
- java常见面试题总结2
JAVA必背面试题和项目面试通关要点 简单来讲,equals方法主要是用来判断从表面上看或者从内容上看,2个对象是不是相等. 一 数据库 1.常问数据库查询.修改(SQL查询包含筛选查询.聚合查询和链 ...
- Java常见面试题(含答案)
第一,谈谈final, finally, finalize的区别. final?修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承.因此一个类不能既被声明为 ...
- java常见面试题
JAVA相关基础知识 1.面向对象的特征有哪些方面 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分 ...
- JAVA常见面试题及解答
JAVA相关基础知识1.面向对象的特征有哪些方面 1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分,暂时 ...
- Java常见面试题总结
一.Java基础 1.String类为什么是final的. 2.HashMap的源码,实现原理,底层结构. 3.说说你知道的几个Java集合类:list.set.queue.map实现类咯... 4. ...
随机推荐
- 从JavaScript到Python之异常
不少前端工程师看到这个标题可能会产生质问: 我js用得好好的,能后端能APP,为什么还要学习Python? 至少有下面两个理由: 学习曲线.ES6之后的JavaScript(TypeScript)的在 ...
- 数据结构-二叉搜索树和二叉树排序算法(python实现)
今天我们要介绍的是一种特殊的二叉树--二叉搜索树,同时我们也会讲到一种排序算法--二叉树排序算法.这两者之间有什么联系呢,我们一起来看一下吧. 开始之前呢,我们先来介绍一下如何创建一颗二叉搜索树. 假 ...
- dotnetcore 与 hbase 之二——thrift 客户端的制作
说明 在上一篇文章dotnetcore 与 hbase 之一--hbase 环境准备结束后,我们已经有了 hbase 数据库环境.接下来就可以利用 thrift 生成 c# hbase 客户端了.如果 ...
- Java枚举类型 enum
定义 An enum type is a special data type that enables for a variable to be a set of predefined constan ...
- Paxos算法原理
1.从ACID到CAP 我们知道传统集中式系统中实现ACID是很简单的,在分布式环境中,涉及到不同的节点,节点内的ACID可以控制,那么节点间的ACID如何控制呢?构建一个可用性和一致性的分布系统成为 ...
- MQ 服务器错误代码2035
MQ 服务器错误代码20352013-06-12 19:29:39 搭建一个MQ7.1服务器,用了一个小的demo测试程序,结果报错, 测试代码: import com.ibm.mq.MQC; imp ...
- DT-06 For Homekit
一. 配置DT-06上网 连接此热点,会自动弹出wifi配置页面. 输入选中的路由密码,点 Join加入,如果路由没有出现在列表中,点 Other手工输入(仅支持2.4g路由配置) 二.配置dt-06 ...
- 100天搞定机器学习|Day 30-32 微积分的本质
3blue1brown系列课程,精美的动画,配上生动的讲解,非常适合帮助建立数学的形象思维,非常值得反复观看: http://www.3blue1brown.com/ 哔哩哔哩: https://sp ...
- 重读《学习JavaScript数据结构与算法-第三版》- 第4章 栈
定场诗 金山竹影几千秋,云索高飞水自流: 万里长江飘玉带,一轮银月滚金球. 远自湖北三千里,近到江南十六州: 美景一时观不透,天缘有分画中游. 前言 本章是重读<学习JavaScript数据结构 ...
- Powered by .NET Core 进展0819:高速开车车况汇报
继续以流水账的方式向大家汇报,自从上周六上午将 .net core 版博客站点从 windows 部署切换到 linux 上的 docker-compose 部署后,到目前一直在线. Linux 上没 ...