2021年java面试基础总结.docVIP

  • 0
  • 0
  • 约1.48万字
  • 约 29页
  • 2020-11-10 发布于江苏
  • 举报
Java特点 语法简单,面向对象,分布式,安全性,健壮性,解释运行,高效率,和平台无关,多线程,动态性。 面向对象特征 继承,封装,多态,抽象 (1)继承:子类继承父类方法和属性 结构器不能继承 子类结构器一定会调用父类结构器 实例化子类,会分配全部父类空间 (2)多态:重载方法,方法名一样,方法参数不一样方法 (3)抽象:在面向对象分析设计时,可将部分实体作高度抽象定义成抽象类,抽象类没有任何对象,只可作为一个模板用于创建子类,和为面向对象提供更灵活多态机制。 (4)封装:类封装了数据及对数据操作,是程序中最小模块,严禁了外界直接操作类中数据,模块和模块之间只能经过严格控制接口进行交互,使得模块之间耦合度大大降低;确保了模块含有很好独立性,程序维护和修改较轻易。 3.java中8种基础数据类型及数据类型转换 4大类型: 逻辑类型:boolean 字符类型:char 整数类型:byte,short,int,long 浮点类型:float,double 转换:规则1,当把精度低变量值赋给精度高变量时,系统自动完成数据类型转换( 数据精度从“低”到“高”排序) 规则2,当把精度高变量值赋给精度低变量时,必需使用显示类型转换运算。 规则3,char和byte或short之间赋值必需实施强制转换。 4.局部变量和全局变量区分 局部变量:不是申明在类括号里面变量。方法参数和方法内部变量全部是局部变量。 必需要先赋值,后使用,局部变量没有默认初始化值。同一范围内,不许可2个局部变量命名冲突。 5.什么是形参,什么是实参? 实参:方法调用时候实际传输参数变量(实际值,相当于赋值)。 形参:方法参数定义,是临时变量(是个空壳子,相当于申明变量而没有赋值)。 6.怎么了解i++和++i i++:先把i值赋给i++,i值自增1,再把i++值赋给i; ++i:先把i值自增1 ,自增后i值赋给i++,,再把++i值赋给i; 7.和区分 和全部能够用作逻辑和运算符,表示逻辑和(and),当运算符两边表示式结果全部为true时,整个运算结果才为true,不然,只要有一方为false,则结果为false。 还含有短路功效,即假如第一个表示式为false,则不再计算第二个表示式,比如,对于if(str != null !str.equals(“”))表示式,当str为null时,后面表示式不会实施,所以不会出现NullPointerException假如将改为,则会抛出NullPointerException异常。If(x==33 ++y0) y会增加,If(x==33 ++y0)不会增加 还能够用作位运算符,当操作符两边表示式不是boolean类型时,表示按位和操作,我们通常使用0x0f来和一个整数进行运算,来获取该整数最低4个bit位,比如,0x31 0x0f结果为0x01。 8.switch()括号中能够是哪些数据类型。 char/short/int/byte 常见零值有哪些? 整型默认值:[0,0,0] boolean类型:[false,false,false] 浮点类型:[0.0,0.0,0.0] String类型:[null,null,null] char类型:\u0000 10.数组中动态初始化和静态初始化 静态初始化是指由程序员自己为数组对象每个元素赋值,由系统自动计算出数组长度:如String[] a=new String[]{“Hellow”,”World”,”Yes”}; 动态初始化是指程序员自己指定数组对象长度,由系统先自动为其赋值,程序中程序员能够为元素重新赋值;如:String[] b=new String[4]; for(int i=0;ib.length;i++) { b[i]=i+”hello”; } 11.列举出常见排序方法及代码 /** 冒泡排序 * i表示轮次 * j表示每一轮比较次数 */ public static void main(String[] args) { int[] arr={12,2,34,55,6,1}; System.out.println(Arrays.toString(bubbleSort(arr))); } public static int[] bubbleSort(int[] arr) { for(int i=0;iarr.length-1;i++) { for(int j=0;jarr.length-i-1;j++) { if(arr[j]arr[j+1]) { //这一行j相当于下标 int temp=arr[j]; arr[j]=arr[j+1];

文档评论(0)

1亿VIP精品文档

相关文档