JAVA基础知识精华版

1、面向对象的特征有哪些方面 


1.抽象:
抽象就是忽略一个主题中与当前目标无关的那些方面,抽象并不打算了解全部问题,而只是选择其中的一部分 ps:抽象可以归类到封装里面

2.继承:
继承是一种联结类的层次模型,并且允许和鼓励类的重用,对象的一个新类可以从现有的类中派生,这个过程称为类继承。

3.封装:
封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。

4. 多态性:
多态性是指允许不同类的对象对同一消息作出响应。

优点

开发时间短效率高可靠性高易于维护更新和升级

2String是最基本的数据类型吗?

基本数据类型包括byte int char long float double boolean short
java.lang.String 类是 final 类型的,因此不可以继承这个类、不能修改这个类。为了提高效率节省空间,我们应该用 StringBuffer

3.运行时异常与一般异常有何异同?

异常表示程序运行过程中可能出现的非正常状态,java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。

4.说出ArrayList,Vector, LinkedList的存储性能和特性

LinkedList使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。前二者

它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢

5.Collection Collections的区别

Collection是集合类的上级接口,继承与他的接口主要有Set List.
Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。

6. 同步和异步有何异同,在什么情况下分别使用他们?举例说明。

如果数据将在线程间共享。例如正在写的数据以后可能被另一个线程读到,或者正在读的数据可能已经被另一个线程写过了,那么这些数据就是共享数据,必须进行同步存取。
当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望让程序等待方法的返回时,就应该使用异步编程,在很多情况下采用异步途径往往更有效率。

7.sleep() wait() 有什么区别?
sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间,给执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复。调用sleep不会释放对象锁。
waitObject类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态。

Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
floor 返回不大于的最大整数 
round 则是4舍5入的计算,入的时候是到大于它的整数
round方法,它表示“四舍五入”,算法为Math.floor(x+0.5),即将原来的数字加上0.5后再向下取整,所以,Math.round(11.5)的结果为12,Math.round(-11.5)的结果为-11




String s = new String("xyz");
这个跟常量池没有关系,只要是new,都是重新分配堆空间,如果不区分栈和堆,这里创建了1个String Object。如果是从jvm角度来说的话,它是创建了两个对象,String s是在栈里创建了一个变量,new String("xyz")是在堆里创建了一个对象并被s引用到。
如果是String s = "xyz",那就要看常量池里有没有"xyz",如果有直接引用,如果没有则创建再引用
这里"xyz"本身就是pool中的一个对象,而在运行时执行new String()时,将pool中的对象复制一份放到heap中,并且把heap中的这个对象的引用交给s持有。ok,这条语句就创建了2个String对象。
这时用==判断就可知,虽然两个对象的"内容"相同(equals()判断),但两个引用变量所持有的引用不同
补充一个面试题:String str = "aaa" + new String("bbb")创建了几个String对象?
 "aa"一个对象   new Sring()一个对象  "bbb"一个对象 "aa" + new String("bbb");一个对象


33、给我一个你最常见到的runtime exception。
ArithmeticException, ArrayStoreException, BufferOverflowException, BufferUnderflowException, CannotRedoException,
 CannotUndoException, ClassCastException, CMMException, ConcurrentModificationException, DOMException, EmptyStackException,
 IllegalArgumentException, IllegalMonitorStateException, IllegalPathStateException, IllegalStateException, ImagingOpException,
 IndexOutOfBoundsException, MissingResourceException, NegativeArraySizeException, NoSuchElementException, NullPointerException, 
ProfileDataException, ProviderException, RasterFormatException, SecurityException, SystemException, UndeclaredThrowableException,
 UnmodifiableSetException, UnsupportedOperationException


编程题: 用最有效率的方法算出2乘以8等於几? 
2 << 3





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值