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]
。