JAVA基础之字符串
来源:互联网 发布:unity3d中文版软件 编辑:程序博客网 时间:2024/06/04 08:52
一、字符串对象创建方式
String str = "abc";String str1 = new String("abc");
二、基本数据类型的包装类
8种基本数据类型:byte short int long char boolean float double
8种基本类型——对应引用类型
byte——Byte
short——Short
int——Integer
long——Long
float——Float
double——Double
char——Character
boolean——Boolean
包装类构造方式及其和基本数据类型之间的转化(包装类的作用:将基本数据类型包装成为引用数据类型,从而可以使用一些属性和方法)
int i=10;//基本类型//基本类型----》引用类型Integer ii=new Integer(i);System.out.println(ii.intValue());//引用类型----》基本类型int iii=ii;System.out.println(iii);//String 和基本类型之间的转化:String strData="12.6";//1、String----》基本类型:基本类型对应封装类.parseXXX()//System.out.println(Integer.parseInt(strData)+1);//System.out.println(Double.parseDouble(strData));//2、基本类型转成String:String.valueOf(i)//System.out.println(i+"");System.out.println(String.valueOf(i)+1);三、StringTokenizer
String str="1,2!3.4,5,6";/*String[] arr=str.split(",");for (int i = 0; i < arr.length; i++) {System.out.println(arr[i]);}*/StringTokenizer st=new StringTokenizer(str, ",!.");while(st.hasMoreTokens()){//判断是否有下一个元素String element=st.nextToken();//游标下移 取出元素System.out.println(element);}四、Character
System.out.println(Character.isDigit('3'));System.out.println(Character.isLetter('r'));System.out.println(Character.isLetterOrDigit('t'));/*练习:用户键盘输入一个字符串,判断该字符串是否是合法用户名 (用户名长度5-16位、数字、字母和_组成、不能以数字开头)*/public static boolean checkUserName(String userName){if(userName.length() >=5 && userName.length() <= 16){if(!Character.isDigit(userName.charAt(0))){char ch='a';for(int i=0;i<userName.length();i++){ch=userName.charAt(i);if(!(Character.isLetterOrDigit(ch) || ch =='_')){System.out.println("必须由数字、字母和_组成");return false;}else if(i == userName.length()-1){return true;}}}else{System.out.println("首字母不能是数字");return false;}}else{System.out.println("长度不合法");return false;}return false;}五、Object和toString()方法
/*ToString()方法的原文定义:getClass().getName() + '@' + Integer.toHexString(hashCode()) ,一般情况在我们自定义的类中需要重写该方法:*/public class People {private String code;private String name;private String sex;public People(String code, String name, String sex) {super();this.code = code;this.name = name;this.sex = sex;}public People() {}public String getCode() {return code;}public void setCode(String code) {this.code = code;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}@Overridepublic String toString() {return "People [code=" + code + ", name=" + name + ", sex=" + sex + "]";}public static void main(String[] args) {People p=new People("001","张三","男");System.out.println(p);}}六、JVM内存划分
1.程序计数器:CPU执行程序指令
2.本地方法栈:操作系统的一些函数需要的参数
3.虚拟机栈:JAVA中的方法中的参数(局部变量、对象引用)
4.堆:对象(实例变量)
5.方法区
七、常量池
1.静态常量池
class文件中(编译后)
2.运行时常量池
必须将class文件装载后,在方法区中。
字符串常量池:相同序列的字符串只允许出现一次。
笔试题:比较以下创建字符串对象的方法
1.String str = "abc";
存储在常量池中,且相同序列的字符串只有一个
2.String str1 = new String("abc");
str1引用的是堆内存中的字符串对象。
如果字符串常量池没有"abc",则先在常量池中创建"abc",然后再到堆内存中创建"abc";
如果常量池中有"abc",则旨在堆内存中创建一个对象。
八、==和equals()方法
1.==一般用来比较基本数据类型是否想等,如果两个非空的引用x和y,引用同一个对象,==也返回true
2.equals()、原生定义在Object类中,对于任何非空参考值x和y ,当且仅当x和y引用相同对象( x == y具有值true )时,该方法返回true 。
一般情况,子类需要重写Object的equals(),以满足子类的需求。
九、StringBuffer 和 StringBuilder
StringBuffer sb=new StringBuffer("abc");//1、在sb的后面追加123//b.append("123");//2、删除指定区间的字符序列[)//sb.delete(1, 2);//3、在指定位置插入值sb.insert(0, "A");//4、字符串反转sb.reverse();System.out.println(sb);笔试题:String 、StringBuffer和StringBuilder之间的区别
1、使用性能
StringBuilder > StringBuffer > String
2、线程安全
StringBuffer 更安全
线程安全(同步):同一时刻只能有一个线程来访问资源。
线程不安全(异步):同一时刻,运行多个线程同时访问该资源。
- Java基础之字符串
- Java基础之字符串
- JAVA基础之字符串
- Java基础之字符串类
- JAVA基础之四:字符串
- java基础之字符串反转
- JAVA语言基础之字符串
- Java基础:字符串之String
- Java基础之字符串匹配大全
- JAVA基础之String字符串笔记总结
- <<黑马程序员>>java基础之String字符串
- java基础之String类查找字符串
- 黑马程序员java基础之字符串
- java基础之字符串常见方法总结
- java基础之字符串转日期
- java基础系列(三)之--java字符串
- 程序设计基础之:字符串
- python基础之字符串
- 关于数据库中动态字段的说明
- PWN综合练习二
- 静态库和动态库制作
- 在Mac系统下给PDF文档中添加新内容
- bzoj2818: Gcd(欧拉函数)
- JAVA基础之字符串
- 线上升级Redis纪实
- oracle sql调优的经历(隐士转换导致索引失效)
- Maven3的jar包上传
- SpringBoot优化内嵌的Tomcat
- 分步积分法
- 平方根,立方根,阶乘,追赶法(C#)
- 【记录】微信录音开发(企业微信JSSDK-下载到自己的服务器-ffmpeg转码h5播放)
- Gradle for Android(四)——依赖冲突解决