A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 庭院深深深几许 金牌黑马   /  2019-4-18 15:04  /  833 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


对象克隆的实现方式
实现Cloneable接口并重写Object类中的clone()方法;
实现Serializable接口,通过对象的序列化和反序列化实现克隆,可以实现真正的深度克隆(ObjectOutputStream)。
垃圾回收(GC)
垃圾回收机制,内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃
分代式垃圾收集 (伊甸园,幸存者乐园,终身颐养园)
一个java文件中可以包含多个类,但是只能有一个公开类,且名字和Java文件相同
一个内部类可以访问他的外部类,包括私有成员
final : 类: 不能被继承 方法: 不能被重写 属性: 赋值一次过后不可以再次赋值
先初始化静态成员,然后调用父类构造器,再初始化非静态成员,最后调用自身构造器。
String s2 = new String(s1.getBytes("GB2312"), "ISO-8859-1"); GB2312编码的字符串转换为ISO-8859-1
try{}里有一个return语句,那么紧跟在这个try后的finally{}里的代码会不会被执行,
会执行 , 如果finally还有return 语句, 则会返回finally内的语句
异常处理: 异常都是Throwable子类
throws 声明一个方法可能抛出的异常
throw 在方法内抛出异常
常见的异常:
ArithmeticException(算术异常)
IllegalArgumentException (非法参数异常)
IndexOutOfBoundsException (下标越界异常)
NullPointerException (空指针异常)
ClassCastException
final、finally、finalize的区别。
final : 修饰符
finally : 不管是否发生异常都会执行
finalize : GC再销毁对象的时候调用
ArrayList使用的数组方式来进行存储,所以查找元素快 ,LinkedList双向链表,插入和删除快,都不是线程安全,可以通过Collections中的synchronizedList方法
Collection是一个接口,它是Set、List等容器的父接口;Collections是个一个工具类,
sleep 和 wait
sleep()方法(休眠)是线程类(Thread)的静态方法,调用此方法会让当前线程暂停执行指定的时间,将执行机会(CPU)让给其他线程,但是对象的锁依然保持,因此休眠时间结束后会自动恢复(线程回到就绪状态)
wait()是Object类的方法,调用对象的wait()方法导致当前线程放弃对象的锁(线程暂停执行),进入对象的等待池(wait pool),只有调用对象的notify()方法(或notifyAll()方法)时才能唤醒等待池中的线程
抽象类和接口有什么异同
接口和抽象类都不能被实例化,但可以定义引用.
接口中所有的方法必须都是抽象方法,而抽象类中可以有普通方法,
接口中的修饰符全是public,而抽象类都可以
有抽象类的方法必须声明为抽象类,而抽象类中不一定有抽象方法
Java有内存泄露吗,
理论上没有,因为有垃圾回收机制,但实际中可能存在无用但可达的对象,这些对象不能被GC回收, 例如Hibernate一级缓存中的对象.
静态变量和实例变量
静态变量static修饰,他属于类的,不属于任何一个方法,所以一个静态变量只会有一个拷贝.静态变量可以实现让多个对象共享内存。
实例变量必须依存于某一实例,需要先创建对象然后通过对象才能访问到它。


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马