欢迎使用CSDN-markdown编辑器

来源:互联网 发布:三菱plc编程入门 pdf 编辑:程序博客网 时间:2024/06/06 05:05

7.28总结


1. 包装类的享元模式

顾名思义:共享元对象。如果在一个系统中存在多个相同的对象,那么只需要共享一份对象的拷贝,而不必为每一次使用创建新的对象。

测试:    String num="abs";    String num1="acd";    String num2=new String(" 67 89 we asffds ert ");    //打印  logger  debug    System.out.println(Integer.toHexString(num.hashCode()));    System.out.println(Integer.toHexString(num1.indexOf('a')));    System.out.println(Integer.toHexString(num2.charAt(3)));    结果:        17872        0        20

享元模式是为数不多的、只为提升系统性能而生的设计模式。它的主要作用就是复用对象,以节省内存空间和对象创建时间。

2. 什么是Java对象序列化

Java平台允许我们在内存中创建可复用的Java对象,但一般情况下,只有当JVM处于运行时,这些对象才可能存在,即,这些对象的生命周期不会比JVM的生命周期更长。但在现实应用中,就可能要求在JVM停止运行之后能够保存(持久化)指定的对象,并在将来重新读取被保存的对象。Java对象序列化就能够帮助我们实现该功能。

使用Java对象序列化,在保存对象时,会把其状态保存为一组字节,在未来,再将这些字节组装成对象。必须注意地是,对象序列化保存的是对象的”状态”,即它的成员变量。由此可知,对象序列化不会关注类中的静态变量。

除了在持久化对象时会用到对象序列化之外,当使用RMI(远程方法调用),或在网络中传递对象时,都会用到对象序列化。Java序列化API为处理对象序列化提供了一个标准机制,该API简单易用。

3. String类的常用方法

⑴ length()字符串的长度

    String num="6789";    System.out.println(num.length());    输出结果为:4

⑵ charAt()截取一个字符

    String num1="abcd";    System.put.println(num1.charAt(2)); //括号中为索引号    结果为:c 

⑶ toCharArray()转换为字符数组

    String num1="afsg";    System.out.println(num1.toCharArray());    结果为:afsg

⑷ equals()和equalsIgnoreCase()比较两个字符串

    String a="Hello";    String b="Hello";    String c="World";    String d="HELLO";    System.out.println(a.equals(b));    System.out.println(a.equals(d));    System.out.println(a.equals(c)); //比较字符串及其长度,并且区分大小写    //比较字符串及其长度,并且不区分大小写    System.out.println(a.equalsIgnoreCase(d));    结果为:true false false true

⑸ startsWith()方法决定是否以特定字符串开始

    System.out.println(a.startsWith("He"));或者System.out.println(a.startsWith(b));    结果是:true

⑹ endWith()方法决定是否以特定字符串结束

    System.out.println(a.endsWith("d"));    结果是:false

⑺ compareTo()和compareToIgnoreCase() 比较字符串

    String s1 = "adger";      String s2 = "adgerfa";      String s3 = "ADGER";      String s4 = "adher";      System.out.println(s1.compareTo(s2));//-2      System.out.println(s1.compareTo(s3));//32      System.out.println(s1.compareToIgnoreCase(s3));//0      System.out.println(s3.compareToIgnoreCase(s4));//-1 

compareTo()的返回值是int,它是先比较对应字符的大小(ASCII码顺序)
1、如果字符串相等返回值0

2、如果第一个字符和参数的第一个字符不等,结束比较,返回他们之间的差值(ascii码值)(负值代表:前字符串的值小于后字符串,正值代表:前字符串大于后字符串)

3、如果第一个字符和参数的第一个字符相等,则以第二个字符和参数的第二个字符做比较,以此类推,直至比较的字符或被比较的字符有一方全比较完,这时就比较字符的长度.
compareToIgnoreCase()方法是不区分大小写,返回值是int,比较方式与compareTo()相同

    package lulu1;    import java.util.Arrays;    import java.util.Scanner;    /**     * 比较输入字符串的大小:不分大小写,按照字符串的大小排序      * @author chenglulu     *     */    public class Compare {        public static void main(String[] args) {        Scanner  sc=new Scanner(System.in);        System.out.println("请输入要比较的字符串:");        String input=sc.nextLine();        String[] s = input.trim().split(" "); //trim()是把开头和结尾的空格去掉        for(int i=0;i<s.length-1;i++){            for(int j=0;j<s.length-1-i;j++){                if(s[j].compareToIgnoreCase(s[j+1])>0){                    String temp = s[j];                    s[j]=s[j+1];                    s[j+1]=temp;                }            }        }        System.out.println(Arrays.toString(s));    }    }    //测试      //输入:   fas rew ada ADE FAA re bci def BCr aC Bc        //输出:aC ada ADE Bc bci BCr def FAA fas re rew  

⑻ indexOf() 查找字符或者子串第一次出现的地方。

    package lulu1;    import java.util.Scanner;    /**     * 查找字符或字符串第一次出现的地方     * @author chenglu     *     */        public class Date {        public static void main(String args[]){            Scanner sc=new Scanner(System.in);            System.out.println("请输入一个字符串:");             String input =sc.nextLine();            System.out.println(input.indexOf("sed"));  //不存在的话,返回-1            System.out.println(input.indexOf('a'));  //存在的话,返回相应的索引值        }    }

⑼ lastIndexOf() 查找字符或者子串是后一次出现的地方。

import java.util.Scanner;/** * 查找字符或字符串最后一次出现的地方 * @author chenglu * */public class Date {    public static void main(String args[]){        Scanner sc=new Scanner(System.in);        System.out.println("请输入一个字符串:");         String input =sc.nextLine();        System.out.println(input.lastIndexOf('s'));  //不存在的话,返回-1        System.out.println(input.indexOf('a'));  //存在的话,返回相应的索引值    }}

⑽ substring()截取字符串

System.out.println(input.substring(2, 6));  //返回索引为2到5的值结果为:请输入一个字符串:qwerasdf       eras

⑾ replace() 替换

    String a="wertqwertq";    System.out.println(a.replace("tq", "asdf"));//全部替换    System.out.println(a.replaceFirst("w", "mnbv")); //只替换第一个w    System.out.println(a.replaceAll("w", "123456"));//全部替换

结果为:
这里写图片描述

⑿ concat() 连接两个字符串

    String s="123456";    String s1="78987";    System.out.println(s.concat(s1));        结果为:12345678987

⒀ trim() 去掉起始和结尾的空格

    String d=" as df gh we  qw sd df as ";    System.out.println(d.trim());//把开始和结尾的空格去掉    结果为:as df gh we  qw sd df as

⒁ toLowerCase()/ toUpperCase() 大小写

    String  b="asdfghjk";    String c="ASDFGHJ";    System.out.println(b.toUpperCase());    System.out.println(c.toLowerCase());    System.out.println(s.toLowerCase());        结果为:            ASDFGHJK            asdfghj            123456  

⒂ split(String str)//将str作为分隔符进行字符串分解

        String d="as df gh we  qw sd df as ";        String[] ss = d.split(" ");        System.out.println(d.split(" ")); //输出地址        System.out.println(ss); //输出地址        System.out.println(Arrays.toString(ss)); //输出数组        结果为: [Ljava.lang.String;@39e5b5                [Ljava.lang.String;@117f31e                [as, df, gh, we, , qw, sd, df, as]

快捷键

  • 加粗 Ctrl + B
  • 斜体 Ctrl + I
  • 引用 Ctrl + Q
  • 插入链接 Ctrl + L
  • 插入代码 Ctrl + K
  • 插入图片 Ctrl + G
  • 提升标题 Ctrl + H
  • 有序列表 Ctrl + O
  • 无序列表 Ctrl + U
  • 横线 Ctrl + R
  • 撤销 Ctrl + Z
  • 重做 Ctrl + Y

Markdown及扩展

Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档,然后转换成格式丰富的HTML页面。 —— [ 维基百科 ]

使用简单的符号标识不同的标题,将某些文字标记为粗体或者斜体,创建一个链接等,详细语法参考帮助?。

表格

Markdown Extra 表格语法:

项目 价格 Computer $1600 Phone $12 Pipe $1

可以使用冒号来定义对齐方式:

项目 价格 数量 Computer 1600 元 5 Phone 12 元 12 Pipe 1 元 234

定义列表

Markdown Extra 定义列表语法:
项目1
项目2
定义 A
定义 B
项目3
定义 C

定义 D

定义D内容

代码块

代码块语法遵循标准markdown代码,例如:

@requires_authorizationdef somefunc(param1='', param2=0):    '''A docstring'''    if param1 > param2: # interesting        print 'Greater'    return (param2 - param1 + 1) or Noneclass SomeClass:    pass>>> message = '''interpreter... prompt'''
原创粉丝点击