zoukankan      html  css  js  c++  java
  • java基础知识系列---数据类型、访问修饰符、运算符

    1 基本数据类型

    整型4种:byte 1个字节;short 2个字节;int 4个字节;long 8个字节。

    浮点型:float 4个字节;double 8个字节;

    布尔型:boolean   true&false

    字符型:char  char 采用unicod的16位编码方式进行编码。

    2 引用数据类型

    引用数据类型包括:类、接口类型、数组类型、枚举类型、注解类型;

    基本数据类型和引用数据类型的区别:

    基本数据类型和引用数据类型的区别主要在存储方式上;

    基本数据类型在被创建时,在栈上给其划分一块内存,将数值直接存储在栈上;

    引用数据类型在被创建时,首先要在栈上给其引用分配一块内存,而对象的具体信息都存储在堆内存上,然后由栈上面的引用指向堆中对象的地址。

    例如:我有一个类MyDate,其中有属性day,mouth,year等,有构造方法(带参数);

    现在为其创建一个对象MyDate d1 = new MyDate(8,8,2008);

    在内存中的具体创建过程是:

    1)首先在栈内存中位其d1分配一块空间;

    2)然后在堆内存中为MyDate对象分配一块空间,并为其三个属性设初值0,0,0;

    3)根据类MyDate中对属性的定义,为该对象的三个属性进行赋值操作;

    4)调用构造方法,为三个属性赋值为8,8,2008;(注意这个时候d1与MyDate对象之间还没有建立联系)

    5)将MyDate对象在堆内存中的地址,赋值给栈中的d1;通过句柄d1可以找到堆中对象的具体信息。

    4 访问修饰符

    package(默认),private,protected,public

    1:package是默认的保护模式,又叫做包访问,没有任何修饰符时就采用这种保护模式。包访问允许域和方法被同一个包内任何类的任何方法访问.(包内访问)。

    2:private标识得访问模式,表示私有的域和方法只能被同一个类中的其他方法访问,实现了数据隐藏;必要时,可以通过方法访问私有变量.(类内访问)。

    3:public修饰符用于暴露域和方法,以便在类定义的包外部能访问它们。对包和类中必要的接口元素,也需要使用这个级别;main()方法必须是public的,toString()方法也必须是public的。一般不会用public暴露一个域,除非这个域已经被声明为final。(跨包访问)。

    4:protected修饰符提供一个从包外部访问包(有限制)的方法。在域和方法前增加protected修饰符不会影响同一个包内其他类的方法对它们的访问。要从包外部访问包(其中含有protected成员的类),必须保证被访问的类是带有protected成员类的子类。也就是说,希望包中的一个类被包之外的类继承重用时,就可以使用这个级别。一般应该慎用。(包中类被包外类继承慎用)。

    5 运算符

    1、算术运算符;

    算术运算符也就是我们小学所学过的:+ - * /;还有取模运算符:%;取模运算符也就是求余的

    运算;

    运算形式:操作数 + 操作数;操作数 - 操作数;操作数 * 操作数;操作数 / 操作数;操作数

    % 操作数;

    2、递增和递减运算符;

    递增运算符是++,递减运算符是--;

    也就是相当于递增就加1,递减就减1的运算;

    运算形式:(递增)变量++;++变量;(递减)变量--;--变量;

    怎么理解呢?

    也就是递增或递减即可放在变量的前面,也可以放在变量的后面;运算符在前面的(++、--),就

    先运算前面的(++、--),在后面的就后运算(++、--);

    3、关系运算符;

    运算形式:左操作数 关系运算符 右操作数;

    在关系运算符中,最终得到的一定是布尔类型中的真(true)或者假(flase),不会有第三种值;

    关系运算符包括: == 等于:如果两个值相等,则返回真值

    != 不等于:如果两个值不想等,则返回真值

    < 小于:如果左操作数的值小于右操作数的值,则返回真值

    > 大于:如果左操作数的值大于右操作数的值,则返回真值

    <= 小于等于:如果左操作数的值小于或等于右操作数的值,则返回真值

    >= 大于等于:如果左操作数的值大于或等于右操作数的值,则返回真值

    在计算机编程中,关系运算符是比较重要的一部分;它是根据某个变量的值来执行特定的操作;

    4、位运算符;

    运算符 描述

    & 与

    | 或

    ^ 异或

    ~ 非(把0变成1,把1变成0)

    在java中,位运算很少,大家只有知道就行了,到用了的时候,参照一下真值表就行了;

    5、逻辑运算符;

    在逻辑运算符中,最后得到的值也是一个布尔类型的teue(真)或flase(假);

    运算符 描述

    && 与

    || 或

    ! 非

    6、位移运算符;

    学习位移;首先我们先阐述一下符号位的概念;

    符号位:是数的最后一位,不用来计算的;

    当符号位为0时,值为正数;当符号位为1时,值为负数;

    无符号位时为正数,有符号位时为正数或者负数;

    运算符 描述

    << 左移

    >> 右移

    >>> 右移(补零)

    左移(<<) 运算形式:值 << 位数

    右移(>>) 运算形式:值 >> 位数

    移动后,左移、右移都会保留符号位!

    右移(补零),移动后,不保留符号位,永远为正数,因为其符号位总是被补零;

    7、运算符优先级;

    一般,我们都是先运算的用括号括起来,跟我们小学学习的一样;

    字符和字符串的区别:字符时用单引号括起来的,而字符串是用双引号括起来的;

    注意:在java中,“+”运算符两侧的操作数中,只要有一个字符串(String)类型,系统会自动将其

    他的操作数转换为字符串后再进行连接;运行时,只要和字符串相加,无论任何形式,都是以字符串

    形式运行出来的;

    8、Java语言支持四种类型:接口,类,数组和原语类型。其中前三种被称为是引用类型,类的实例和数组是对象,而原语类型的值不是对象。一个类的成员包括他的域,方法,成员类和成员接口。

    一个方法的原型包括他的名字和所有形参的类型,方法原型不包括他的返回类型。

  • 相关阅读:
    原型模式
    哈希表原理
    Pow共识算法
    C++虚函数的工作原理
    TCP三次握手与四次分手
    TCP重置报文段及RST常见场景分析
    Ping、Traceroute工作原理
    ARP协议
    Rust生命周期bound用于泛型的引用
    Linux下core dump
  • 原文地址:https://www.cnblogs.com/myadmin/p/5222880.html
Copyright © 2011-2022 走看看