Java学习笔记(5)--- Number类和Math 类,Stri…

2019-12-04 08:43:10来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

Java学习笔记(5)--- Number类和Math 类,String类的应用,Java数组入门

1.Number 和 Math 类:

在实际开发过程中,我们经常会遇到需要使用对象,而不是内置数据类型(int,double,float这些)的情形。

这种由编译器特别支持的包装称为装箱,所以当内置数据类型被当作对象使用的时候,编译器会把内置类型装箱为包装类。

相似的,编译器也可以把一个对象拆箱为内置类型。

Number 类属于 java.lang 包。

 

Java 中 int 和 Integer 的区别:

int 是基本数据类型,int 变量存储的是数值。Integer 是引用类型,实际是一个对象,Integer 存储的是引用对象的地址。

 

Math类:

Java 的 Math 包含了用于执行基本数学运算的属性和方法,如初等指数、对数、平方根和三角函数。

Math 的方法都被定义为 static 形式,通过 Math 类可以在主函数中直接调用。

 

2.StringBuffer 和 StringBuilder 类:

 

 

首先我们来看一下Java的字符串string,在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串。

使用方法:

String greeting = "菜鸟教程";

 

于是注意的是String 类是不可改变的,所以你一旦创建了 String 对象,那它的值就无法改变了。

这是因为字符串string是常量,字符串长度不可变。Java中String 是immutable(不可变)的。用于存放字符的数组被声明为final的,因此只能赋值一次,不可再更改。

当然了你可以:

String s = "Google";

System.out.println(s);

s = "Runoob";

System.out.println();

这段代码会输出 

Google

Runoob


这是因为s只是对Google这个string的引用而已,实际上java会自动创建Runoob,导致常量池里一共有两个string常量,这对程序优化不利(内存分配)。这也是为什么我们要学习StringBuffer 和 StringBuilder。

StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。

由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。然而在应用程序要求线程安全的情况下,则必须使用 StringBuffer 类。(StringBuffer不能同步访问)

 

3.Java数组:

 

a.声明:

dataType[] arrayRefVar;   // 首选的方法

dataType arrayRefVar[]; // 效果相同,但不是首选方法

具体例子:

double[] myList; // 首选的方法

double myList[];

当然了你也可以声明的同时创建数组:

dataType[] arrayRefVar = new dataType[arraySize];

dataType[] arrayRefVar = {value0, value1, ..., valuek};

数组的元素是通过索引访问的。数组索引从 0 开始,所以索引值从 0 到 arrayRefVar.length-1。

 

b.应用:

(1)For-Each循环,和python的有点像,大体上就是不用下标的情况下自动游历整个数组。

(2)数组可以作为参数传递给方法。数组可以作为函数的返回值

 

(3)多维数组:可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组.

 

引用:https://www.runoob.com/java/java-array.html

 

 


原文链接:https://www.cnblogs.com/cptCarlvon/p/11975396.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Java集合框架 10 连问,你有被问过吗?

下一篇:Java连载57-equals重写、finalize方法、hashCode方法?