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. ...
随机推荐
- Linux基础进程管理优先级
一.进程优先级 Linux进程调度及多任务 每个cpu(或者cpu核心)在一个时间点上只能处理一个进程,通过时间片技术,Linux实际能够运行的进程(和线程数)可以超出实际可用的cpu及核心数量.Li ...
- 旁友数独会伐啦?python秒解数独了解下伐啦?
前几天和隔壁邻居玩斗地主被发现了,牌被没收了,斗地主是斗不了了,但我还想和邻居玩耍.如果你还想斗斗地主,戳:趁老王不在,和隔壁邻居斗斗地主,比比大小 想破脑袋终于让我想到一个游戏,数独!什么叫数独?数 ...
- ride.py在运行python3.×版本后导致无法运行及解决办法
最近一直在自学python自动化,网上看到rf框架挺适合初学自动化测试,于是通过虫师的搭建了rf框架, 但是在使用过程中遇到了一个问题,在网上没有找到明确解决办法于是想到记录一下 之前为了搭建rf框架 ...
- 微信公众号发送消息给用户 php
1.微信公众号 这里得话 一开始先去看了 微信公众号的接口 发现网页授权需要时认证的服务号,一开始想的是那去申请一个认证的服务号岂不是很费事,然后网上搜了搜,发现了还有微信公众号个人测试号这个东西,所 ...
- 给面试官讲明白:一致性Hash的原理和实践
"一致性hash的设计初衷是解决分布式缓存问题,它不仅能起到hash作用,还可以在服务器宕机时,尽量少地迁移数据.因此被广泛用于状态服务的路由功能" 01分布式系统的路由算法 假设 ...
- C#连接sqlserver分页查询的两个简单的方法
/// <summary> /// 分页查询函数 /// </summary> /// <param name="co ...
- Goland_IDE的护眼、主题、字体等设置
Goland_IDE的护眼.主题.字体等设置 1.代码格式化 File->Settings->Tools->File Watchers->+->go fmt->将N ...
- 《NVM-Express-1_4-2019.06.10-Ratified》学习笔记(8)
8 Feature(特性) 8.1 固件升级过程 固件升级通过重启激活的过程是: 1. 主机发一个Firmware Image Download命令,下载固件映像版本到controller.可能有多个 ...
- odoo t标签用法
在odoo中,通过QWeb来对模板进行渲染后加载到浏览器中,而模板中有许多的标签来定制各种需求变化,在这里记录学习过程中碰到的标签定义,以方便查询. 模板中的标签统一都是以"t-" ...
- 基于 Vue+Mint-ui 的 Mobile-h5 的项目说明
Vue作为前端三大框架之一,其已经悄然成为主流,学会用vue相关技术来开发项目会相当轻松. 对于还没学习或者还没用过vue的初学者,基础知识这里不作详解,推荐先去相关官网,学习一下vue相关的基础知识 ...