Java数据类型变量与运算符


Java数据类型变量与运算符

数据类型的概述

分类

  1. 基本数据类型:byte/float/double/int/char/boolean/long/short
  2. 引用数据类型

堆、栈、常量池、方法区

数据都存在内存中,内存又分为如下:

1.堆:heap
* 运行时数据区
* 运行时动态分配内存
* 由系统垃圾回收自动回收垃圾
* 存取数据较慢
2.栈:stack
* 存取数据较快
* 数据可以共享
* 数据大小和生命周期必须固定,不灵活
3.方法区:method area
* 用来存储类型信息
4.常量池:
* 用来存储常量

String a="Hello" 放在常量池。
String a = new String("Hello") 放在堆,引用放在栈。

在函数(方法)中定义的基本类型变量存储在 栈 中
引用类型实例的引用(reference)也存储在 栈 中
引用类型实例的成员变量,存储在 堆 中

【堆和栈的区别】

基本数据类型

基本数据类型的位数大小

Java数据类型变量与运算符_第1张图片
基本类型1

基本类型2

基本类型3

Java数据类型变量与运算符_第2张图片
基本类型4

转换

  • 范围小->范围大的(隐式转换)
  • 范围大->范围小的(显示转换、强转,精度丢失)
  • 数值型和boolean型不能转换

赋值

使用=赋值,注意不要越界。比如byte b1=129;超过127,就会报错。

  • byte b1=127;
  • float f1=1.0f;
  • double d1=1.0d;
  • boolean isok=false;
  • char='a';
  • int i1=1;

☆ 思考以下结果

  1. 段1

     double d1=1.0d;
     float d2=1.0f;
     System.out.println("d1==d2 "+(d1==d2));
     System.out.println("d1!=d2 "+(d1!=d2));
     System.out.println("d1>d2 "+(d1>d2));
     System.out.println("d1
  2. 段2

     double d3=0.3d;
     float d4=0.3f;
     System.out.println("d3==d4 "+(d3==d4));
     System.out.println("d3!=d4 "+(d3!=d4));
     System.out.println("d3>d4 "+(d3>d4));
     System.out.println("d3

【参考答案】

标志符

变量、函数、数组、对象、类和接口都需要命名,这些名称就成为标识符。

标识符命名规则

  • 只能由英文字母、数字、下划线“_”和“$”符号组成;
  • 必须以英文字母、“_”或“$”开头,即不能以数字开头;
  • 除“_”和“$”以外,不能包含其它任何特殊字符;
  • 不能与关键字冲突;
  • 严格区分大小写。

关键字:电脑语言里事先定义的,有特别意义的标识符。比如:main

变量

定义

变量:变量就是申请内存来存储值。变量存在栈中。

作用范围

变量是有作用范围的。

  • 题目:有1,2,3,4四个数字,能组成多少个不相同且无重复的三位数?
    public class ScopeVariable
    {
      public static void main(String[] args)
      {
        int count = 0;
        for (int i = 1; i <= 4; i++)  //在需要使用变量时声明
        {
          for (int j = 1; j <= 4; j++)
          {
            for (int k = 1; k <= 4; k++)
            {
              if (i != j && i != k && j!= k)
              {
                int temp = i * 100 + j * 10 + k;
                System.out.print(temp + "\t");
                count++;
              }
            }
          }
        }  /*思考:在此处可以访问到变量k吗?*/
        System.out.println("\n有:" + count + "个符合要求的数");
      }
    }

输出语句

  • 换行:System.out.println
  • 不换行:System.out.print

【Java中的转义符】

运算符和表达式

算术运算符

  • -:负数
  • ++:自增
  • --:自减
  • +:加法
  • -:减法
  • *:乘法
  • /:除法
  • %:取模(余数)

关系运算符

  • =:等于
  • !=:不等于
  • >:大于
  • <: 小于
  • >=:大于等于
  • <=:小于等于

逻辑运算符

  • !:逻辑非
  • &:与
  • |:或
  • &&:短路与
  • ||:短路或

短路不短路的区别:短路就是左边如果成立了就不再校验右边

条件运算符

  • ( ? : )

      public class HelloWorld{
          public static void main(String[] args) { 
              int score=68; 
              String mark =(68>60)? "及格":"不及格";      
              System.out.println("考试成绩如何:"+mark); 
          }
      }
    

赋值运算符

  • =:赋值
  • +=:相加并赋值
  • -=:相减并赋值
  • *=:相乘并赋值
  • /=:相处并赋值
  • %=:取模并赋值(a=a%b)

运算符优先级

【运算符优先级】

你可能感兴趣的:(Java数据类型变量与运算符)