java 方法返回值类型 Long与long

java 方法返回值类型 Long与long,第1张

Java的数据类型分两种:

1基本类型:long,int,byte,float,double,char

2 对象类型(类): Long,Integer,Byte,Float,Double,Char,String,其它一切java提供的,或者你自己创建的类。

其中Long又叫 long的包装类。而Byte和Float也类似,一般包装类的名字首写是数值名的大写开头。

什么叫包装类?

在java中有时候的运算必须是两个类对象之间进行的,不充许对象与数字之间进行运算。所以需要有一个对象,这个对象把数字进行了一下包装,这样这个对象就可以和另一个对象进行运算了。

比如我们也可以定义一个类:

class Long {

int i=0;

public Long (int i){

thisi=i;

}

}

这样这个Integer就是一个包装类,他包装了一个整数值,然后可以在里面写一些运算符重载的方法使它支持某些运算。这个时候可以赋值:

Long it=new Long(10);

现在变量it就是一个对象,不是一个数字。

long 是长整型,在怎么长本身也是整型,1210的整形部分是12,当然结果是12,

byte: 八位整数 -128——127,可用来节省内存的使用。

short: 16位整数 -32768——32,767,也比较省内存。

int: 32位整数 -2,147,483,648——2,147,483,647,一般来说整数都够用了

long: 64位整数 -9,223,372,036,854,775,808—— 9,223,372,036,854,775,807,一般不需要用

float: 32位浮点,如果浮点需要节省内存用这个。

Double: 64位浮点,一般非整数浮点可用这个。

但是要记住float和double都不是精确的,如果要储存钱一类的必须精确的,用javamathBigDecimal

正好复习一下大一大二学过的东西~~我是学计算机的哦,不过差不多一年没接触排序算法了,竟然忘记得差不多了,花了我半天时间。。。不过你的要求应该基本实现了,我用的是VC60。

#include<iostream>

#include<stdlibh>

#include<timeh>//clock()头文件

#include<string>

#include<fstream>//文件 *** 作头文件

using namespace std;

#define MAX_NUM 100000//定义系统产生的随机数的最大个数

void srand (unsigned int seed);//申明随机数发生器的初始化函数

int rand(void);//申明伪随机数发生器

void bubbleSort(long b[],long a[],long n){/冒泡排序/

for(long i=0;i<n;i++)

a[i]=b[i];//将随机数数组复制一份,使用副本进行运算

for(i=1;i<n;i++){

for(long j=n-1;j>=i;j--){

if(a[j]<a[j-1]){

long t=a[j];

a[j]=a[j-1];

a[j-1]=t;

}

}

}

}

void insertSort(long b[],long a[],long n){ /插入排序/

long i,j,k;

for(i=0;i<n;i++)

a[i]=b[i];//复制随机数数组

for(i=0;i<n;i++){

k=a[i];

for(j=i-1;j>=0&&a[j]>k;j--){

if(a[j]>k)

a[j+1]=a[j];

}

a[j+1]=k;

}

}

void selectSort(long b[],long a[],long n){/选择排序/

long i,j,m,t;

for(i=0;i<n;i++)

a[i]=b[i];//复制随机数组

for(i=0;i<n-1;i++){

m=i;

for(j=i+1;j<n;j++){

if(a[j]<a[m])

m=j;

if(m!=i){

t=a[i];

a[i]=a[m];

a[m]=t;

}

}

}

}

void sort(double a[],string c[],int n){/选择两种最快的排序法/

for(int i=1;i<n;i++){

for(int j=n-1;j>=i;j--){

if(a[j]<a[j-1]){

double t=a[j];

string d=c[j];

a[j]=a[j-1];

c[j]=c[j-1];

a[j-1]=t;

c[j-1]=d;

}

}

}

}

void main(){

int i=0,j=0,k=0;

long m;

double compare[3];

string d[]={"冒泡排序","插入排序","选择排序"};

ofstream out;//文件流对象

char s[100000];

clock_t start,end;//定义排序开始及结束时间

char tbuffer[9];

srand((unsigned int)time(NULL));

m=20000+rand();//随机数的个数=20000+系统产生的随机数

long num[MAX_NUM],a[MAX_NUM];

for(i=0;i<m;i++)

num[i]=rand();//将m个随机数赋给num数组,以便进行运算

cout<<"本次测试产生的随机数总数为:"<<m<<endl;//打印随机数总数

cout<<"\n冒泡排序"<<endl;

cout<<"开始时间:"<<_strtime(tbuffer)<<endl;

start=clock();

bubbleSort(num,a,m);

end=clock();

cout<<"结束时间:"<<_strtime(tbuffer)<<endl;

outopen("bubbleSorttxt"); //打开bubbleSorttxt,记录冒泡排序结果

j=0;

for(i=0;i<m;i++){

sprintf(s, "%d\n", a[i]);//将long型整数转换为字符串

outwrite(s,strlen(s));//写入文件

}

outclose();

compare[0]=(end-start)/double(CLOCKS_PER_SEC);

cout<<"性能:"<<compare[0]<<"s"<<endl;

cout<<"排序结果已存入bubbleSorttxt"<<endl;

cout<<"\n插入排序"<<endl;

cout<<"开始时间:"<<_strtime(tbuffer)<<endl;

start=clock();

insertSort(num,a,m);

end=clock();

cout<<"结束时间:"<<_strtime(tbuffer)<<endl;

outopen("insertSorttxt");//打开insertSorttxt,记录插入排序结果

for(i=0;i<m;i++){

sprintf(s, "%d\n", a[i]);

outwrite(s,strlen(s));

}

outclose();

compare[1]=(end-start)/double(CLOCKS_PER_SEC);

cout<<"性能:"<<compare[1]<<"s"<<endl;

cout<<"排序结果已存入insertSorttxt"<<endl;

cout<<"\n选择排序"<<endl;

cout<<"开始时间:"<<_strtime(tbuffer)<<endl;

start=clock();

selectSort(num,a,m);

end=clock();

cout<<"结束时间:"<<_strtime(tbuffer)<<endl;

outopen("selectSorttxt"); //打开selectSorttxt,记录选择排序结果

j=0;

for(i=0;i<m;i++){

sprintf(s, "%d\n", a[i]);

outwrite(s,strlen(s));

}

outclose();

compare[2]=(end-start)/double(CLOCKS_PER_SEC);

cout<<"性能:"<<compare[2]<<"s"<<endl;

cout<<"排序结果已存入selectSorttxt"<<endl;

sort(compare,d,3);//调用sort(),计算出两种较快的排序方法

cout<<"\n本次测试中最快的两种排序方法为:\n1"<<d[0]<<" 2"<<d[1]<<endl;

}

常用的数据库字段类型如下:

字段类型 中文说明 限制条件 其它说明

CHAR 固定长度字符串 最大长度2000 bytes

VARCHAR2 可变长度的字符串 最大长度4000 bytes 可做索引的最大长度749

NCHAR 根据字符集而定的固定长度字符串 最大长度2000 bytes

NVARCHAR2 根据字符集而定的可变长度字符串 最大长度4000 bytes

DATE 日期(日-月-年) DD-MM-YY(HH-MI-SS) 经过严格测试,无千虫问题

LONG 超长字符串 最大长度2G(231-1) 足够存储大部头著作

RAW 固定长度的二进制数据 最大长度2000 bytes 可存放多媒体图象声音等

LONG RAW 可变长度的二进制数据 最大长度2G 同上

BLOB 二进制数据 最大长度4G

CLOB 字符数据 最大长度4G

NCLOB 根据字符集而定的字符数据 最大长度4G

BFILE 存放在数据库外的二进制数据 最大长度4G

ROWID 数据表中记录的唯一行号 10 bytes 格式,为0或1

NROWID 二进制数据表中记录的唯一行号 最大长度4000 bytes

NUMBER(P,S) 数字类型 P为整数位,S为小数位

DECIMAL(P,S) 数字类型 P为整数位,S为小数位

INTEGER 整数类型 小的整数

FLOAT 浮点数类型 NUMBER(38),双精度

REAL 实数类型 NUMBER(63),精度更高

数据类型 参数 描述

char(n) n=1 to 2000字节 定长字符串,n字节长,如果不指定长度,缺省为1个字节长(一个汉字为2字节)

varchar2(n) n=1 to 4000字节 可变长的字符串,具体定义时指明最大长度n,这种数据类型可以放数字、字母以及ASCII码字符集(或者EBCDIC等数据库系统接受的字符集标准)中的所有符号。

如果数据长度没有达到最大值n,Oracle 8i会根据数据大小自动调节字段长度,如果你的数据前后有空格,Oracle 8i会自动将其删去。VARCHAR2是最常用的数据类型。可做索引的最大长度3209。

number(m,n) m=1 to 38

n=-84 to 127 可变长的数值列,允许0、正值及负值,m是所有有效数字的位数,n是小数点以后的位数。

如:number(5,2),则这个字段的最大值是99,999,如果数值超出了位数限制就会被截取多余的位数。

如:number(5,2),但在一行数据中的这个字段输入575316,则真正保存到字段中的数值是57532。

如:number(3,0),输入575316,真正保存的数据是575。

date 无 从公元前4712年1月1日到公元4712年12月31日的所有合法日期,Oracle 8i其实在内部是按7个字节来保存日期数据,在定义中还包括小时、分、秒。

缺省格式为DD-MON-YY,如07-11月-00 表示2000年11月7日。

long 无 可变长字符列,最大长度限制是2GB,用于不需要作字符串搜索的长串数据,如果要进行字符搜索就要用varchar2类型。long是一种较老的数据类型,将来会逐渐被BLOB、CLOB、NCLOB等大的对象数据类型所取代。

raw(n) n=1 to 2000 可变长二进制数据,在具体定义字段的时候必须指明最大长度n,Oracle 8i用这种格式来保存较小的图形文件或带格式的文本文件,如Miceosoft Word文档。

raw是一种较老的数据类型,将来会逐渐被BLOB、CLOB、NCLOB等大的对象数据类型所取代。

long raw 无 可变长二进制数据,最大长度是2GB。Oracle 8i用这种格式来保存较大的图形文件或带格式的文本文件,如Miceosoft Word文档,以及音频、视频等非文本文件。

在同一张表中不能同时有long类型和long raw类型,long raw也是一种较老的数据类型,将来会逐渐被BLOB、CLOB、NCLOB等大的对象数据类型所取代。

blob /clob /nclob 无 三种大型对象(LOB),用来保存较大的图形文件或带格式的文本文件,如Miceosoft Word文档,以及音频、视频等非文本文件,最大长度是4GB。

LOB有几种类型,取决于你使用的字节的类型,Oracle 8i实实在在地将这些数据存储在数据库内部保存。

可以执行读取、存储、写入等特殊 *** 作。

bfile 无 在数据库外部保存的大型二进制对象文件,最大长度是4GB。

这种外部的LOB类型,通过数据库记录变化情况,但是数据的具体保存是在数据库外部进行的。

Oracle 8i可以读取、查询BFILE,但是不能写入。

大小由 *** 作系统决定。

请问在Oracle数据库中,把一字段设为long类型后,可否用DBmemo控件来存取?关于long类型的材料不妨写具体一些。如用Tquery控件存取,应怎么写?在这里先多谢各位的支撑!

Character 数据类型

Character 数据类型用来存储字母数字型数据。当你在oracle 中定义一个character 数据时,通常需要制定字段的长度,它是该字段的最大长度。ORACLE提供以下几种character 数据类型:

CHAR() CHAR数据类型是一种有固定长度和最大长度的字符串。存储在数据类型为CHAR字段中的数据将以空格的形式补到最大长度。长度定义在1——2000字节之间。

当你创建一个CHAR型字段,数据库将保证在这个字段中的所有数据是定义长度,如果某个数据比定义长度短,那么将用空格在数据的右边补到定义长度。如果长度大于定义长度将会触发错误信息。

VARCHAR() varchar型数据是varchar2型数据的快照。

VARCHAR2() varchar2数据类型是一种可变长度的、有最大长度的字母数字型数据。Varchar2类型的字段长度可以达到4000字节,Varchar2类型的变量长度可以达到32676字节。

一个空的varchar2(2000)字段和一个空的varchar2(2)字段所占用的空间是一样的。

NCHAR() 和 NVARCHAR2() NCHAR() 和 NVARCHAR2()数据类型分别与CHAR() 和 VARCHAR2()类型是相同的,只不过它们用来存储NLS(National Language Support)数据。

LONG LONG 数据类型是一个遗留下来的而且在将来不会被支持的数据类型。它将被LOB(Large Object)数据类型所代替。

比较规则 Varchar2和char数据类型根据尾部的空格有不同的比较规则。对Char型数据,尾部的空格将被忽略掉,对于Varchar2型数据尾部带空格的数据排序比没有空格的要大些。比如:

Char 型数据: ‘YO’=‘YO ’

Varchar2型数据: ‘YO’<’YO ’

Numberic 数据类型

Numberic 数据类型用来存储负的和正的整数、分数和浮点型数据,范围在-110-103 和9999…9910125之间,有38位的精确度。标识一个数据超出这个范围时就会出错。

Number(

,) Number数据类型存储一个有p位精确度的s位等级的数据。

DATE 数据类型

DATE 数据类型用来存储日期和时间格式的数据。这种格式可以转换为其他格式的数据去浏览,而且它有专门的函数和属性用来控制和计算。以下的几种信息都包含在DATE数据类型中:

Century

Year

Month

Day

Hour

Minute

Second

LOB 数据类型

LOB(Large Object) 数据类型存储非结构化数据,比如二进制文件,图形文件,或其他外部文件。LOB 可以存储到4G字节大小。数据可以存储到数据库中也可以存储到外部数据文件中。LOB数据的控制通过DBMS_LOB 包实现。BLOB, NCLOB, 和CLOB 数据可以存储到不同的表空间中,BFILE存储在服务器上的外部文件中。LOB数据类型有以下几种:

BLOB: 二进制数据

CLOB: 字符型数据

BFILE: 二进制文件

其他数据类型

ROWID ROWID 数据类型是ORACLE数据表中的一个伪列,它是数据表中每行数据内在的唯一的标识。

按类型分为:字符串类型、数字类型、日期类型、LOB类型、LONG RAW& RAW类型、ROWID & UROWID类型。

在讲叙字符串类型前,先要讲一下编码。字符串类型的数据可依编码方式分成数据库字符集(CHAR/VARCHAR2/CLOB/LONG)和国际字符集(NCHAR/NVARCHAR2/NCLOB)两种。数据库中的字符串数据都通过字符集将字符转换为数字后(二进制),才存储到数据块中。通过不同的编码集转换,即便是相同的字符,也可能会转换成不同的二进制编码。这也是产生乱码的原因。数据库的编码格式一般是在创建数据库时指定的。当然也可以修改数据库的编码。

一 字符串类型

11:CHAR类型 CHAR(size [BYTE | CHAR])

CHAR类型,定长字符串,会用空格填充来达到其最大长度。非NULL的CHAR(12)总是包含12字节信息。CHAR字段最多可以存储2,000字节的信息。如果创建表时,不指定CHAR长度,则默认为1。另外你可以指定它存储字节或字符,例如 CHAR(12 BYTYE) CHAR(12 CHAR)一般来说默认是存储字节

注意:数据库的NLS_CHARACTERSET 为AL32UTF8,即一个汉字占用三到四个字节。如果NLS_CHARACTERSET为ZHS16GBK,则一个字符占用两个字节。

12: NCHAR类型

这是一个包含UNICODE格式数据的定长字符串。NCHAR字段最多可以存储2,000字节的信息。它的最大长度取决于国家字符集。

13 VARCHAR类型

不要使用VARCHAR数据类型。使用VARCHAR2数据类型。

14: VARCHAR2类型

变长字符串,与CHAR类型不同,它不会使用空格填充至最大长度。VARCHAR2最多可以存储4,000字节的信息。

15: NVARCHAR2类型

这是一个包含UNICODE格式数据的变长字符串。 NVARCHAR2最多可以存储4,000字节的信息。

二 数字类型

21 NUMBER类型

NUMBER(P,S)是最常见的数字类型,可以存放数据范围为10130~10126(不包含此值),需要1~22字节(BYTE)不等的存储空间。

P 是Precison的英文缩写,即精度缩写,表示有效数字的位数,最多不能超过38个有效数字

S是Scale的英文缩写,可以使用的范围为-84~127。Scale为正数时,表示从小数点到最低有效数字的位数,它为负数时,表示从最大有效数字到小数点的位数

下面是官方文档的示例

Actual Data Specified As Stored As

12389 NUMBER 12389

12389 NUMBER(3) 124

12389 NUMBER(6,2) 12389

12389 NUMBER(6,1) 1239

12389 NUMBER(3) 124

12389 NUMBER(4,2) exceeds precision

12389 NUMBER(6,-2) 100

01234 NUMBER(4,5)01234

00012 NUMBER(4,5) 00012

000127 NUMBER(4,5) 00013

0000012 NUMBER(2,7) 0000012

00000123 NUMBER(2,7) 0000012

12e-4 NUMBER(2,5) 000012

12e-5 NUMBER(2,5) 000001

22 INTEGER类型

INTEGER是NUMBER的子类型,它等同于NUMBER(38,0),用来存储整数。若插入、更新的数值有小数,则会被四舍五入。

23 浮点数

Oracle 数据库提供了专为浮点数的两种数值数据类型:

BINARY_FLOAT

BINARY_FLOAT 是 32 位、 单精度浮点数字数据类型。可以支持至少6位精度,每个 BINARY_FLOAT 的值需要 5 个字节,包括长度字节。

BINARY_DOUBLE

BINARY_DOUBLE 是为 64 位,双精度浮点数字数据类型。每个 BINARY_DOUBLE 的值需要 9 个字节,包括长度字节。

在数字的列中,浮点数有小数精度。在 BINARY_FLOAT 或 BINARY_DOUBLE 的列中,浮点数有二进制的精度。二进制浮点数支持的特殊值无穷大和 NaN (不是数字)。

25 FLOAT类型

FLOAT类型也是NUMBER的子类型。

Float(n),数 n 指示位的精度,可以存储的值的数目。N 值的范围可以从 1 到 126。若要从二进制转换为十进制的精度,请将 n 乘以 030103。要从十进制转换为二进制的精度,请用 332193 乘小数精度。126 位二进制精度的最大值是大约相当于 38 位小数精度。

三 日期类型

日期类型用于存储日期数据,但是并不是使用一般的格式(2012-08-08)直接存储到数据库的。

31 DATE类型

DATE是最常用的数据类型,日期数据类型存储日期和时间信息。虽然可以用字符或数字类型表示日期和时间信息,但是日期数据类型具有特殊关联的属性。为每个日期值,Oracle 存储以下信息: 世纪、 年、 月、 日期、 小时、 分钟和秒。一般占用7个字节的存储空间。

32 TIMESTAMP类型

这是一个7字节或12字节的定宽日期/时间数据类型。它与DATE数据类型不同,因为TIMESTAMP可以包含小数秒,带小数秒的TIMESTAMP在小数点右边最多可以保留9位

33 TIMESTAMP WITH TIME ZONE类型

这是TIMESTAMP类型的变种,它包含了时区偏移量的值

34 TIMESTAMP WITH LOCAL TIME ZONE类型

35 INTERVAL YEAR TO MOTH

36 INTERVAL DAY TO SECOND

四 LOB类型

内置的LOB数据类型包括BLOB、CLOB、NCLOB、BFILE(外部存储)的大型化和非结构化数据,如文本、图像、视屏、空间数据存储。BLOB、CLOB、NCLOB类型

41 CLOB 数据类型

它存储单字节和多字节字符数据。支持固定宽度和可变宽度的字符集。CLOB对象可以存储最多 (4 gigabytes-1) (database block size) 大小的字符

42 NCLOB 数据类型

它存储UNICODE类型的数据,支持固定宽度和可变宽度的字符集,NCLOB对象可以存储最多(4 gigabytes-1) (database block size)大小的文本数据。

43 BLOB 数据类型

它存储非结构化的二进制数据大对象,它可以被认为是没有字符集语义的比特流,一般是图像、声音、视频等文件。BLOB对象最多存储(4 gigabytes-1) (database block size)的二进制数据。

44 BFILE 数据类型

二进制文件,存储在数据库外的系统文件,只读的,数据库会将该文件当二进制文件处理

五 RAW & LONG RAW类型

51 LONG类型

它存储变长字符串,最多达2G的字符数据(2GB是指2千兆字节, 而不是2千兆字符),与VARCHAR2 或CHAR 类型一样,存储在LONG 类型中的文本要进行字符集转换。ORACLE建议开发中使用CLOB替代LONG类型。支持LONG 列只是为了保证向后兼容性。CLOB类型比LONG类型的限制要少得多。 LONG类型的限制如下:

1一个表中只有一列可以为LONG型。(Why有些不明白)

2LONG列不能定义为主键或唯一约束,

3不能建立索引

4LONG数据不能指定正则表达式。

5函数或存储过程不能接受LONG数据类型的参数。

6LONG列不能出现在WHERE子句或完整性约束(除了可能会出现NULL和NOT NULL约束)

52 LONG RAW 类型,能存储2GB 的原始二进制数据(不用进行字符集转换的数据)

53 RAW类型

用于存储二进制或字符类型数据,变长二进制数据类型,这说明采用这种数据类型存储的数据不会发生字符集转换。这种类型最多可以存储2,000字节的信息

六 ROWID & UROWID类型

在数据库中的每一行都有一个地址。然而,一些表行的地址不是物理或永久的,或者不是ORACLE数据库生成的。

例如,索引组织表行地址存储在索引的叶子,可以移动。

例如,外部表的ROWID(如通过网关访问DB2表)不是​​标准的ORACLE的rowid。

ORACLE使用通用的ROWID(UROWIDs)的存储地址的索引组织表和外表。索引组织表有逻辑urowids的,和国外表的外urowids。UROWID这两种类型的存储在ROWID伪(堆组织的表的物理行id)。

创建基于逻辑的rowid在表中的主键。逻辑的rowid不会改变,只要主键不改变。索引组织表的ROWID伪UROWID数据类型。你可以访问这个伪列,你会堆组织表的ROWID伪(即使用一个SELECT …ROWID语句)。如果你想存储的rowid索引组织表,那么你就可以定义一列的表型UROWID到列检索值的ROWID伪。

字符类型的话一般用

varchar或者char

不过varchar的话是不定长的,就是说你定义的是varchar(10)你存的abc2的话,那么他就是存的abc2,但是char类型的话是定长的,不足长度的自动补空,如果你定义的是char(4)你存的是abc2的话,那么他存的就是abc2 ,2的右边有个空格。

以上就是关于java 方法返回值类型 Long与long全部的内容,包括:java 方法返回值类型 Long与long、急求!!C++高手来,关于排序综合的问题!、请教几个关于oracle数据库里常见数据类型的问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/10203209.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存