浅谈Java(三)

2020-01-13  本文已影响0人  吾未忘许汝之诺

String类


    字符串都用“”,+进行字符串拼接,JVM支持字符串类

    但是需要注意的是,String可以保存字符串是因为其中定义了一个数组,String类中的数据都保存在数组中

    Jdk1.9开始String使用byte数据类型,字节数组

    1.8用字符数组

    String可以通过直接赋值,或者构造方法如:

    String name = new String(“helloworld”);

    后面差别后面比较

String的数据比较


    String也可以试用“==”来判断是否相等,但是不准确。

    比较不成功,可以使用public boolean equals(String str)进行比较

    即String1.equals(String2)

   

面试题:String比较中”==”与equals()区别

    1. ”==”进行的是数值比较,比较的是地址比较

    2. Equals()比较的是地址中的内容比较.

字符串常量是String类的匿名对象


    在程序开发中任一个任意的一个整数都是int型,任意的小数都是double型,任何使用双引号的常量都是String类.

 String匿名对象可以调用equals()方法


    程序中没有字符串常量这种基本类型,有的只是String类的匿名对象

    关于对象相等判断相等的技巧:

    1. 当用户输入数据是进行比较,可以使用常量调用equals()方法进行回避用户空输入的功能.例如:String input = null;

System.out.println(“mldn”.equals(input));

String类两种实例化方式区别


    1. 直接赋值的实例化模式,可以实现同一个字符串的数据共享是因为Java程序底层提供有一个专门的字符串池(字符串数组)


    2. 这样构造方法实例化方法会存在浪费空间问题:


 3. 实例化对象的内容不会自动入池,但是可以通过public String intern()进行手工入池即:

    String.intern();

    面试题:解释String类两种实例化两者区别?


    直接赋值:指挥产生一个实例化对象,且自动保存在对象池当中,以实现字符串实例的重用

    构造方法:会产生两个实例化对象,且不会自动入池,无法实现对象重用,可以使用intern()进行手工入池.

String对象(常量)池


    对象池的主要目的是实现数据的共享处理.但是在java中对象池分为

    静态常量池:在程序加载时会对所有保存的字符串,普通常量,类和方法的信息等等进行分配

    运行时常量池:当一个程序加载后,可能是变量,这时提供的常量池

字符串内容不可修改


    在String类中包含的时一个数组,数组的缺点在于长度不可改变.只是改变的是引用的地址,这样就会产生很多内存垃圾,会影响程序的性能.在String中尽量不要进行频繁的修改.

主方法组成分析


    主方法有:public static void main(String args[]){}

    (1)public:描述的是一种访问权限.开始点一定是公共的

    (2)static:程序的执行是通过类名称完成的,所以表示此方法是由类直接调用.

    (3)void:主方法是一切的起点,必定不会有返回值

    (4)main:是一个系统定义号的方法名称

    (5)String[] args:字符串数组,可以实现程序启动参数的接收

上一篇 下一篇

猜你喜欢

热点阅读