StringBuffer sb = new StringBuffer("Hello ");
sb.append("world"); //在sb尾部追加一个字符串, 此时变成 Hello world;
sb.charAt(1) ; //返回下标为1的字符 此处是 e
sb.insert(1,"d"); //在 1 处插入新的字符串 d 此时变为 Hedllo world;
sb.reverse(); //反转字符 此时变成 dlrow olldeH
sb.delete(1,2); //删除字符串 此时变为Hllo world
sb.replace(3,4,"new"); //替换字符串 从 3开始到4结束 此时变为 Hllnewworld
容量是你还可以new多少个对象的空间。
你可以看一下这段说明。
Java把内存划分成两种:一种是栈内存,另一种是堆内存。在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配,当在一段代码块定义一个变量时,
堆内存用来存放由new创建的对象和数组,在堆中分配的内存,由java虚拟机的自动垃圾回收器来管理。在堆中产生了一个数组或者对象之后,还可以在栈中定义一个特殊的变量,让栈中的这个变量的取值等于数组或对象在堆内存中的首地址,栈中的这个变量就成了数组或对象的引用变量,以后就可以在程序中使用栈中的引用变量来访问堆中的数组或者对象,引用变量就相当于是为数组或者对象起的一个名称。引用变量是普通的变量,定义时在栈中分配,引用变量在程序运行到其作用域之外后被释放。而数组和对象本身在堆中分配,即使程序运行到使用new产生数组或者对象的语句所在的代码块之外,数组和对象本身占据的内存不会被释放,数组和对象在没有引用变量指向它的时候,才变为垃圾,不能在被使用,但仍然占据内存空间不放,在随后的一个不确定的时间被垃圾回收器收走(释放掉)。这也是java比较占内存的原因。
Java就在栈中为这个变量分配内存空间,当超过变量的作用域后,java会自动释放掉为该变量分配的内存空间,该内存空间可以立即被另作它用
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void print(char *p)
{
int l=strlen(p);
for(int i=l-1;i>=0;i--)
printf("%c",*(p+i));
}
int main()
{
char temp[128];
while(scanf("%s",temp)!=EOF)
{
print(temp);
printf(" ");
}
return 0;
}
toString是Object类的方法,所有类都从Object类继承。如果你定义的类没有覆盖toString方法,则对象在调用toString方法时用的是Object类toString方法,返回的是“类名@hashcode".
System.out.println(obj)在参数是一个对象时,会首先调用该对象的toString方法。
而String类和StringBuffer类都覆盖了toString方法,都是返回字符串。
所以带不带toString效果是一样的。
参数将被转换成字符串,就好象使用了 String.valueOf 方法一样。
然后,将所得字符串中的字符追加到此序列。 参数:obj - 一个 Object。
返回:此对象的一个引用。 另请参见:String.valueOf(java.lang.Object), append(java.lang.String)appendpublic StringBuffer append(String str) 将指定的字符串追加到此字符序列。
按顺序追加 String 变量中的字符,使此序列增加该变量的长度。如果 str 为 null,则追加 4 个字符 "null"。
假设此字符序列的长度在执行 append 方法前为 n。如果 k 小于 n,则新字符序列中索引 k 处的字符等于原序列中索引 k 处的字符;否则它等于参数 str 中索引 k-n 处的字符。
参数:str - 一个 string。 返回:此对象的一个引用。
appendpublic StringBuffer append(StringBuffer sb) 将指定的 StringBuffer 追加到此序列中。按顺序将 StringBuffer 参数中的字符追加到此 StringBuffer 中,并使 StringBuffer 在长度上增加该参数的长度。
如果 sb 为 null,则将 4 个 "null" 字符追加到此 StringBuffer 中。 在执行 append 方法前,让 StringBuffer 中包含的原有字符序列的长度为 n。
如果 k 小于 n,则新字符序列中索引 k 处的字符等于原有字符序列中索引 k 处的字符;否则它等于参数 sb 中索引 k-n 处的字符。 该方法在 this(目标)对象上实现同步,但不在源(sb)上实现同步。
参数:sb - 要追加的 StringBuffer。 返回:该对象的一个引用。
从以下版本开始:1.4 appendpublic StringBuffer append(CharSequence s) 将指定的 CharSequence 追加到该序列。按顺序将 CharSequence 参数中的字符追加到该序列中,使该序列增加该参数的长度。
该方法的结果与调用 this.append(s, 0, s.length()) 的结果完全相同; 该方法在 this(目标)对象上实现同步,但不在源(s)上实现同步。 如果s 为 null,则追加 4 个 "null" 字符。
指定者:接口Appendable 中的 append参数:s - 要追加的 CharSequence。 返回:此对象的一个引用。
从以下版本开始:1.5 appendpublic StringBuffer append(CharSequence s, int start, int end) 将指定 CharSequence 的子序列追加到此序列。按顺序追加参数 s 中的字符,即从索引 start 开始到索引 end 结束的此序列的内容。
此序列增加的长度为 end - start。 假设此字符序列的长度在执行 append 方法前为 n。
如果 k 小于 n,则新字符序列中索引 k 处的字符等于原序列中索引 k 处的字符;否则它等于参数 s 中索引 k+start-n 处的字符。 如果s 为 null,则认为 s 参数包含 4 个字符 "null",并以此为根据追加字符。
指定者:接口Appendable 中的 append参数:s - 要追加的序列。 start - 要追加的子序列的起始索引。
end - 要追加的子序列的结束索引。 返回:此对象的一个引用。
抛出: 如果 start 或 end 为负;或者 start 大于 end;或者 end 大于 s.length() 从以下版本开始:1.5 appendpublic StringBuffer append(char[] str) 将char 数组参数的字符串表示形式追加到此序列。按顺序将数组参数中的字符追加到此序列的内容中。
此字符将增加该参数的长度。 该方法的总体效果与以下操作过程的效果相同:先使用 String.valueOf(char[]) 方法将参数转换为字符串,然后将所得字符串的字符追加到此字符序列。
参数:str - 要追加的字符。 返回:此对象的一个引用。
appendpublic StringBuffer append(char[] str, int offset, int len) 将char 数组参数的子数组的字符串表示形式追加到此序列。将char 数组 str 中的字符按顺序追加到此序列的内容中,从索引 offset 开始。
此字符的长度将增加 len。 该方法的最终效果与以下操作过程的效果相同:先使用 String.valueOf(char[]) 方法将参数转换为字符串,然后将所得字符串的字符追加到此字符序列。
参数:str - 要追加的字符。 offset - 要追加的第一个 char 的索引。
len - 要追加的 char 的数量。 返回:此对象的一个引用。
appendpublic StringBuffer append(boolean b) 将boolean 参数的字符串表示形式追加到序列。参数将被转换成字符串,就好象使用了 String.valueOf 方法一样。
然后,将所得字符串中的字符追加到此序列。 参数:b - 一个 boolean 值。
返回:此对象的一个引用。 另请参见:String.valueOf(boolean), append(java.lang.String)appendpublic StringBuffer append(char c) 将char 参数的字符串表示形式追加到此序列。
参数将被追加到此序列。此序列的长度将增加 1。
该方法的最终效果与以下操作过程的效果相同:先使用 String.valueOf(char[]) 方法将参数转换为字符串,然后将所得字符串的字符追加到此字符序列。 指定者:接口Appendable 中的 append参数:c - 一个 char 值。
返回:此对象的一个引用。appendpublic StringBuffer append(int i) 将int 参数的字符串表示形式追加到此序列。
参数将被转换成字符串,就好象使用了 String.valueOf 方法一样。然后,将所得字符串中的字符追加到此序列。
参数:i - 一个 int 值。 返回:此对象的一个引用。
另请参见:String.valueOf(int), append(java.lang.String)。
这个request是jsp中的request吗?如果在jsp中,它是一个内置对象.
request的getRequestURL()方法的返回值本来就是一个Stringbuffer类型
request的RequestURL()方法的返回值才是一个String类型
url和uri的区别
Universal Resource Identifier, 简称"URI"
三部分组成:
1.访问资源的命名机制
2.存放资源的主机名
3.资源自身的名称(路径)
Uniform Resource Location,简称"URL(统一资源定位符)
由三部分组成:
1.协议(或称为服务方式)
2.存有该资源的主机IP地址(有时也包括端口号)
3.主机资源的具体地址(目录和文件名等)
更详细google下吧!
request的方法如下(只写一些常用到的):
public java.lang.Object getAttribute(java.lang.String.name)
获取属性名,后面是个字符串
public java.util.Enumeration getAttributeNames()
把所有属性的名称获取出来
public java.lang.String getCharacterEncoding()
获得字符编码方式
public int getContentLength()
获得内容长度
public java.lang.String getContentType()
获得Content类型
public ServletInputStream getInputStream() throws java.io.IOException
获取输入流,由最底层数据所构成的一个字符序列
public java.lang.String getParameter(java.lang.String name)
public java.util.Enumeration getParameterNames()
public java.lang.String[] getParameter Values(java.lang.String name)
获得参数值的列表
public java.lang.String getProtocol()
获得协议名
public java.lang.String getScheme()
获取请求的模式
public java.lang.String getServerName()
获取服务器的名称
public int getServerPort()
获取服务器的端口号
public java.io.BufferedReader getReader() throws java.io.IOException
getReader方法是返回的是对buffer进行字符型读取的对象
public java.lang.String getRemoteAddr()
获得远程的主机地址
public java.lang.String getRemoteHost()
获得远程主机名称
public void setAttribute(java.lang.String key,java.lang.Object o)
设置属性的方法
public java.lang.String getQueryString()
获得查询字符串
与其他对象相交互的方法
public HttpSession getSession(boolean create)
public HttpSession getSession()
public boolean ()
public boolean ()
public Cookie[] getCookie()
public java.lang.String getServletPath()
public java.lang.String getRequestedSessionId()
声明:本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
蜀ICP备2020033479号-4 Copyright © 2016 学习鸟. 页面生成时间:2.931秒