QQ登录

只需一步,快速开始

登录 | 立即注册 | 找回密码
查看: 189|回复: 0

[学习笔记] Java暑期学习Day09 (字符串)

[复制链接]
最佳答案
3 
累计签到:47 天
连续签到:1 天
发表于 2017-7-13 23:37:38 | 显示全部楼层 |阅读模式

马上注册加入鱼C,享用更多服务吧^_^

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 马太效应 于 2017-7-13 23:37 编辑

Today is the 9th day and i hope i can stick to it.


无论System.arraycopy()还是Arrays.copyOf,用在类类型声明的数组时,都是执行浅层复制
Java对象的
层复制是指Java对象A本身被clone成新对象B,同时A的属性也是被clone成新对象,赋值到A的各个属性上去,A与B的相同属性都引用到不同的对象
Java对象的
层复制是指Java对象A本身被clone成新对象B,但A的属性没有被clone处理,只是把A的各个属性所指的对象赋值到B对应的属性上,A与B的相同属性都引用到同一个对象




  1. //数组元素拷贝

  2. public class Test {

  3.         static void print(int[] arr) {
  4.                 String ret = "[";
  5.                 for (int i = 0; i < arr.length; i++) {
  6.                         ret = ret + arr[i];
  7.                         if (i != arr.length - 1) {
  8.                                 ret = ret + ",";

  9.                         }
  10.                 }

  11.                 ret = ret + "]";
  12.                 System.out.println(ret);

  13.         }

  14.         /*
  15.          * int[] src ={1,2,3,4,5}; 目标 int[] dest=new int[10];
  16.          *
  17.          * 从哪一个位置开始拷贝 在目标数组中开始存放的位置 考虑拷贝几个元素 拷贝方法
  18.          *
  19.          * src:源,从哪个数组中拷贝数据
  20.          * dest:目标,把数据拷贝到哪一个数组中
  21.          * srcPos:从源数组中的哪一位置开始拷贝
  22.          * destPos:在目标数组中开始存放的位置
  23.          * length:拷贝几个元素
  24.          */

  25.         static void arrayCopy(int[] src, int srcPos, int[] dest, int destPos,
  26.                         int length) {
  27.                
  28.                 for (int index = srcPos; index < srcPos + length; index++) {

  29.                         dest[destPos] = src[index];
  30.                         destPos++;

  31.                 }

  32.         }

  33.         public static void main(String[] args) {

  34.                 int[] src = { 1, 2, 3, 7, 8, 11 };
  35.                 int[] dest = new int[10];
  36.                 // print(dest);
  37.                 // 把src数组中的3,7,8,11拷贝到dest数组中
  38.                 // arrayCopy(src,2,dest,3,4);
  39.                 // print(dest);
  40.                 System.arraycopy(src, 2, dest, 3, 4);
  41.                 print(dest);//[0,0,0,3,7,8,11,0,0,0]
  42.         }

  43. }
复制代码


字符串对象(引用数据类型)
  1. public class StringDemo {
  2.         public static void main(String[] args) {

  3.                 String name = "Apple";
  4.                 System.out.println(name.charAt(0));// A
  5.                 System.out.println(name.toUpperCase());// APPLE
  6.                 char[] cs = { 'A', 'p', 'p', 'l', 'e' };
  7.                 String name1 = new String(cs);
  8.                 char[] cs2 = name1.toCharArray();

  9.         }

  10. }
复制代码

a.  字符串本质是打包字符数组的对象,是java.lang.String的实例。
b.  在启动JVM并指定执行类时,可以一并指定命令行自变量,会收集为String数组,由main()中的args参考。
c.使用charAt()指定取得字符串中某个字符,索引从0开始;
  使用toUpperCase()将原本小写的字符串内容转为大写的字符串内容


d.字符串剖析为基本类型
方法 说明
Byte.parseByte(number) 将number剖析为byte整数
Float.parseFloat(number) 将number剖析为float浮点数
Integer.parseInt(number) 将number剖析为int整数
... ..

e.  以""包括的字符串,只要内容相同(序列、大小写相同),无论在程序代码中出现几次,
JVM都只会建立一个String实例,并在字符串池中维护。

f.  比较字符串实际字符内容是否相同,使用
equals()。

g.
字符串对象一旦建立,就无法更改对象中任何内容,对象上没有任何方法可以更改字符串内容


h.  字符串的使用“”,链接字符串必须使用+符号
    任何数据类型和String相连接(+),结构都是一个新的字符串

  1. public class StringDemo2 {

  2.         public static void main(String[] args) {

  3.                 // Java引用类型:类,接口,数组
  4.                 // 最常用的引用接口类型:String类->字符串
  5.                 // 引用类型的初始值:null (空)

  6.                 String useName = new String();
  7.                 useName = "维尼熊";
  8.                 System.out.println("名字:" + useName);// 名字:维尼熊

  9.                 int age = 17;
  10.                 System.out.println("年龄=" + age);// 年龄=17

  11.                 // \" \" 转义字符
  12.                 System.out.println("\"你好世界\"");// "你好世界"

  13.                 System.out.println(8 + 7 + "Hello");// 15Hello
  14.                 System.out.println("Hello" + 7 + 8);// Hello78
  15.                 System.out.println(7 + "Hello" + 8);// 7Hello8

  16.                 /* int xx="ABC";//不兼容的类型,String无法转换为int */
  17.         }

  18. }
复制代码





评分

参与人数 1鱼币 +7 收起 理由
小甲鱼 + 7 支持楼主!

查看全部评分

本帖被以下淘专辑推荐:

1. 如果您的提问得到满意的答案,请务必选择【最佳答案】;2. 如果想鼓励一下楼主或帮助到您的朋友,可以给他们【评分】作为奖励;
3. 善用【论坛搜索】功能,那里可能有您想要的答案;4. 粘贴代码请点击编辑框上的 <> 按钮,否则您的代码可能会被“吃掉”!

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

小甲鱼强烈推荐 上一条 /3 下一条

    移动客户端下载(未启用)
    微信公众号

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备11014136号

Copyright 2018 鱼C论坛 版权所有 All Rights Reserved.

Powered by Discuz! X3.1 Copyright
© 2001-2018 Comsenz Inc.    All Rights Reserved.

小黑屋|手机版|Archiver|鱼C工作室 ( 粤公网安备 44051102000370号 | 粤ICP备11014136号

GMT+8, 2017-11-19 07:01

快速回复 返回顶部 返回列表