Java面试Word文档格式.docx
- 文档编号:15875601
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:14
- 大小:23.52KB
Java面试Word文档格式.docx
《Java面试Word文档格式.docx》由会员分享,可在线阅读,更多相关《Java面试Word文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
类变量有默认值,不初始化编译不会出错。
9、类是不是数据类型
是,因为Java中的数据类型分为基本数据类型和引用数据类型,类属于引用数据类型,所以累是数据类型。
10、数值默认数据类型是什么
整型默认是int型,如果想指定数据类型为long,需要在赋值在数值后面加上l或者L。
浮点型默认是double,如果想指定数据类型为float,需要在赋值时在数值后面加上f或者F。
11、byte范围是多少
-128~127
12、Java中字符型变量占几个字节
2个字节。
因为Java中一个字符占两个字节,所以Java可以表示汉字。
13、引用数据类型和基本数据类型的区别
从概念方面来说:
基本数据类型是指变量名指向具体的数值;
引用数据类型的变量名指向存储数据对象的内存地址。
从内存构建方面来说:
基本数据类型的变量在声明之后会立刻分配内存空间。
引用数据类型在声明变量时不会立刻分配内存。
从使用方面来说:
基本数据类型变量使用时需要赋具体的值,判断时需要使用“==”。
引用数据类型变量使用时可以赋null,判断时使用equals方法。
14、引用数据类型有哪些
除了基本数据类型都是引用数据类型,例如数组也是引用数据类型。
15、当一个算术表达式中包含多个基本类型的值,得到的结果是什么类型
整个算数表达式的数据类型将发生自动提升,规则如下:
所有byte、short、和char类型将被提升到int类型。
整个算术表达式的数据类型自动提升到与表达式中最高等级操作数相同的类型,
例如int和float进行运算时,得到的结果为float。
16、char可以和int进行运算吗
可以,因为char本身就是int类型,当使用时会根据ascii码表来进行转换。
17、Windows和Linux操作系统下的换行符有什么区别
Windows下的换行符是\r\n
Linux下的换行符是\n
因为早期打印机就是每打印完一行先回到行首再进行换行,所以是\r(到行首)\n(换行)
18、字符类型可以存储\n等转义字符吗
可以,因为\n转义完之后是一个换行符。
19、赋值运算符问题
shortx=4;
x=x+5;
编译失败
shorts=3;
s+=5;
编译成功为什么?
因为x=x+5;
是两次运算(先加后赋值),在加法运算时会进行自动类型提升,运算后的结果为int,int无法赋值给short变量。
而s+=s;
只进行亿次运算,在运算过程中会进行强制类型转换的操作。
20、&
&
和&
的区别(||和|的区别)
&
、||称为短路(短路与、短路或)
:
当左边为false时,右边不进行运算。
无论左边是true还是false,右边都会运算。
||:
当左边为true的时候,右边不运算。
|:
两边都参与运算
^:
异或运算
异或运算的原理为:
相同为假,不同为真。
10011
^00111
——————
10100
异或算法常用来进行加密,一个数异或另一个数两次,得到的还是最初的数值。
21、Java中什么运算最快
位移运算最快。
左移:
<
右移:
>
无符号右移:
原理:
先吧数字转换成二进制形式,然后将其左移或右移,缺少位用0补足。
技巧:
往左移,移几位,就是十进制数字乘以二的几次幂。
往右移,移几位,就是十进制数字乘以二的几次幂。
(舍弃小数位)
注意:
右移(>
)时,正数高位补0,负数高位补1。
无符号右移时(>
)高位补0。
22、switch语句中的条件可以是什么数据类型
可以是byteshortintchar,在JDK1.7之后可以使用String了。
23、Java中如何跳出外循环
可以给外循环指定标志名,使用break跳出指定循环。
24、方法重载的特点
与返回值无关,只看参数列表。
25、方法重载的优点
方便阅读,优化了程序设计。
26、方法重载和方法重写
重载是方法名相同参数列表不同。
重写是方法名和参数列表还有返回值都要相同。
27、length和length()的区别
length是数组的属性,而length()是字符串的方法。
28、使用二分查找的优点
使用二分查找可以提高效率,但是必须保证数组中的元素是有序的。
30、什么是类
类就是对现实生活中事物的描述,包含了事物的静态属性和动态属性,静态属性就是成员变量,动态属性就是成员方法。
31、什么是面向对象
面相对象是相对面向过程而言的。
面向对象和面向过程都是一种思想。
面向过程强调的是功能行为。
面向对象是将功能封装到类中,通过类创建对象,强调了具备功能的对象。
32、面向对象的三个特征
封装、继承、多态。
33、什么是引用型变量
引用型变量又称为类类型变量,该变量指向对象。
Personp=newPerson();
p就是引用类型变量。
34、成员变量和局部变量在内存中的表现形式
成员变量随着类的加载而加载并且生成默认值,成员方法只会在调用时才加载。
存在于堆内存中,因为对象的存在,才在内存中存在。
局部变量在声明是就会分配内存空间,存在于栈内存中。
35、封装的好处
隐藏访问细节,从而提高安全性。
对外提供访问方式,便于使用。
36、private范围
仅在本类中可以访问。
37、为什么需要封装(为什么需要对外提供访问方式)
可以在访问时加入逻辑判断等语句,对访问的数据进行操作。
38、构造方法的作用
对类成员变量进行初始化,目的是为了分配空间。
构造方法的作用就是给对象进行初始化。
39、构造方法的定义
当一个类中没有定义构造方法时,系统会默认给该类定义一个无参构造方法,当在类中自定义构造方法之后,默认的构造方法就没有了。
40、构造代码块的使用
构造代码块中定义的是不同对象的共性初始化内容,作用是给对象进行初始化。
对象一建立就运行,而且优先于构造方法执行。
41、构造方法和构造代码块的区别
构造代码块是给所有对象进行统一初始化,而构造方法是给对应的对象进行初始化。
42、静态代码块的使用
静态代码块随着类的加载而加载,只在类加载的同时执行一次,并且优先于主函数执行。
只有用到类中的内容时,静态代码块才会执行,而StaticCodes=null;
静态代码块不会执行,因为只建立引用,类不会加载。
静态代码块中不能使用this,构造代码块中可以使用this,因为静态代码块优先于对象存在。
43、静态代码块、构造代码块和构造方法的区别
静态代码块:
用于给类初始化,类加载时就会被加载执行,只加载一次,优先于构造代码块。
构造代码块:
用于给所有对象初始化,只要建立对象构造代码块就会执行,并且优先于构造方法执行。
构造方法:
给对应对象初始化的,建立对象时,选择相应的构造方法初始化对象。
创建对象时,三者的执行顺序:
静态代码块构造代码块构造方法
44、this是什么意思,有什么作用
this代表当前类的对象,用于区分局部变量和成员变量同名的情况。
可以在构造方法中使用this关键字,在构造方法中this代表所创建对象。
46、static关键字可以修饰什么
static可以修饰成员变量和成员方法。
47、static静态的特点
随着类的加载而加载,并且随着类的消失而消失,说明它的生命周期最长,在未创建对象的时候可以通过类名来调用。
优先于对象存在(非静态成员变量只有创建对象时才会创建成员变量)
被所有对象所共享(数据只保存一份)。
类中静态成员互相调用时省略的是(类名.),而非静态成员变量互相调用时省略的
是(this.)
48、静态变量和非静态变量的区别
存放位置:
静态变量随着类的加载而存在于方法区中。
非静态变量则随着对象的建立而存在于堆内存中。
生命周期:
静态变量生命周期最长,随着类的加载而出现,随着类的消失而消失。
非静态变量生命周期随着对象的消失而消失。
49、静态和非静态之间的访问
静态无法访问非静态,静态可以访问静态,非静态可以访问静态。
50、使用静态有什么利弊
利:
对对象的共享数据进行单独的存储,节省空间,没有必要每个对象中存储一份。
弊:
生命周期过长,浪费内存空间。
访问出现局限性(静态只能访问静态)。
51、单例设计模式
保证一个类中只存在一个对象。
实现思路:
1)为了避免其他程序建立该对象,将构造方法私有化
privateSingle(){}
2)为了让其他程序可以访问到该类对象,在本类中创建对象
privatestaticSingles=newSingle();
3)为了方便其他程序对自定义对象的访问,对外提供访问方式
publicstaticSinglegetInstance(){returns;
}
52、单例设计模式有几种
两种,饿汉式和懒汉式。
饿汉式是指当类创建就初始化对象。
懒汉式是当请求对象的时候才会初始化对象。
53、单例设计模式有没有不安全性
有,线程间的不同步可能会导致创建多个对象。
这种不安全性只会出现在懒汉式加载中。
54、如何解决单例设计模式已知的安全问题
使用同步代码块。
55、使用同步代码块会降低效率,如何提高效率
在同步代码块外再判断对象是否为空,如果不为空,说明对象已存在,就不需要再继续执行了。
56、什么叫继承
一个新类从已有的类那里获得其已有的属性和方法,这种现象叫做继承。
新类叫子类,也叫派生类,父类也叫作基类或超类。
57、继承的好处
提高代码重用性。
形成类的层次体系结构。
为多态创造条件。
58、Java支持多继承吗
Java只支持单继承,不支持多继承,因为多继承容易带来安全隐患,当多个父类中定义了相同功能时,子类无法确定执行哪个方法。
C++支持多继承,Java保留了这种机制,并用另一种体现行是来表示:
即多实现。
59、Java支持多层继承吗
支持,即A继承B,B再继承C,相当于A继承了C。
60、Java可以继承构造方法吗
不可以,Java中可以继承构造代码块和静态代码块,但是不能继承构造方法。
子类可以通过super来调用父类构造方法。
61、如何在子类中调用父类成员
当子父类类成员名相同时,可以使用super来调用父类成员,否则默认使用this调用子类成员。
private修饰的成员super无法访问。
62
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 面试