温故而知新(二)Java基础:变量类型和、修饰符、运算符

原创 2017年08月16日 15:40:57

java变量类型

  1. 类变量:独立于方法之外的变量
  2. 实例变量:独立于方法之外的变量,不过没有static修饰
  3. 局部变量:类的方法中的变量
        static int test=0;    // 类变量
        String str="This is 实例变量";  // 实例变量
        public void method(){

            int i =0;  // 局部变量

        }

局部变量

  • 局部变量声明在方法、构造方法、语句块中

  • 局部变量在方法、构造方法、语句块中 被执行的时候创建,执行完就被销毁了

  • 访问修饰符不能用于局部变量

  • 局部变量只在方法、构造方法、语句块中可见

  • 局部变量实在栈上分配的

  • 局部变量没有默认值,所以局部变量被声明后,必须初始化才可以被调用

    Test:

public class Test {

    public static void main(String[] args) {  

            Test test=new Test();
            test.variable();
    }
    public void variable(){
          String yes_init = "this is 局部变量";
          System.out.println("有初始化的局部变量: " + yes_init);
          /**         
           * String no_init;
           * System.out.println("无初始化的局部变量: " + no_init);//这里会报错:提示你初始化这个局部变量
           * */

       }
}


----------

实例变量

  • 实例变量声明在一个类中,存在于方法、构造方法、语句块之外
  • 当对象被实例化后,每个实例变量的值就跟着确定了
  • 实例变量在对象被创建的时候创建,对象销毁的时候跟着销毁
  • 在方法、构造方法、语句块中引用可以获取实例变量的信息
  • 访问修饰符可以 修饰实例变量
String str="This is 实例变量";  // 实例变量

类变量(静态变量)

  • 类变量也称为静态变量,在类中以static关键字声明,但必须在方法构造方法和语句块之外

  • 无论一个类创建了多少个对象,类只拥有类变量的一份拷贝。

  • 静态变量储存在静态存储区。经常被声明为常量,很少单独使用static声明变量。

  • 静态变量在程序开始时创建,在程序结束时销毁。

//test是静态的私有变量
   private static String test;

静态变量和实例变量区别

  • 静态变量属于类,该类不生产对象,通过类名就可以调用静态变量。

  • 实例变量属于该类的对象,必须产生该类对象,才能调用实例变量。

    二者在程序运行时的区别:

    1. 实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量。
  • 静态变量不属于某个实例对象,而是属于类,所以也称为类变量,只要程序加载了类的字节码,不用创建任何实例对象,静态变量就会被分配空间,静态变量就可以被使用了。总之,实例变量必须创建对象后才可以通过这个对象来使用,静态变量则可以直接使用类名来引用。


修饰符

  • 主要分为两类:访问修饰符、非访问修饰符

访问控制修饰符

  • 默认的,也称为 default,在同一包内可见,不使用任何修饰符

  • 私有的,以 private 修饰符指定,在同一类内可见。

  • 共有的,以 public 修饰符指定,对所有类可见。

  • 受保护的,以 protected 修饰符指定,对同一包内的类和所有子类可见。

访问控制和继承
  • 父类中声明为 public 的方法在子类中也必须为 public。

  • 父类中声明为 protected 的方法在子类中要么声明为 protected,要么声明为 public,不能声明为 private。

  • 父类中声明为 private 的方法,不能够被继承。


非访问修饰符

  • static修饰符:用来创建类方法和类变量
  • final修饰符:final修饰的变量就是常量,不可修改。修饰的类不能被继承,方法不能重新定义
  • abstract :用来创建抽象类和抽象方法。
  • synchronized 修饰符,主要用于线程的编程

  • synchronized :

//synchronized 关键字声明的方法同一时间只能被一个线程访问。synchronized 修饰符可以应用于上面的四个访问修饰符。
public synchronized void showDetails(){
}

运算符

算术运算符

这里写图片描述

  • ++前缀自增自减法(++a,–a): 先进行自增或者自减运算,再进行表达式运算。
  • 后缀自增自减法(a++,a–): 先进行表达式运算,再进行自增或者自减运算
int a = 3;//定义一个变量;
            int b = 3;
            int c = 2*++a;
            int d = 2*b++;
            System.out.println("自增运算符前缀运算后a="+a+",c="+c);
            System.out.println("自增运算符后缀运算后b="+b+",d="+d);

//日志:自增运算符前缀运算后a=4,c=8
//自增运算符后缀运算后b=4,d=6

关系运算符

A=5;B=10;
这里写图片描述


逻辑运算符

这里写图片描述


条件运算符(?:)

条件运算符也被称为三元运算符。该运算符有3个操作数,并且需要判断布尔表达式的值。该运算符的主要是决定哪个值应该赋值给变量。

  • 条件表达式?表达式1:表达式2。
  • 问号前面的位置是判断的条件,判断结果为bool型,为true时调用表达式1,为false时调用表达式2。
int a ,b;//定义一个变量;
            a=10;
         b=(a==5) ? 30 : 50;

          System.out.println("三元运算符"+b+"");//结果50
    }

instanceof 运算符

该运算符用于操作对象实例,检查该对象是否是一个特定类型(类类型或接口类型)。

  • 注意:熟悉android列表多种行视图的一定经常用到这个

  • 格式:

( Object reference variable ) instanceof  (class/interface type)
//运算符左侧变量所指的对象,是操作符右侧类或接口(class/interface)的一个对象,那么结果为真。

例如:

Cat a=new Cat();
 boolean result =  a instanceof Cat ;//结果返回的为true

//或者:表达式左边被比较的对象兼容右边的数据类型,返回的也是true
String name = "Tom";
boolean result = name instanceof String; // 由于 name 是 String 类型,所以返回真
版权声明:本文为博主原创文章,未经博主允许不得转载。

Java基础学习笔记(一)环境变量配置,数据类型,运算符,控制语句,循环语句

做开发有一段时间了,回想一下以前在开发中有时总会有力不从心的感觉,总结出是基础知识掌握不牢固。所以想做一个java基础知识学习记录,如有错误的地方还请大家指出改正 :) 1.首先是环境变量的配置...

Java基础__(环境变量配置,关键字,标识符,进制,数据类型,运算符)

常用DOS命令 环境变量配置 关键字和标识符 关键字 标识符的命名规则法律 标识符的命名规范道德 驼峰命名法 进制 Java数据类型 运算符 算术运算符 逻辑运算符 字符串连接符1.常用DOS命令...
  • zpw91
  • zpw91
  • 2016年09月11日 13:48
  • 288

黑马程序员_java基础学习笔记01_变量,数据类型,运算符

------- android培训、java培训、期待与您交流! ----------
  • Troy_Fu
  • Troy_Fu
  • 2015年05月21日 17:52
  • 246

黑马程序员——Java语言基础——关键字、表示符、常量、变量及数据的类型、运算符

---------------------------- android培训、java培训、期待与您交流! --------------------------------- Java是强类型的...

java基础——数据类型,变量,运算符,字符串,输入输出,数组,大数值

java规定 整型: byte 1字节 short 2字节 int 4字节 long 8字节 浮点: float ...

Java 程序员 必备基础知识 温故而知新

前言正文 自我介绍数据结构和算法Java篇Java EE知识点储备计算机网络操作系统数据库相关XML常识性知识 总结 前言 准备了接近两个月的面试笔试,现在终于...
  • ljj_9
  • ljj_9
  • 2017年04月27日 18:36
  • 735

java基础学习——变量,java基本类型,运算符和表达式

这篇文章是接着上一篇的java基础学习,本文主要是对java的一些变量和运算符进行简单的介绍于讲解,极为适合新手学习。...

java变量数据类型运算符

  • 2016年09月26日 13:47
  • 13.05MB
  • 下载

黑马程序员---OC基础---封装、继承、多态、@property、id类型、实例变量修饰符

黑马程序员---OC基础---封装、继承、多态、@property、id类型、实例变量修饰符
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:温故而知新(二)Java基础:变量类型和、修饰符、运算符
举报原因:
原因补充:

(最多只允许输入30个字)