目录
1.&&与&的区别
2.八种基本数据类型
3.spring的理解
4.switch是否能作用于byte上,是否能作用于long上,是否能作用于String上?
5.short s1 = 1;s1 = s1 + 1;有什么错?short s1 = 1; s1 += 1;有什么错?
6.char型变量中能不能存贮一个中文汉字?为什么?
7.使用 final 关键字修饰一个变量时,是引用不能变,还是引用的对象不能变?
8. "=="和 equals 方法究竟有什么区别?
9.静态变量和实例变量的区别?
10.Integer 与 int 的区别?
11.作用域 public,private,protected,以及不写时的区别
12.Overload 和 Override 的区别。Overloaded 的方法是否可以改变返回值的类型?
13.构造器 Constructor 是否可被 override?
14.面向对象的特征有哪些方面
1.&&与&的区别
&&代码示例:
public static void main(String[] args) {
if(test1() && test2()) {
System.out.println("打印");
}
}
private static boolean test1() {
System.out.println("======test1=====");
return false;
}
private static boolean test2() {
System.out.println("======test2=====");
return false;
}
结果为 打印test1
&代码示例:
public static void main(String[] args) {
if(test1() & test2()) {
System.out.println("打印");
}
}
private static boolean test1() {
System.out.println("======test1=====");
return false;
}
private static boolean test2() {
System.out.println("======test2=====");
return false;
}
结果为 打印test1与test2
由此得出结论:
&:代表第一个条件不满足,依旧会执行后面的条件。
&&:代表第一个条件不满足,后面的条件就不会继续执行。
2.八种基本数据类型
| 基本类型 | 大小(字节) | 默认值 | 封装类 |
| byte | 1 | (byte)0 | Byte |
| short | 2 | (short)0 | Short |
| char | 2 | u0000(null) | Character |
| int | 4 | 0 | Integer |
| float | 4 | 0.0f | Float |
| long | 8 | 0L | Long |
| double | 8 | 0.0d | Double |
| boolean | ~ | false | Boolean |
在面试官问到此问题,可以按照以下形式来回答:(这样会觉得你很有条理性)
整型:short、int、long、byte
浮点型:float、double
其他:char、boolean
3.spring的理解
sping有两大特点 IOC及AOP
IOC:是依赖注入,控制反转,特点是管理每个java类创建的bean对象,主要负责对象的实例化,由原来的程序员手动创建对象变成由spring框架容器来创建,权力发生了转移也就是控制反转,凡是要交给spring容器进行管理的都要进行一个配置。
AOP:面向切面编程,能够将共性的东西和非共性的代码进行一个分离,让我们更专注于逻辑性的代码开发。
4.switch是否能作用于byte上,是否能作用于long上,是否能作用于String上?
public static void main(String[] args) {
byte key = 0;
int i = key;
String s = "s";
switch(s) {
case "h":
break;
default:
break;
}
}
switch可以作用于byte上,能作用于long,能作用于JDK1.7之后的String
5.short s1 = 1;s1 = s1 + 1;有什么错?short s1 = 1; s1 += 1;有什么错?
short s1 = 1;s1是short类型,s1 = s1 + 1;1是int类型,short类型加int类型等于int类型,
原因:取高字节的类型,short的字节是2,int的字节是4,所有是int
short s1 = 1;s1 = s1 + 1;代码报错,short类型容纳不下int类型;
short s1 = 1; s1 += 1; 代码不报错,+=是java语言规定的运算符,java编译器会自动对它进行处理
6.char型变量中能不能存贮一个中文汉字?为什么?
可以,char 型变量是用来存储 Unicode 编码的字符的,unicode 编码字符集中包含了汉字,所以,char 型变量中当然可以存储汉字,unicode编码占用两个字节,所以,char 类型的变量也是占用两个字节。
7.使用 final 关键字修饰一个变量时,是引用不能变,还是引用的对象不能变?
引用对象能变,引用不能变
被final修饰的类 不能被继承
被final修饰的变量 引用的指向不能发生改变,引用指向的对象内容可以发生改变
被final修饰的方法 不能被重写
8. "=="和 equals 方法究竟有什么区别?
==:比的是地址
equals:比的是内容
9.静态变量和实例变量的区别?
静态变量是跟着类走的,示例变量是需创建对象,实例化才能够获取,赋值等操作
10.Integer 与 int 的区别?
integer是类,int是基本数据类型,integer可以让数据操作更加灵活。
11.作用域 public,private,protected,以及不写时的区别
如果在修饰的元素上面没有写任何访问修饰符,则表示 friendly。
| 作用域 | 当前类 | 同一package | 子孙类 | 其他package |
| public | √ | √ | √ | √ |
| protected | √ | √ | √ | × |
| friendly | √ | √ | × | × |
| private | √ | × | × | × |
只要记住了有 4 种访问权限,4 个访问范围,然后将全选和范围在水平和垂直方向上分别按排从小到大或从大到小的顺序排列,就很容易画出上面的图了。
12.Overload 和 Override 的区别。Overloaded 的方法是否可以改变返回值的类型?
Overload:重载,方法名相同,参数列表不同(同名不同参)
Override:重写,方法名相同,参数列表也相同(同名同参)
13.构造器 Constructor 是否可被 override?
构造器 Constructor 不能被继承,因此不能重写 Override,但可以被重载 Overload。
14.面向对象的特征有哪些方面
面向对象
重写与重载
特点:
封装:减少重复代码,方便调用
继承:抽取共性的部分
多态:
体现形式:接口、抽象类
具体应用:向上提升,向下转型
特点:能够让代码具备更好的拓展性
(多态) 例:
前提:有一只小狗叫旺财 new Dog(“旺财”)
结论:旺财是一只动物(正确)animal=new dog(“.”)
前提:有一只动物叫旺财 new Dog(“旺财”)
结论:旺财是一只小狗(错误)animal=new dog(“.”)
结论:旺财就是小狗



