第二十三节(String,StringBuffer,基础类型对应的 8 个包装类,日期相关类、 Random 数字 ,Enum枚举)下

/*
    java.lang.String 是字符串类型

    注意:只要采用双引号赋值字符串,那么在编译期将会放到方法区中的字符串的常量池里,
            如果是运行时对字符串.加或相减会放到堆中(放之前会先验证方法区中是否含有
            相同的字符串常量,如果存在,把地址返回,如果不存在,先将字符串常量放到池中,然
            后再返回该对象的地址

*/
public class StringTest01{

    // java的入口
    public static void main(String[] args){

        // 创建一个“abc”字符串对象,该对象的内存地址,让a1变量来保存
        // a1 是一个引用,a指向“abc”对象
        String a1 = "abc";

        // a1是一个局部变量,a1前边没有final,所以a1可以重新指向
        // 但是 "abcd" 字符串本身是不可变
        a1 = "abcd";

        System.out.println("字符串为:"+a1);

        String a2 = "Ming"; // 在字符串常量池中新建一个“Arry”字符串对象,该对象是不可变的
        String a3 = "Ming"; // 从字符串常量池中直接拿来用

        System.out.println(a2 == a3);  // true

        // 比较两个字符串是否相等,不能用“==”,
        String a4 = new String("ming");
        String a5 = new String("ming");

        System.out.println(a4 == a5); // 

        // 比较两个字符串是否一致,必须使用String类型提供的equals方法
        System.out.println(a4.equals(a5)); // true

        String s1 = "a";

        String s2 = "b";

        s1 = s1 + s2

    }
}
/*
    普通字符串的声明和创建字符串对象的区别

        1. String a1 = "arry"; 只会在字符串常量池中创建一个“arry”字符串对象
        2. String a2 = new String("arry"); 会在字符串的常量池中创建一个“arry”字符串对象
        并且会在堆中再创建一个字符串对象

        第二种 方式比较浪费内存,常用第一种方式

*/
public class StringTest02{

    public static void main(String[] args){

        String a1 = "ming";

        String a2 = new String("ming");

    }

}
/*
    面试题:
        String a1 = new String("ming");
        String a2 = new String("ming");

        以上代码 创建了几个对象?    

*/
public class StringTest03{

    public static void main(String[] args){

        String a1 = new String("ming");
        String a2 = new String("ming");

        /*
            通过图形分析:

                1、 创建了3个对象,堆区中2个对象,常量池中1个

                建议:使用String的时候不建议使用new关键字,因为它会创建两个对象

                总结: 堆区中 试运行期分配的,常量池中是编译期分配的

        */

    }

}
/*
    使用String的时候注意的问题:

        尽量不要频繁的拼接操作,因为字符串一旦创建不可改变,只要频繁拼接,
        就会在字符串常量池中创建大量的字符串对象,给垃圾回收带来问题

*/
public class StringTest04{

    public static void main(String[] args){

        String[] s = {"sport","music","food","sleep"};

        //  需求: 将所有的兴趣爱好拼接成字符串“sport,music,food,sleep”;

        String temp = "";
        for(int i = 0; i < s.length; i++){
            if(i == s.length-1){
                temp += s[i];
            } else {
                temp += s[i]+",";
            }
        }

        System.out.println("拼接好的字符串:"+temp);

    }

}
/*
    字符串常用的构造方法

*/
public class StringTest05{

    public static void main(String[] args){

        String a1 = "ming";

        String a2 = new String("ming");

        byte[] bytes = {1,2,3,4};
        String a3 = new String(bytes);
        System.out.println(a3);

        String  a4 = new String(bytes,1,2);
        System.out.println(a4);

        char[] a5 = {‘我‘,‘是‘,‘A‘};
        String s = new String(a5);
        System.out.println(s);

        // 通过使用平台的默认字符集解码指定的 byte 子数组,构造一个新的 String。
        String a6 = new String(a5,2,1);
        System.out.println(a6);

    }

}
时间: 2024-10-26 16:55:36

第二十三节(String,StringBuffer,基础类型对应的 8 个包装类,日期相关类、 Random 数字 ,Enum枚举)下的相关文章

(转)第二十三节 inotify事件监控工具

第二十三节 inotify事件监控工具 标签(空格分隔): Linux实战教学笔记-陈思齐 原文:http://www.cnblogs.com/chensiqiqi/p/6542268.html 第1章,NFS存储服务器与backup备份服务器的搭建. 详细细节知识与搭建请关注: http://www.cnblogs.com/chensiqiqi/p/6514315.html Rsync数据同步工具 http://www.cnblogs.com/chensiqiqi/p/6530859.html

centos mysql 优化 第二十三节课

centos mysql  优化  第二十三节课 f

第二十二节(String,StringBuffer,基础类型对应的 8 个包装类,日期相关类、 Random 数字 ,Enum枚举)上

/* 获取当前的毫秒数 1S = 1000毫秒 */ public class DateTest01{ public static void main(String[] args){ long now = System.currentTimeMillis(); System.out.println(now); // 1418662206661 } } /////////////////////////////////////////////////////////////////////////

第二十三节: EF性能篇(三)之基于开源组件 Z.EntityFrameWork.Plus.EF6解决EF性能问题

一. 开篇说明 EF的性能问题一直以来经常被人所吐槽,究其原因在于“复杂的操作在生成SQL阶段耗时长,且执行效率不高”,但并不是没有办法解决,从EF本身举几个简单的优化例子: ①:如果仅是查询数据,并不对数据进行增.删.改操作,查询数据的时候可以取消状态追踪. db.TestInfor.AsNoTracking().FirstOrDefault(); ②:用什么查什么,比如一张表有100多个字段,本次业务只需要5个字段,一定是select这5个字段,然后toList,而不是全部查询,再toLis

第二十五天 IPtable基础框架、扩展匹配及防火墙原理、iptable入门

1.linux网络防火墙及netfilter基础原理 2.netfilter基础原理及iptable入门 3.iptable 基础框架及扩展匹配 4.iptable扩展匹配 一.linux防火墙及netfilter基础原理 防火墙(Firewall)有主机防火墙和网络防火墙之分.有硬件防火墙和软件防火墙之分. 防火墙是工作与主机或网络边缘对进出的报文根据定义的规则作检查,进而对被匹配规则的报文做出相应处理的套件: IDS:(Intrusion Detect System 入侵检查系统),HIDS

学习笔记第二十三节课

管道符和作业控制 管道符表示把一个文件的输出的内容, 传递给后面的命令. 比如wc-l 的用法 可以统计ls 下有多少个目录 文件. 还有之前用的find命令.可以列出当前目录下所有文件, 也可以用管道符. 以后会经常用管道符. ctrl+z 可以暂停一个任务., 可以用fg 恢复任务.(fg+暂停任务的id号 可以恢复指定的暂停任务.) jobs 命令 可以把已经停止的任务给列出来. bg可以把任务放在后台. vim的命令 可能显示的不够明显, 可以用 vmstat来做实验. 可以用bg把它放

centos mysql 实战 第二十三节课

f

第二十三节(表单验证)

<title>form表单验证 </title> <style> /*验证css开始*/ /* common css ============================================== */ body{margin:0 auto;text-align:center;font:12px/1.5 arial;color:#242424;background:#212222;} div{text-align:left;} :focus{outline

[ExtJS5学习笔记]第二十三节 Extjs5中表格gridpanel的列格式设置

本文地址:http://blog.csdn.net/sushengmiyan/article/details/39665979 官方文档:http://docs.sencha.com/extjs/5.0/apidocs/#!/api/Ext.grid.column.Date 本文作者:sushengmiyan ----------------------------------------------------------------------------------------------