java 基础 面试题 一

1. &和&&的区别

&&短路与,先判断 && 前面的条件,如果前面的条件成立,就不会判断后面的条件了,为了提高效率。在java编程中,大多数情况下都会有 && ;在某些特殊情况下会用到 &,如:

if (false & a++){
	System.out.println("判断过程中也需要更新a的值");
}

短路或(||)的用法相同

2.自增与自减的使用

自增:
前自增:先自增后赋值
后自增:先赋值后自增

int a = 1;
int b = a++;   //b=1 ; a=2
int c = ++a;   //c=3 ; a=3
int d = a+++b; //d=4 ; a=4; b=1
int e = a++ + ++b;  //e=6  ;a=5;b=2

自减效果相同

3.定义一个double类型的变量,其值为20

数据类型转换的小技巧,隐式转换法

double a = 20.0;

定义一个float类型的变量

float a = 20.0f;

4.下面代码的结果是什么

short a = 1;
a=a+2; 
System.out.println(a);

会报错:

  • 短数据类型转换成长的数据类型 可以直接转换
  • 长的数据类型转换成短的数据类型 要强制转换

可以写成:
a+=b;
a=(short)(a+b);

5.==的使用

  • 对于基本数据类型 比较的是数值
  • 对于引用数据类型 比较的是地址
  • 字符串比较用.equals()

返回的都是Boolean值

String a = "a";
String b = new String("a");
if (a.equals(b)){
	System.out.println("我比较的是数值,不是地址");
}
if (a==b){
	System.out.println("我比较的是数值,不是地址");
}else{
	System.out.println("我比较的是地址");
}

6.用三目运算符,找出三个数中最大的

写法不唯一

int a,b,c;
a = 6;
b = 2;
c = 3;
System.out.println(a>b?(a>c?a:c):(b>c?b:c));

7.用最快的速度计算3*8

System.out.println(3<<3);

8.不用第三个变量来交换两个数

至少写出三个方法
链接:不通过第三个变量来交换两个数:https://blog.csdn.net/IT_arookie/article/details/83178610

9.说说 java中goto

goto不是Java中的关键字,goto是java中的保留字,现在没有在java中使用。

10. 下面的结果是什么

char a = 66;
char b = 122;
System.out.println(a); //B
System.out.println(b); //z

11.java的三大特征是什么

封装、继承和多态

12.overloading与overriding的区别

链接:java中方法的重写(overriding)与重载(overloading)的区别

13.什么是封装

封装(Encapsulation)是面向对象方法的重要原则,就是把对象的属性和操作(或服务)结合为一个独立的整体,并尽可能隐藏对象的内部实现细节,对数据的访问只能通过已定义的接口,适当的封装可以让程式码更容易理解和维护,也加强了程式码的安全性。

14.什么是继承

继承是面向对象最显著的一个特性。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力,这种技术使得复用以前的代码非常容易,能够大大缩短开发周期,降低开发费用。

15什么是多态

多态具体表现在重写和重载,多态就是类的多种表现方式,比如同名不同参。
同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。在运行时,可以通过指向基类的指针,来调用实现派生类中的方法。简单来书就是父类的引用指向子类的对性,说白了就是大的接收小的。

16.说一说final关键字

1.声明一个常量;2.声明一个方法;3.声明一个类,不能被继承,名字使用全大写;4修饰参数,不能使参数改变。
使用final关键字修饰一个变量时,是指引用变量不能变,引用变量所指向的对象中的内容还是可以改变的。

17下面的代码有什么不妥之处

if(a.equals(“a”){}

a可能为NULL,会报空指针错误;改为"a".equals(a)

18.访问权限修饰符

作用域public,private,protected,以及不写时的区别。

作用域 当前类 同一package 子类 其他package
public
protected ×
friendly × ×
private × × ×

19.排序都有哪几种方法?

排序的方法有:插入排序(直接插入排序、希尔排序),交换排序(冒泡排序、快速排序),选择排序(直接选择排序、堆排序),归并排序,分配排序(箱排序、基数排序)。

20.说一下你遇到过的异常

未完待续…
持续更新中…

你可能感兴趣的:(java,基础,面试题)