1、面向对象的特征有哪些方面?
继承、封装、多态。(抽象?)
2、访问修饰符public、private、protected、以及default(friendly?)的区别?
修饰符\作用域 | 当前类 | 同包内 | 子类 | 其他包 |
public | 可用 | 可用 | 可用 | 可用 |
protected | 可用 | 可用 | 可用 | |
default | 可用 | 可用 | ||
private | 可用 |
public是公共的,对所有用户都可见,用户可直接调用;
protected是受保护的,对朋友、子女都可见,对于外部的class是不可见,
private是私有的,只能自己调用,其他任何(包括子女、朋友)都不可调用,
default是默认的,不写的时候,自动用默认为default,包内可见。
3、string类型是最基本的数据类型吗?Java中的基本数据类型有哪些?
string不是基本数据类型,是java的引用类型,被final修饰,不能被继承;8个基本数据类型为:int、short、long、byte,float、double、char、boolean(前4个都是整型)
4、short s1=1;s1=s1+1;有错吗?short s1=1;s1+=1;有错吗?
short s1=1;s1=s1+1; 由于表达式s1+1在运算时会自动提升表达式类型,所以结果为int类型,在转换给short类型,结果会报数据类型转换异常; Short s1=1;s1+=s1; 因为+=是java中规定的运算符,java编译器会对其进行特殊处理,所以能正常编译。
5、java有没有goto?一个类能否继承多个类?
goto是java中的保留字,现在没有在java中使用;直接回答是不可以,但是可以进行间接继承,如(b继承c,a继承b,就相当于a继承了b和c),但是可以实现多个接口。
6、int和integer有什么区别?
int是java基本数据类型,Integer是java为Int提供的包装类。
7、&和&&的区别?
相同点:都是逻辑与运算符,当两边的表达式都为true时,整个表达式才为true, 只要有一边的表达式为false,整合表达式的结果就为false。 不同点:&&有短路功能,即如果第一个表达式为false,第二个表达式不会执 行,例如:对于if(str != null && !str.equals(“”))表达式,当str为null 时所以不会出现NullPointerException,若改为&,则会出现 NullPointerException异常。
8、解释内存中的栈(stack)、堆(heap)和静态存储区的用法。
参考https://blog.csdn.net/qq_38225558/article/details/87102941
9、Math.round(11.5)等于多少?Math.round(-11.5)等于多少?
Math.round(xx)运算时xx+0.5后向下取整,所以Math.round(11.5)=12,Math.round(-11.5)=-11
10、swtich是否能作用在byte上?是否能作用在long上?是否能作用在string上?
在jak1.7之前,switch只支持byte、short、int、char和对应的封装类,swtich后的括号只能放int,1.7之后,整型、枚举类型,布尔类型、字符串类型都可以。