面试题

java基础



1.String与Stringbuffer的区别,String是否可以继承,在内存中它们分别存储在那里



(1)string类是不可变类,final类型,而stringbuffer类是可变类,可操作对字符串内容进行修改



(2)string类覆盖了object类的equals()方法,而stringbuffer没有



(3)string类对象可以使用“+”进行连接,而stringbuffer类对象之间不行。



(4)stringbuffer是一个可变对象,对它进行修改的时候不会像string那样重新建立对象,只能通过构造函数来建立。



(5)string的长度一旦变动,其内部将重新分配新的内存空间



         stringbuffer在做字符长度变动的时候将继续使用原来的内存空间,不新分配。



  
内存中的分配






int a=3   //栈

String A ="a";  //栈

String B=new String("b");    //堆 

StringBuffer C=new StringBuffer("c");     //堆









2.抽象类与接口的区别



(1)抽象类在java语言中表示的是一种继承关系,一个类只能使用一次继承关系,但是一个类却可以实现多个接口



(2)抽象类和接口反映出的设计理念不同,抽象类表示的是is-a关系,接口表示的是like-a关系



(3)在抽象类中,变量可在子类中重定义,重新赋值,可以有非抽象方法



       在接口中所有变量都是public static final类型的,必须给出初值,不能重新赋值。并且所有方法都是public abstract类型的,不能有非抽象方法



3.hashmap与hasptable的区别






   HashMap





Hashtable


的轻量级实现(非线程安全的实现),他们都完成了


Map


接口






   (1)


HashMap


允许将


null


作为一个


entry





key


或者


value


,而


Hashtable


不允许。





  (2)最大的不同是,


Hashtable


的方法是


Synchronize


的,而


HashMap


不是,在多个线程访问


Hashtable


时,不需要自己为它的方法实现同步,而


HashMap
就必须为之提供外同步。







4.


Map

是否有顺序,什么样的有顺序,怎样遍历一个map。



   treemap有顺序。遍历一个map有两种方法:(1)iterator(2)增强型for循环(for-each)



5.int与string怎么进行转换



   string转int





1). int i = Integer.parseInt([String]); 或  

i = Integer.parseInt([String],[int radix]); 

2). int i = Integer.valueOf(my_str).intValue();  









   int转string




1.) String s = String.valueOf(i); 

2.) String s = Integer.toString(i);  

3.) String s = "" + i;  









6
.Java
中怎么会出现内存泄露




  Normal
  0
 
  7.8 磅
  0
  2
 
  false
  false
  false
 
  
  
  
  
  
  
  
  
  
  
  
  
 
  MicrosoftInternetExplorer4

<![endif]-->
Java[/size]
也存在内存泄露问题,其原因主要是一些对象虽然不再被使用,但它们仍然被引用。为了解决这些问题,我们可以通过软件工具来检查内存泄露,检查的主要原理就是暴露出所有堆中的对象,让程序员寻找那些无用但仍被引用的对象。





  Normal
  0
 
  7.8 磅
  0
  2
 
  false
  false
  false
 
  
  
  
  
  
  
  
  
  
  
  
  
 
  MicrosoftInternetExplorer4

<![endif]-->
  [/size]
A a = new
A();


[/size]
  
//
应用
a
对象



  [/size]
a = null; //
当使用对象
a
之后主动将其设置为空


7.
java中函数中传递的是引用还是值?






Java[/size]
中参数传递的都是值
,
对应基本类型
,
传递的是原值的拷贝
;
对于类类型
,
传递的是引用即地址的拷贝
.







8.

多线程实现的

2种方式,有什么优缺点,多线程容易出现的问题。死锁,同步,怎么解决。



继承thread类和实现runnable接口。










  Normal
  0
 
  7.8 磅
  0
  2
 
  false
  false
  false
 
  
  
  
  
  
  
  
  
  
  
  
  
 
  MicrosoftInternetExplorer4

<![endif]-->
[size=9pt;]使

用Runnable
接口
[/size]


[size=9pt;]可以将代码和数据分开,形成清晰的模型;

[/size]

[size=9pt;]还可以从其他类继承;

[/size]

[size=9pt;]保持程序风格的一致性。

[/size]

[size=9pt;" lang="EN-US]
[/size]

Thread[/size]

[/size]


;[/size]
[/size]


     [/size]
Thread. currentThread()[/size]





















 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值