Java复习第八天学习笔记(String、常见API、包装数据类型)附有道云笔记链接

【有道云笔记】七 3.22 String,常见API、包装数据类型
https://note.youdao.com/s/TBKxWnj6

一、String

public void test1() { // "abc"双引号括起来的字符串:常量字符串,他也是一个对象 // 1.8之后常量池放到堆,在常量池里面找有没有这个"abc"对象, // 如果常量池里面没有这个字符串对象,java就帮你在常量池里面new一个"abc"字符串对象。 // 如果常量池里面有这个字符串,就把这个字符串的地址赋给这个变量。 String str1 = "abc"; String str2 = new String("abc"); String str3 = "abc"; // ==比较的是变量指向的对象的地址值 System.out.println(str1 == str2);// false System.out.println(str1 == str3);// true System.out.println(str2 == str3);// false // 比较字符串的内容是不是相等使用equals() // 表str1这个字符串和str2这个字符串的内容是不是相等 System.out.println(str1.equals(str2));// true System.out.println(str1.equals(str3));// true System.out.println(str2.equals(str3));// true }

0

0

0

@Test public void test2() { String str = "java AndroidA"; System.out.println(str.length());//13 char[] chars = str.toCharArray(); char ch = str.charAt(5);//A System.out.println(ch); System.out.println(str.indexOf('A'));//5 System.out.println(str.indexOf('X'));//-1 System.out.println(str.indexOf('A', 6));//12 System.out.println(str.indexOf("And"));//5 System.out.println(str.lastIndexOf('A'));//12 } @Test public void test3() { String str1 = "java"; String str2 = "Java"; System.out.println(str1.equals(str2));//false System.out.println(str1.equalsIgnoreCase(str2));//true String str = "java AndroidA"; System.out.println(str.contains("And"));//true System.out.println(str.startsWith("java"));//true //offset:偏移 System.out.println(str.startsWith("And", 5));//true System.out.println(str.endsWith("oidA"));//true System.out.println(str.isEmpty());//false // ""空字符串,也是一个对象 System.out.println("".isEmpty());//true } @Test public void test44() { // "" //String str = "java And"; char[] array = {'j', 'a', 'v', 'a', ' ', 'A', 'n', 'd'}; String str = new String(array); System.out.println(str);//java And char[] chars = str.toCharArray(); System.out.println(chars); //Arrays:操作数组的工具类 System.out.println(Arrays.toString(chars)); //[j, a, v, a, , A, n, d] } @Test public void test424() { String str = "java AndroidA"; String newStr = str.replace('A', 'B'); System.out.println(newStr); } @Test public void test66() { String str = "java android python"; String[] array = str.split(" "); System.out.println(Arrays.toString(array)); } @Test public void test87() { // subtree: 子树 // substring:子字符串 String str = "java AndroidA"; System.out.println(str.substring(5));//AndroidA //beginIndex – the beginning index, inclusive. //endIndex – the ending index, exclusive. System.out.println(str.substring(5, 8));//Andr }

二、String、StringBuffer、StringBuilder异同点

相同点:都是final类,都不能被继承。

不同点:

1、String长度是不可改变的,StringBuffer、StringBuilder长度是可变的。

2、StringBuffer是线程安全(需要加锁,效率低)、StringBuilder是线程不安全(没有加锁,效率高)。

final char[] value;

char[] value;

如果对这段代码加锁,就可以实现每次只有一个用户能进入这段代码,当执行完了之后,释放这个锁,另一个用户才能进来。

synchronized: 同步 加锁

if (money>=1000) {

money = money - 1000;

}

String str = str1 + str2 + str3 + str4;

String str1 = "java";

str1 + "android";

常量字符串的拼接,编译器会做优化,使用String就可以:

String str = "Java" + "PHP" + "Python" + "C";

@Test public void test55() { String str1 = "java"; String str2 = "php"; String str3 = "python"; StringBuilder builder = new StringBuilder("C"); //builder.append(str1); //builder.append(str2); //builder.append(str3); builder.append(str1).append(str2).append(str3); StringBuffer buffer = new StringBuffer("C"); buffer.append(str1).append(str2).append(str3); System.out.println("------------------"); String str = builder.toString(); System.out.println(str); }

三、包装数据类型

包装数据类型:

Java是纯面向对象语言,int、double都是基本数据类型。

int Integer

char Character

double Double

long Long

short Short

boolean Boolean

byte Byte

float Float

虽然基本数据类型和包装数据类型互相转换有装箱和拆箱的过程,但是我们平时使用的时候

就把包装数据类型当成基本数据类型来使用就可以。

public void test45() { System.out.println(Integer.MAX_VALUE); //自动拆箱和装箱 //Integer integer = new Integer(4); //自动装箱操作,等价于上面操作 Integer integer = 4; int i = integer.intValue(); int num = 5; num = num + 3; //integer.intValue() 自动拆箱 // 4+3 //new Integer(7) 自动装箱 integer = integer + 3; System.out.println(integer); }

包装数据类型最主要使用:包装数据类型和字符串之间的转换

1、把基本数据类型转换成字符串

(1) 基本数据类型+"" : String str = 12 + ""; // "12"

(2) 基本数据类型的包装类.toString()

String str1 = Integer.toString(3);

String str2 = Double.toString(3.14);

2、把字符串转换成基本数据类型(从网页的输入框中得到的都是字符串)

(1) Integer.parseInt(String str); // "23" "3.14"

Double.parseDouble(String str);

Boolean.parseBoolean(String str);

XXXX.parseXXXX(String str);

(2) new对象: Integer integer = new Integer(String str);

Integer interger = new Integer("4");

int i = integer.intValue();

四、作业

1、实现trim方法

0

String trim(String str);

"java Android"

" java Android"

"java Android "

""

" "

2、实现把“I Love Java!”的字符全部转换为小写并输出到控制台。

toLowerCase() toUpperCase()

Case Sensitive大小写敏感

  • 28
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值