JAVA 知识点总结 (二)

1、String 类的实例化方式,直接赋值与构造方法的区别

  • 直接赋值:开辟一块堆空间,该字符串对象可以自动保存在对象池中,以供下次使用;
  • 构造方法:开辟两块堆空间,其中有一块为垃圾空间,不能自动保存到对象池,需要使用intern()手工入池。

2、StringBuffer 与 StringBuilder 区别:(String 对比)

  • String 字符串常量不可变,StringBuffer与StringBuilder 可变;
  • StringBuffer :采用同步处理,线程安全,效率较低;
  • StringBuilder:采用异步处理,线程不安全,效率较高。
  • (String 类的修改操作 “+”,JVM 底层会将String 变为StringBuilder 类处理,减少大量垃圾空间产生)

3、单例设计模式之饿汉式与懒汉式:

  •  饿汉式:一个类只允许产生一个实例化对象;(不存在线程安全问题);
  •  懒汉式:当第一次使用SIngleton对象时,才会产生实例化对象,之后不会产生。                                                                                                       (存在线程安全问题,解决方法即使用全局锁加内存屏障)

4、throw 与 throws 区别:

  • throw :用于方法内部,主要表示手工异常抛出;
  • throws:主要在方法声明上使用,明确告诉用户本方法可能产生异常,同时该方法可能不处理异常。

5、基本数据类型 与 包装类对象 使用规则:

  • 所有POJO(简单Java类)必须使用包装类对象;
  • 所有RPC方法的返回值和参数必须使用包装类对象;
  • 所有局部变量使用基本数据类型。

6、所有相同类型的包装类对象比较,一律使用equals 方法;

      其中 Integer Var=?(该值在-128~127区间内)中赋值,Integer 对象会在常量池中产生,会复用已有对象,因而可用 “==” 判断是否相等,若超出该区间,就会在对上开辟空间,不会复用已有对象,因而必须使用 equals 方法比较。

7、Java 将所有继承与Error 和 RubtimeException 类的异常称为非受查异常;

所有异常都继承于底层throwable ,分为两类:Error 描述运行时内部错误或资源耗尽错误(OOM 、Stackoverflow);Exception 应用程序抛出异常,IOException 本身没有问题,I/O错误(打开一个不存在的文件)、RuntimeException 运行时异常(ClasscastException 、NullPointException)。

8、单例与多例特点:

     构造方法私有化;类内部提供有static 方法取得类内部的实例化对象。

9、关于异常的五个关键字:try 、catch 、finally 、throws 、 throw

  •  不管catch是否捕获异常,finally 语句都要执行
  • finally 语句块在catch 语句块中的return语句之前执行
  • finally 块中的return 语句会覆盖try块中的return返回值
  •  在 try语句块或catch 语句块中执行到Systm.exit(0)直接对出程序

10、封装 用private (90%),protected (10%)。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值