java基础

1.面向对象有哪些特性?

答:继承,封装,多态,抽象

  • 继承提高了代码的复用。但并不是很好
  • 继承破坏的封装特性,父类改动,则子类可能出现问题,子类与父类需要同步
  • 可以用继承的两种情形:同包继承,有明确的说明文档
  • 跨包继承需要禁止
  • 复合-转发由于继承属于装饰器模式(decorate)。转发类也就是包装类
  • 封装属于门面模式(facade)
  • 多态体现在,编译期多态:重载,运行期多态:继承,重写,向上造型

2.什么是clone:

答:当需要使用一个对象的当前属性值,但又不想影响该对象时,可以创建clone对象

  • 实现方法:定义的类需要实现cloneable接口重写clone()方法
  • 分为浅clone和深clone,浅clone是当类中属性为引用类型,而引用类型又没有实现clongable接口,仅仅是复制了引用的地址,因此clone出来的对象的引用属性改变时,会影响原来的对象,深clone是引用类型也实现了cloneable接口
  • 用流的方式也可以进行对象的clone,而且是深clone,需要实现序列化接口。

3.equals

equals进行字符串的比较,==是进行基本类型的比较,equals的内部也是用==进行实现,比较的是地址对应的实际内容。==比较的是引用的地址。

4.重写与重载

答:都是多态的体现,一个是编译期多态,一个是运行期多态

  • 重载:方法名称相同,参数不同,返回值和修饰符不做要求
  • 重写:方法名称相同,参数相同,返回值相同,修饰符>=父类,异常<=父类
  • 构造器不能重写
  • 静态方法不能重写,但是可以重新声明

5.接口和抽象类

  • 接口没有构造器
  • 接口没有static方法
  • 接口的成员变量都是常量,public static final
  • 接口的方法默认都是public abstract
  • 抽象方法不能static和synchronized修饰
  • 接口没有实列方法,抽象类可有实例方法

6.switch(expr)语句中,expr可以有哪些值?

答:

  • java4及以前:byte short int char
  • java5:新增enum
  • java7:新增string

7.字符串连接符+,stringbuilder,stringbuffer的区别?

答:

  • stringbuffer线程安全,效率低
  • stringbuilder效率高,不安全
  • +在编译器转换成stringbuilder
  • 字面量连接,+效率高,在编译期直接替换,stringbuilder在运行期计算
  • 带引用类型的字符串拼接:stringbuilder快,+转换成stringbuilder。但是效率相差不大
  • 循环拼接字符串,不要用+,每次都新建对象,占用内存。用stringbuilder.append()。

8.java中时间api

答:Date,Calender(可变的).java8之后推出的LocalDate,LocalTime,LocalDateTime,Instant,Clock这些都是线程安全的。并修复了一些以往的缺陷

9.java基本类型

  • byte:无单位 -128~127
  • short:无单位 -32768~32767
  • int:无单位 12亿多
  • long:单位l/L 2的63次方,默认0L
  • float:单位f/F 默认0.0F
  • double:单位d/D ,默认0.0D
  • char:单引号或者数字,存储的字符是unicode,因此可以存放汉字,默认是空格
  • boolean:默认false
  • byte,short,int可以没有单位,不超过范围即可
  • long,float,double可以没有单位,相当于int向上转型,建议带上单位
  • 精度低的可以赋值给精度高的,默认转换,精度高的不能直接赋值精度低的,必须强转,强转,会丢失精度,和内存溢出
  • 基本类型混合运算,自动向上转型
  • s+=1,包含隐式类型转换
  • 涉及金额运算用bigdecimal。
  • 基本类型的范围,可以通过包装类得到。

10.POJO 类中布尔类型的变量,都不要加 is 前缀,否则部分框架解析会引起序列化错误

11.接口类中的方法和属性不要加任何修饰符号(public 也不要加,保持代码的简洁性,并加上有效的 Javadoc 注释

 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值