Java探索之旅(15)——包装类和字符类
1.包装类
❶出于对性能的考虑,并不把基本数据类型作为对象使用,因为适用对象需要额外的系统花销。但是某些Java方法,需要对象作为参数,例如数组线性表ArrayList.add(Object)。Java将基本数据类型包装成类,即所谓的包装类---包括:数值包装类Number(Integer,Short,Byte,Float,Double,Long,)
,Character,Boolean。
其继承结构体系如下图所示:
❷数值包装类均扩展自抽象类Number。所有数值包装类数组均是Object([])和Number([])的实例。所有的包装均覆盖了Object类中的toString和equals(内容比较),均实现Camparable接口,都实现了compareTo方法。包装类没有无参构造法,实例均不可变,一旦创建,值将不变。
❸类中成员,以Integer和Double为例说明。
静态成员变量,MAX_VALUE和MIN_VALUE。当前类型的表征最值
构造函数:Double(doubleValue);Double(String)
成员函数:
valueOf(String),valueOf(String ,intdex);//intdex=2/8/10/16说明String字符串表示进制,默认10进制。返回Double
parseDouble(String),parseDouble(String,intdex);//,同上,返回Double
❹Java容许基本类型和包装类自动转换,即所谓装箱和开箱过程,如
Integer intObject=new Integer(5)等价于 Integer intObject=5;
Integer[] intObject={1,2,3,4};//装箱,基本类型自动转换为包装类
int a=intObject[0]+intObject[1];//开箱,包装类转换为基本数据类型参与运算。
2.字符类Character
❶构造函数:
Character(char);
❷成员函数
charValue();//返回字符。
判断is*判断大写、小写、数字和字母。以及to*转换成大写或者小写。
3.排序与公约数
❶使用java.util.Arrays的静态方法sort对元素可比较的数组进行排序。如下
public class StudyWrapper {
public static void main(String[] args) {
int[] intArray={13,-2,0,3,4,5};
Character[] chArray={'a','f','d','e','A'};
Arrays.sort(intArray);
Arrays.sort(chArray,1,4);//[1 4]区间段进行排序
for(int i:intArray)
System.out.println(i);
for(char i:chArray)
System.out.println(i);
}}
❷获取两个数x,y的最大公约数
private static long gcd(long x,long y){
x=Math.abs(x);
y=Math.abs(y);
long temp=0;
while(x!=0){
temp=x;
x=y%x;
y=temp;}
return y;}
}
❸关于/和%运算结果的符号
1.a/b符号与分子a和分母b都有关。即为正常计算的结果,若a*b>0为正,反之为负
2.a%b符号仅与分子a有关,a>0结果为正,反之为负
Java探索之旅(15)——包装类和字符类的更多相关文章
- Java探索之旅(8)——继承与多态
1父类和子类: ❶父类又称基类和超类(super class)子类又称次类和扩展类.同一个package的子类可以直接(不通过对象)访问父类中的(public,缺省,protected)数据和方法. ...
- Java探索之旅(5)——数组
1.声明数组变量: double[] array=new double[10]; double array[]=new double[10]; double[ ...
- Java探索之旅(18)——多线程(2)
1 线程协调 目的对各线程进行控制,保证各自执行的任务有条不紊且有序并行计算.尤其是在共享资源或者数据情况下. 1.1 易变volatile cache技术虽然提高了访问数据的效率,但是有可能导致主存 ...
- Java探索之旅(14)——文本I/O与读写
1文件类File ❶封装文件或路径的属性.不包括创建和读写文件操作.File实例并不会实际创建文件.不论文件存在与否,可以创建任意文件名的实例.两种实例创建方式如下: ...
- Java探索之旅(13)——字符串类String
1.初始化 String类是Java预定义类,非基本类型而是引用类型. public class StudyString { public static void main(String[] args ...
- Java探索之旅(12)——equals方法及其覆盖
1.Object中的equals方法 java中的的基本数据类型:byte,short,char,int,long,float,double,boolean.==比较的是值. ❶作用:对于复合类型来说 ...
- Java探索之旅(10)——数组线性表ArrayList和字符串生成器StringBuffer/StringBuilder
1.数组线性表ArrayList 数组一旦定义则不可改变大小.ArrayList可以不限定个数的存储对象.添加,插入,删除,查找比较数组更加容易.可以直接使用引用类型变量名输出,相当于toString ...
- Java探索之旅(4)——方法和Random&Math类
1.基本知识点 ❶方法在C++里面称为函数.调用方法时,应该类型兼容--即不需显式类型转换即可将形参传递给实参. ❷形参的改变不影响实参的值. ❸Java注重模块化设计和自顶向下的设 ...
- Java探索之旅(3)——选择与循环
1.选择结构与输出 ❶Switch语句: Switch表达式必须算出 char,byte,short,int类型数值之一,总是括号括住:Value1----ValueN,对应有相同数据类型且为常量或者 ...
随机推荐
- 有关numpy.random下的API具体含义
1.numpy.random.random(size=None) Return random floats in the half-open interval [0.0, 1.0). 返回size大小 ...
- Ruby 循环
Ruby while 语句: 语法: while conditional [do] codeend 执行代码当条件为true时.while循环的条件是代码中的保留字,换行,反斜杠()或一个分号隔开. ...
- 0420模块 序列化模块 hashlib模块
复习:内置方法 __len__ len(obj)的结果依赖于obj.__len__()的结果,计算对象的长度__hash__ hash(obj)的结果依赖于obj.__hash__()的结果,计算对象 ...
- nginx gzip 压缩设置
mime.types 中包含所有文件的类型,不知道的可以去里面查询 gzip配置的常用参数 gzip on|off; #是否开启gzip gzip_buffers 32 4K| 16 8K #缓冲( ...
- Codeforces Round #260 (Div. 2) A , B , C 标记,找规律 , dp
A. Laptops time limit per test 1 second memory limit per test 256 megabytes input standard input out ...
- springmvc接受表单多条数据的值
点击下面链接查看具体内容: http://blog.csdn.net/lutinghuan/article/details/46820023
- TCP和UDP?
简单讲,TCP是打电话,UDP是发短信.
- linux shell编程(二) 条件测试
bash中常用的条件测试有三种 条件测试的表达式:[ expression ] [[ expression]] 第一种:整数测试: -eq 测试两个整数是否相等,比如[ $A -eq $B ] -n ...
- php 微信公众平台开发之微信群发信息
这篇文章主要为大家详细介绍了php微信公众平台开发之微信群发信息,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 1.目的 完成在微信公众号中群发消息.这里只是完成简单的文字发送.也可以发送语音图片 ...
- 设计模式 之 《观察者模式 (Observer)》
#ifndef __OBSERVER_MODEL__ #define __OBSERVER_MODEL__ #include <string> #include <iostream& ...