Java String 字符串处理疑点再解
华仔在网上阅过诸多关于String的文章,仍是有疑在心中不解,遂寻Jack求惑。
Jack道:何惑不解?拿与我面前便可。
华仔手于心,却拿不出String这玩意...Jack貌如大师一叹,将String呈于他面前。
“String中文名为'字符串',如此而已;身之血液,能量之载体。”
1、简述String与StringBuffer的异同。
一个是非可变对象,另一个是可变对象,StringBuffer于内存堆,并由来自常量池的String任意拼装,无论何时何地。
2、String与char[]、byte[]的联系,如何转换。
String testStr = "test中";
char[] c = testStr.toCharArray(); //注:char为16位‘中’可以存放,此转换是安全的.
byte[] b=testStr.getBytes(); //注:byte位8位,此转换存在潜在威胁.
String是为char组成的串,byte则为该串的ASCII码.
3、详细说明以下语句在JVM中的处理过程。
1.StringBuffer str=new StringBuffer(“TEST”);
2.str+=”DEMO”;
首先检测常量池是否有"TEST",否,则构造一个String:"TEST";将"TEST"再用于构造str,之后会报错于句2;
其实以上语句不会通过编译.
注: StringBuffer也是为char组成的串,只是该串在StringBuffer改变时长度进行扩充,而String改变时其中的char[] 是重新构造,这就是 变与不变之谜啦.
4、如何设置字符串的字符集编码。
String charSetStr=new String(b,"GBK");
b=charSetStr.getBytes();
charSetStr=new String(b,"UTF-8");
好了,谁可以告诉华仔,以下代码段①,②哪个效率更优呢,Jack?
I、
①、String result=”hello”+”world”;
②、StringBuffer result=new String().append(“hello”).append(“world”);
II、
①、StringBuffer result= new StringBuffer();
for(int i=0;i<100000;i++){
result.append(“hello”);
}
②、StringBuffer result= new StringBuffer(10);
for(int i=0;i<1
相关文档:
在成功实现Java调用C++之后,接下来想到能否通过JNA实现Java调用Fortran,今天试验了一下,还是比较容易的。
网上有一个Java调用F95的例子,但是我考虑不仅要实现F95的调用,还要实现F77的调用,所以费了一些周折。
问题的关键在于F77为过程名自动添加了一个尾部的下划线,所以sub1这个过程,到Java一端,就变成了sub1_, ......
1.接口的方法默认都是public 的,方法只能是public&abstract,方法的实现不能小于接口方法的visibality.
接口中的域默认是public static final的。
一个类可以实现很多个接口。
2.内部类具有外围类(enclosing class)的所有元素的访问权。
3.匿名类如果希望是有一个在其外部定义的对象, ......
Basic concepts in OOP
Encapsulation:隐藏实现过程,对外提供公开一致的接口、使软件易于更新与维护。
Polymorphism:一个事物自动获得另一事物的状态行为的机制。
Inheritance:一个类自动获得另一个类的属性或者方法的过程。
1.类的结构
类名
&nb ......
大家在去参加面试的时候,经常会遇到这样的考题:给你两个类的代码,它们之间是继承的
关系,每个类里只有构造器方法和一些变量,构造器里可能还有一段代码对变量值进行了某
种运算,另外还有一些将变量值输出到控制台的代码,然后让我们判断输出的结果。这实际
上是在考查我们对于继承情况下类的初始化顺序的了解。
我 ......
如今发现java越来越难找工作了,一个大重庆既然招聘java的公司不到3家,并且要求还高呢。突然感觉向我们这样从学校培训出来的,学历也不是好高的,真的活不下去了。这世道,明明中国这么缺软件开发的为什么,我们还是没得机会被公司录用呢。凄凉。 ......