当前位置: 首页 > news >正文

购物帮做特惠的网站中国营销网站

购物帮做特惠的网站,中国营销网站,杭州四喜做网站建设么,中国建设银行广西分行网站首页---------------------- android培训、java培训、期待与您交流! ---------------------- 1.创建对象 对于java程序中的字符串直接常量,JVM会使用一个字符串池来保存它们。当第一次使用某个字符串直接常量时,JVM会将它放入字符串池中进行缓存。…

---------------------- android培训、java培训、期待与您交流! ----------------------

1.创建对象

  对于java程序中的字符串直接常量,JVM会使用一个字符串池来保存它们。当第一次使用某个字符串直接常量时,JVM会将它放入字符串池中进行缓存。在一般情况下,字符串池中的字符串对象不会被垃圾回收。当程序再次需要使用该字符串时,无需重新创建一个新的字符串就可以直接让引用变量直接指向字符串中已有的字符串。而使用new操作创建的字符串对象不指向字符串池中的对象,但是可以使用intern()方法使其指向字符串池中的对象。

 

1 public class StringDemo1 {
2     public static void main(String[] args){
3         String str1 ="abc";
4         String str2 ="abc";
5         String str3 =new String("abc");
6         System.out.println(str1==str2);//true
7         System.out.println(str1==str3);//false
8         }
9 }

常见问题

String str3 =new String("abc");

创建了几个对象?
答:两个

String str ="ab"+"cd";

创建了几个对象?

答:一个。"ab"和"cd"都是常量被放在字符串池中。因此只创建了一个abcd字符串池中并将字符串abcd保存在字符串池中。

 

public class StringDemo1 {public static void main(String[] args){String str1 ="ab";String str2 ="cd";String str3 ="ab"+"cd";//创建对象并加入字符串池String str4 =str1+str2;String str5 =str1+"cd";System.out.println(str3==str4);//falseSystem.out.println(str3==str5);//false}
}

  由上面代码可知:只有引号包含文本的方式才创建的String对象才能被添加到字符串池中,对于包含new方法新建对象的”+“连接表达式他所产生的新对象不会被加到字符串池中。

  但是有一种情况需要引起我们的注意:

public class StringDemo1 {private final static String str1 ="ab";private final static String str2 ="cd";public static void main(String[] args){String str3 ="ab"+"cd";//创建对象并加入字符串池String str4 =str1+str2;String str5 =str1+"cd";System.out.println(str3==str4);//trueSystem.out.println(str3==str5);//true}
}

  这又是为什么呢?原因是这样的,对于常量来讲。它的值是固定的,因此在编译期间就能被确定了。

将上面的代码稍加改变看看会出现什么情况。

 1 public class StringDemo1 {2     private final static String str1 ;3     private final static String str2;4     static{5     str1="ab";6     str2="cd";7     }8     public static void main(String[] args){9         String str3 ="ab"+"cd";//创建对象并加入字符串池
10         String str4 =str1+str2;
11         String str5 =str1+"cd";
12         System.out.println(str3==str4);//false
13         System.out.println(str3==str5);//false
14         
15         }
16 }

str1和str2虽然被定义为常量,但是她们美誉马上赋值,在运算出s的值前,她们何时被赋值,以及被赋什么值都是变数,因此性质和变量一样。只能在运行时被创建。

2.字符串方法

获取方法

  • int length()
  • char charAt(int index)根据位置获取某个字符
  • int indexOf(int ch) 返回的是ch在字符串中第一次出现的位置
  • int indexOf(int ch,int fromIndex)从fromIndex指定位置开始,获取ch在字符串中第一次出现的位置
  • int indexOf(String str)
  • int indexOf(String str,int fromIndex)
  • int lastIndexOf(int ch)

判断方法

  • boolean contains(String str) 另一种判断方法:if(str.index(str)!=-1)
  • boolean startsWith(String str)
  • boolean endsWith(String str)
  • bolean isEmpty(String str)
  • boolean equals(String str)
  • boolean equalsIgnoreCase(String str);

转换方法

  • 将字符数组转换为字符串

构造函数

1.String(char[] chs)

2.String(char[] chs,offset,count)将字符数组中的一部分转成字符串。

静态方法

1.static String copyValueOf(char[] chs)

2.static String copyValueOf(char[] chs,int offset,int count)

3.static String valueOf(char[] )

4.static String valueOf(char[] chs,int offset,int count)

  • 将字符串转换成字符数组

char[] toCharArray

  • 将字符数组转换成字符串
  • 将字符串转换成字节数组

byte[] toBytes

替换方法

String replace(olderStr,newStr)

切割方法

String split(regex)

获取子串

String subString(begin)

String subString(begin,end)包含头不包含尾

将字符串转换成大小写

String toUpperCase()

String toLowerCase()

将字符串两端的空格去除

String trim()

对两个字符串进行自然顺序的比较

int compareTo(String str)

3.String 练习

1.字符串翻转

 1 public class StringDemo2 {2     public static void main(String[] args){3         String str = "avdkfasjks";4         reverseMethod_1(str);5     }6     public static void reverseMethod_1(String str){7         for(int i=str.length();i>0;i--){8             System.out.print(str.charAt(i-1));9         }
10     }
11 }

2.获取最大相同子串

public class StringDemo2 {public static void main(String[] args){String str1 = "avdkfasjks";String str2 = "ewavdrtte";System.out.println(commonMaxSubstring(str1, str2));}public static String commonMaxSubstring(String str1,String str2){int len = str1.length();String str3 = null;outer://i为子串的长度for(int i = len;i>0;i--){//j为子串的脚标for(int j=0;j<len-i+1;j++){str3=str1.substring(j,j+i);if(str2.contains(str3))break outer;}}return str3;}
}

 ---------------------- android培训、java培训、期待与您交流! ---------------------- 详细请查看:http://edu.csdn.net/heima

转载于:https://www.cnblogs.com/malinkang1989/archive/2012/07/27/2611478.html

http://www.wooajung.com/news/34803.html

相关文章:

  • 旅游网站开发设计毕设论文东莞关键词优化平台
  • 企业网站建设需要注意什么广告优化师培训
  • 登录器显的窗口网站怎么做自动引流推广软件
  • 凡科建站做的网站收录慢吗seo常用的工具
  • 郑州vi设计公司广州市口碑seo推广外包
  • 网站建设与维护浙江省试题项链seo关键词
  • 自己做soho需要做网站吗广告开户南京seo
  • 厦门网站建设哪好深圳广告公司
  • 深圳网站建设公司简介链接买卖价格
  • 苏州网站建设报价单爱站网长尾挖掘工具
  • 重庆做腋臭骑士网站seo排名优化厂家
  • 江西省赣州市章贡区邮政编码seo工资待遇怎么样
  • 三网合一网站远吗网店推广常用的方法
  • asp门户网站源码网站制作流程是什么
  • 长春网站制作套餐合肥今天的最新消息
  • 女孩做网站运营好吗深圳外包seo
  • 网站怎么开启gzip自媒体推广
  • 什么网站可以做国外生意电子商务是干什么的
  • 网站建设与管理的通知热门搜索排行榜
  • 免费加客源做整站优化
  • 网站建设谈客户说什么手机app免费下载
  • 做竞价推广的网站要求百度店铺免费入驻
  • 网站外链可以在哪些平台上做外链珠海关键词优化软件
  • 武夷山景区网站建设优点百度怎么做推广和宣传
  • 国外对旅游网站的建设电脑速成班短期电脑培训班
  • 商城网站开发技术电子商务与网络营销题库
  • 网站正在建设中动画百度权重工具
  • 个人站长怎么做企业网站今日国际新闻摘抄
  • 网站功能性介绍广告公司的业务范围
  • 淮北论坛网官网百度seo关键词排名优化