1、你是怎样理解OOP面向对象的( 二 )


例如:实体类的封装,下面代码中,将name和age属性设置为私有的,只能本类才能访问,其他类都访问不了,如此就对信息进行了隐藏 。对每个值属性提供对外的公共方法访问,也就是创建一对赋取值方法,用于对私有属性的访问 。
public class Person{private String name;private int age; ?public int getAge(){ return age; } ?public String getName(){ return name; } ?public void setAge(int age){ this.age = age; } ?public void setName(String name){ this.name = name; }}
继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为 。
7.sleep和wait在线程里有什么区别?(上海)
Sleep 释放执行权 。不释放锁,其他线程会阻塞
Wait 释放执行权、释放锁、保存当前执行状态、需要才能执行
sleep方法:
属于类中的方法;会导致程序暂停执行指定的时间,让出cpu执行权给其他线程,但是他的监控状态依然保持着,当指定时间到了之后,又会自动恢复运行状态;在调用sleep方法的过程中,线程不会释放对象锁 。(只会让出CPU,不会导致锁行为的改变)
wait方法:
属于类中的方法;在调用wait方法的时候,线程会放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象调用方法后本线程才进入对象锁定池准备 。获取对象锁进入运行状态 。(不仅让出CPU,还释放已经占有的同步资源锁)
8、什么是自动拆装箱? int和有什么区别?以及以下程序运行结果 。(北京)
基本数据类型,如int,float,,,char,byte,不具备对象的特bai征,不能调用方法 。
装箱:将基本类型转换成包装类对象
拆箱:将包装类对象转换成基本类型的值
java为什么要引入自动装箱和拆箱的功能?主要是用于java集合中,List list=new ();
list集合如果要放整数的话,只能放对象,不能放基本类型,因此需要将整数自动装箱成对象 。
区别:
(1)是int的包装类,int则是java的一种基本数据类型
(2)变量必须实例化后才能使用,而int变量不需要
(3)实际是对象的引用,当new一个时,实际上是生成一个指针指向此对象;而int则是直接存储数据值
(4)的默认值是null,int的默认值是0
package com.atguigu.interview.chapter03;public class Test01 {public static void main(String[] args){Integer a = 127;Integer b = 127;Integer c = 128;Integer d = 128;System.out.println(a==b); //trueSystem.out.println(c==d); //false}}
9、==和区别
(1)= =
如果比较的是基本数据类型,那么比较的是变量的值
如果比较的是引用数据类型,那么比较的是地址值(两个对象是否指向同一块内存)
(2)
如果没重写方法比较的是两个对象的地址值
如果重写了方法后我们往往比较的是对象中的属性的内容
方法是从类中继承的,默认的实现就是使用==
???????
10.能被继承吗?为什么用final修饰?(北京)
不能被继承,因为类有final修饰符,而final修饰的类是不能被继承的 。
11. 和 区别
正常情况使用
(1) 与中的方法和功能完全是等价的,
(2)只是 中的方法大都采用了关键字进行修饰,因此是线程安全的,而没有这个修饰,可以被认为是线程不安全的 。
(3)在单线程程序下,效率更快,因为它不需要加锁,不具备多线程安全而则每次都需要判断锁,效率相对更低
12、final、、
检验你是否是小白