第二记 Java数据类型

一、数据类型

  java中数据类型分为基本数据与引用数据类型两大类,其中又有更细致的划分,下面以图展示

二、基本数据类型封装类

Java是一门面向对象的语言,但是在一些情况下基本数据类型无法满足Java面向对象的特性,我们便可以调用包装类的方法完成我们所需要的操作

三、String类

1.String类的两种实例化方式

String是一个很特殊的类,我们通常称呼它为字符串,它既可以采用基本数据类型一样的赋值方式,也可以采用类的方式new一个对象

范例:String str="Hello";

   String str=new String("Hello");

2.字符串之间的比较

说到比较就不得不说 == 和 equals() 方法之间的区别了

“==” 操作符专门用来比较两个变量之间的值是否相等,也就是要比较两个基本类型的数据之间的值是否相等,只能用“==”操作符

如果一个变量指向的数据是对象类型的,那么这时候涉及到了两块内存空间, 如 String str = new String("hello"),变量(在对象这里也叫对象引用名)str占用一块内存(栈空间),对象本身new String("hello")占用的是另一块内存(堆空间),此时,变量obj所对应的内存中存储的数值就是对象占用的那块内存的首地址。如果要比较两个变量是否指向同一个对象(即看这两个变量所对应的内存中的数值是否相等),这时候就需要使用“==”操作符进行比较了

 equals() 方法是用于比较两个独立对象的内容是否相同,比如说两本一年级语文书,用==比较的就是这两本语文书是否是同一本一年级语文书,很明显是false,用equals比较的就是这两本语文书是否内容相同,很明显是true

讲明白这些,接下来讲一下字符串之间的比较

(1) 使用 == 比较字符串

    String str1 = "hello" ;

    String str2 = new String("hello");

    System.out.println(str1 == str2) ;

控制台输出:false

见解:因为str1和str2保存在栈内存中,分别存放了两个对象所保存的内存地址的数值,因此不相等。这种比较属于地址数值比较,并没有比较对象的内容

(2) 使用 equals() 比较字符串

    String str1 = "hello" ;

    String str2 = new String("hello");

    System.out.println(str1.equals(str2)) 

控制台输出:true

(3)

    String str1 = "hello" ;

    String str2 = "hello" ;

    System.out.println(str1 == str2) ;

    System.out.println("hello" == str2) ;

    System.out.println("hello" == "hello") ;

控制台输出:全为true

见解:在JVM的底层实际上会自动维护一个对象池(字符串对象池),如果现在采用了直接赋值的模式对String类对象的实例化操作,那么该实例化对象(字符串)将自动的保存到这个对象池之中。如果下次继续有人使用了直接赋值的模式声明了String类的对象,那么如果此时对象池之中有指定的内容,将进行直接引用,如果没有,则开辟新的字符串对象,而后将其保存在对象池之中以供下次使用(所谓的对象池就是一个对象数组)

3.字符串特性

(1)不可变性:由于字符串是不可变的。所以每次修改字符串都是创建一个单独的字符串副本(又拷贝了一个字符串);

(2)字符串池:当程序中有多个相同的字符串常量时,这时,这些字符串都是指向内存中的同一个字符符串,这个特性叫做:字符串池。之所以字符串池不会造成程序的混乱,也是因为:字符串具有不可变性;

(3)字符串留用(不常用,因为会有一定的内存损耗);

(4)字符串底层实际上就是字符数组,这也是字符串不可变特性的原因之一。

四、Java编程基本规范

良好的Java书写规范,是一名合格的Java开发者所必须具备的条件之一,同时也能保证我们在编程中出错率减少。

在各个文件中,变量名、方法名、类名注意命名时应当见名知义

规则:即为前人定义好的,不可违背

字母(Java中大小写敏感)、数字(不允许为开头)、符号(英文符号_$)、中文(不推荐,就当没有)

规约:即为后来者约定俗成的的规则

类名
首字母大写 两个以上的单词所有首字母大写,即为驼峰命名法
如:SuperPerson
变量名
首字母小写 两个以上的单词,之后的单词首字母大写
如:personName
常量名
字母全大写
如:PERSONCULTURE
方法名
首字母小写 两个以上的单词,之后的单词首字母大写
如:personEat

猜你喜欢

转载自www.cnblogs.com/xywl-bky/p/11652093.html
今日推荐