数据类型及其标识符

java中的标识符:

名字就是标识符,任何一个变量、常量、方法、对象和类都需要有名字。

所有的标识符都应该以字母(A-Z或者a-z),美元符($)、或者下划线(_)开始,不能以数字开头。首字符之后可以是字母(A-Z或者a-z),美元符($)、下划线(_)或数字的任何字符组合。

不能使用关键字作为变量名或方法名。

标识符是大小写敏感的。(java是大小写敏感的语言)

定义标识符时还应遵循以下规则:

(1)包名的所有字母一律小写,如cn.itcast.test。

(2)类名和接口名每个单词的首字母都要大写,如ArrayList、Iterator.

(3)常量名的所有字母都要大写,单词之间用下划线连接,例如DAY_OF

(4)变量名和方法名的第一个单词首字母小写,从第二个单词开始每个单词首字母大写,如lineNumber,getLineNumber

(5)在程序中,应该尽量使用有意义的英文单词定义标识符,以便于阅读,常量随使用随定义

代码示例如下:

public class Hello {
    public static void main(String[] args) {
        //这是单行注释
        /* 这是多行注释
        可以在多行进行注释
         */
        /** @Auro 文档注释的格式,一般不常用*/
        String aiLike="wo";//可以以字母开头
        String _1="r";//可以以_开头
        String $5="A";//可以以$开头
        //String #5="D0";不能以#开头
        //String 5as="d";不能以数字开头
        //String -sd="5";不能以-开头
        String weLove="rgf";
        String WeLove="rgf";
        //这两个不一样,标识符是大小写十分敏感的。
        String mingzi="rgf";
        //不要以拼音去命名,这样子很难看懂。
        String 王者荣耀="百星王者";
        //可以使用中文命名,但是一般不建议这样去使用。
        System.out.println(weLove);
        System.out.println(mingzi);
        System.out.println(WeLove);
        System.out.println(aiLike);
        System.out.println(_1);
        System.out.println($5);
        System.out.println(王者荣耀);
        
    }
}

运行界面如下:

数据类型:

强类型语言(java、c++):要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用。安全性高,速度低。

弱类型语言(javascript、vB):

变量的数据类型分布如下所示:

字符型:定义char型变量,通常使用一对'  ',内部只能写一个字符。

char(1字符=2字节)

表示方式:1.声明一个字符 2.转义字符(‘\n') 3.直接使用Unicode值来表示字符型常量

ANSI编码在中文系统里面默认为GBK.命令行默认是使用GBK的方式进行解析的。

八大数据类型的代码如下:

public class A {
    public static void main(String[] args) {
       // String a=10;String是用来定义字符串的,不能用来定义数字。
        //变量名的定义一般第一个单词的首字母小写,之后的每个单词的首字母都大写。
        //Integer  按住ctrl键,然后鼠标点击即可进入该类的详情界面,进行详细了解。
        int a=10;
        String A="ypl";
        System.out.println(a);
        System.out.println(A);
        //八大基本数据类型
        //整数类型
        int  B=10;  //最常用的
        short C=55;
        long D=6566L;  //long类型要在数字后面加个L。
        byte E=5;
        //布尔值,只有true和false两个值。代表是非,常常在条件判断、循环结构中使用
        boolean c=false;
        //小数:浮点数
        float d=3.1f;  //float类型要在数字后面加上f。
        double e=5.025;
        //字符类型
        char f='中';  //字符代表一个字。
        //字符串,String不是一个关键字,而是一个类。
        String an="name rgf";
        System.out.println(B+C+D+E);
        System.out.println(c);
        System.out.println(d+e);
        System.out.println(f);
        System.out.println(an);

    }

}

运行界面如下所示:

根据结果可知,同一类型的数据可以进行相加,同时在代表同一数据的类,按住ctrl键点击该类时可以进入详情界面,如下图所示:

 位(bit):是计算机内部数据储存的最小单位,11001100是一个八位二进制数

字节(byte):是计算机中数据处理的基本单位,习惯上用大写B来表示

1B(byte,字节)=8bit(位)

字符:是指计算机中使用的字母,数字,字和符号

1bit代表1位,1Byte表示一个字节, 1B=1b

1024B=1kB

1024KB=1MB

1024MB=1GB

1024GB=1TB

电脑的32位和64位区别在于它们的寻址能力的强弱。64位的电脑支持128G的内存,当然也不止这一点,而32位的只支持4GB的内存

数据类型扩展:

1.String属于引用数据类型,翻译为:字符串

2.声明String类型变量时,使用一对“ ”。char c=' ',里面不能为空,也不能少一个或者多一个,只能写一个。

3.String可以和8种基本数据类型变量做运算,且运算只能是连接运算:+

4.运算的结果仍然是String类型。

class Main {
    public static void main(String[] args) {
       String numberStr="学号:";
       int number=1001;
       String info=numberStr+number;  //连接运算,如果出现String,即为连接,如果没有String,即为+。
        System.out.println(info);
    }
}

  运行之后如下所示:

 

3的练习: 

class Main {
    public static void main(String[] args) {
      char c='a';  //97   A:65
      int num=10;
      String str="hello";
        System.out.println(c+num+str);//107hello
        System.out.println(c+str+num);//ahello10
        System.out.println(c+(num+str));//a10hello
        System.out.println((c+num)+str);//107hello
        System.out.println(str+num+c);//hello10a

    }
}

运行之后如下所示:

3的练习(2):

 出现*   *,

设计的代码如下所示:

class Main {
    public static void main(String[] args) {
        System.out.println("*   *");
        System.out.println('*' +'\t'+'*');  //字符型,ANSI码相加
        System.out.println('*'+"\t"+'*');
        System.out.println('*'+'\t'+"*");
        System.out.println('*'+('\t'+"*"));

    }
}

运行之后如下所示:

3的练习3:

class Main {
    public static void main(String[] args) {
       // String str1=4;   //是错误代码
        String str2=3.5f+""; //正确
        System.out.println(str2);
        System.out.println(3+4+"Hello!"); //7Hello!
        System.out.println("Hello!"+3+4);//Hello!7
        System.out.println('a'+1+"Hello!");//98Hello!
        System.out.println("Hello!"+'a'+1);//Hello!a1

    }
}

运行之后如下所示:

 

 判断如下:

class Main {
    public static void main(String[] args) {
  short s=5;
  //s=s-2;  //错误:s-2结果为int型,不能为short
        byte b=3;
        //b=b+4; //错误:b+4结果为int型,不能为byte
        b=(byte)(b+4); //强制转换
        char c='a';
        int i=5;
        float d=3.14F;
        double result=c+i+d; //正确
        byte b1=5;
        short s1=3;
        //short t=s1+b1;//错误,相加为int型
    }
}

3的练习4:

class Main {
    public static void main(String[] args) {
       // String str=123;  //编译不通过
          String str1=123+"";
        System.out.println(str1);  //"123",输出虽然没有双引号,但是是字符串。
      //  int num=str1;   //错误的,不能为int型
        // int num=(int)str1;  //错误的,String和int不能这么转换

        int x = Integer.parseInt(str1); //123
        System.out.println(x);
    }
}

 运行如下所示:

public class B {
    public static void main(String[] args) {

        //整数拓展:  进制   二进制(0b或者0B开头,满2进1)
        // 十进制(由数字0~9范围内的整数组成)满10进1
        // 八进制(以0开头,并且其后由0~7范围内的整数组成的数字序列)满8进1,以数字0开头表示
        // 十六进制(以0x或者0X开头并且其后由0~9,A~F(相当于15)组成的数字序列构成),满16进1,此处的A~F不区分大小写
        int i=10;  //十进制
        int i2=010;//八进制
        int i3=0x10;  //十六进制
        System.out.println(i);
        System.out.println(i2);
        System.out.println(i3);
        System.out.println("=====================================================================");
        //浮点数拓展
        //float 表示的字长有限,也是离散的,舍入误差(四舍五入)大约接近但不等于
        //最好完全避免使用浮点数进行比较,容易出现误差。
        //BigDecimal  数学工具类进行比较
        float f=0.1f;
        double d=1.0/10;

        System.out.println(f==d);  //这两个数不相等
        System.out.println(f);
        System.out.println(d);
        float f1=1555659595f;
        float f2=f1+1;
        System.out.println(f1==f2);
        System.out.println("========================================");
        //字符扩展
        char c1='a';
        char c2='中';
        System.out.println(c1);
        System.out.println((int)c1);//把char类型转换为int类型,强制类型转换
        System.out.println(c2);
        System.out.println((int)c2);

    }
}

 进制的解释如下所示:

class Main {
    public static void main(String[] args) {
      //计算机中不同进制的使用说明
        //对于整数,有四种表示方式
        //整数拓展:  进制
        // 二进制(0b或者0B开头,满2进1)
        // 十进制(由数字0~9范围内的整数组成)满10进1
        // 八进制(以0开头,并且其后由0~7范围内的整数组成的数字序列)满8进1,以数字0开头表示
        // 十六进制(以0x或者0X开头并且其后由0~9,A~F(相当于15)组成的数字序列构成),满16进1,此处的A~F不区分大小写
     int num1=0b110;
     int num2=110;
     //int num3=0128;//错误,八进制不能出现8
        int num3=0127;
        int num4=0x110A;
        System.out.println("num1= "+num1);
        System.out.println("num2= "+num2);
        System.out.println("num3= "+num3);
        System.out.println("num4= "+num4);

    }
}

 运行如下所示:

进制转换:

我们来进行查看十进制与二进制的转换:

二进制转换为十进制:

二进制的整数有如下三种形式:

原码:直接将一个数值 换成二进制数,8位数,(数值为从第一位:2^{0}+2^{1}+2^{2}+2^{3}+2^{4}+2^{5}即加到有值的最高位,且每位为1才进行相加,最高位是符号位(0:正数,1:负数)

负数的反码:是对原码按位取反,只是最高位(符号位)确定为1(除符号位外,各个位取反)

负数的补码:其反码加1。

计算机的底层以二进制补码的形式保存所有的整数。

正数的原码、反码、补码都相同

负数的补码是其反码+1。

当给定一个数求它是多少的时候,所给一般为补码,我们根据补码-1求取出来反码,反码再求原码,最后进行相加求和就可以。

+127的二进制数为01111111(原码)

-127的二进制数为11111111(原码)

-127的二进制数为10000000(反码)

-127的二进制数为10000001(补码)

-128的二进制数为10000000(补码)

十进制转换为二进制:

除2取余的逆

例如13的二进制:

13/2=6余1

6/2=3余0

3/2=1余1

1/2=0余1

0/2=0余0

0/2=0余0

0/2=0余0

0/2=0余0

所以二进制数为00001101.

二进制与八进制和十六进制的转换:

将二进制数的每三个一位为一个数

二进制数(32位):00000000011101001,后面数每三个一位,001(1),101(5),011(3)。

八进制数:0351

二进制数(32位):00000000011101001,后面数每四个一位,1001(9),1110(14 :E)

十六进制数:0xE9

八进制和十六进制与二进制的转换:

把八进制的数每一位拆分为三个值:

03(011)5(101)7(111):011101111

十六进制转换成二进制:

把十六进制的每一位数拆分成四个值:

0X(0011)3(0011)A(1010)F(1111)

我们用到进制转换,在API(菜鸟教程里面会有API中文手册)里面会有一些方法:Integer里面的toOctalString​(8进制):

toBinaryString​(2进制),toHexString(16进制)。

​​​​​​​

 布尔值扩展转义字符扩展代码示例如下:

public class C {
        public static void main(String[] args) {
            //字符扩展
            char c='\u0061';
            System.out.println(c);//a
            //所有的字符本质还是数字
            //编码问题  Unicode编码,处理各种语言的文字,占两个字节,表示0-65536个字符
            //Excel表格最长可以有2的16次方,即65536。
            /*通过Unicode转义来表示,用u0000去表示,表示到~uffff。*/
            //转义字符
            //\t回车,制表符。\n换行符
            System.out.println("Hello\t World");
            System.out.println("Hello\nWorld");
            String sa=new String("Hello World");
            String sb=new String("Hello World");
            System.out.println(sa==sb);
            String sc="Hello World";
            String sd="Hello World";
            System.out.println(sc==sd);
            //对象  从内存分析
            
            //布尔值扩展
            boolean  flag=true;
            if (flag==true){}//新手程序员
            if (flag){}//默认里面的东西是否等于真,这两种写法是一样的。
            //Less is More!代码要精简易读。
              
        }
}

运行界面如下:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: OID(对象标识符)是一种数据类型,用于在数据表中标识列。它是一个整数值,唯一标识数据表中的每一行。你可以在创建数据表时为每一列指定一个 OID,也可以在之后添加 OID 列。 举个例子,如果你想在数据表中创建一个 OID 列,可以使用如下 SQL 语句: ``` ALTER TABLE table_name ADD COLUMN oid serial PRIMARY KEY; ``` 这样就会在数据表中添加一个名为 "oid" 的列,它是一个整数类型的 OID,并且自动生成一个唯一的值来标识数据表中的每一行。 注意:OID 只在 PostgreSQL 数据库中使用,并不是所有数据库系统都支持。如果你使用的是其他数据库系统,可能需要使用其他方法来标识数据表中的列。 ### 回答2: OID(Object Identifier)是一种用于标识数据库中对象(例如表、列、索引等)的唯一标识符。在用于标注数据表中的列时,可以按照以下方法使用OID。 首先,为了使用OID标注数据表中的列,需要在创建表的时候为该列添加一个OID类型的列。例如,可以使用以下语句创建一个包含OID列的表: CREATE TABLE 表名 ( 列名1 数据类型1, 列名2 数据类型2, ... OID 列名 OID类型 ); 其次,当向表中插入数据时,OID列会自动生成一个唯一的标识符。可以使用以下语句来插入数据,并获取生成的OID值: INSERT INTO 表名 (列名1, 列名2, ...)VALUES (值1, 值2, ...)RETURNING OID; 再次,要查询带有OID列的数据,可以使用以下语句来获取特定OID值的行: SELECT * FROM 表名 WHERE OID = 特定OID值; 如果需要查询表中所有行的数据及其对应的OID值,可以使用以下语句: SELECT OID, * FROM 表名; 最后,如果需要更新带有OID列的数据,可以使用以下语句根据特定OID值进行更新: UPDATE 表名 SET 列名 = 值 WHERE OID = 特定OID值; 总之,通过为数据表中的列添加OID列,可以使用OID作为唯一标识符来标注数据表中的列。这样可以方便地对数据进行查询、更新和标识。 ### 回答3: OID(对象标识符)是一种用于标识数据表中的特定列的唯一标识符。在数据表的设计中,可以使用OID来标注列,以便在需要时对其进行唯一标识和引用。 要在数据表中标注列的OID,可以按照以下步骤进行操作: 1. 首先,确定所需的列中需要标注OID的部分。通常,在一个数据表中,每一列都有一个唯一的名称来标识它。选择需要唯一标识和引用的列。 2. 在设计数据表时,创建包含OID的新列。可以将这个列命名为“OID”或其他类似的标识符。这个列应使用适当的数据类型来存储唯一的标识符。 3. 对于每一行数据,在OID列中分配一个唯一的标识符。可以使用自增或其他算法来确保每个标识符都是唯一的。 4. 在需要引用列的地方,使用对应的OID值。OID充当一个“指针”或“引用”,用于在不同的表或列之间建立关联关系。 5. 当需要访问某个特定的列时,可以根据其OID值进行查找和定位。通过使用正确的OID值,可以找到并操作表中的相应列。 标注数据表中的列的OID,可以提供一种简单而有效的方法来唯一标识和引用列。通过使用OID,可以轻松地在不同的表中建立关联关系,并对列进行定位和操作。同时,OID的唯一性还可以确保列之间的数据完整性和一致性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一直再追梦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值