Java-语言基础(常量、变量、数据类型、运算符)

1.常量

什么是常量?
就是在程序的执行过程中其值不发生改变的量;

  • 字符串常量:用双引号引起来的内容:“HelloWorld”;
  • 整数常量:所有整数:123;
  • 小数常量:所有小数:3.14;
  • 字符常量:用单引号引起来的内容’a’;
  • 布尔常量:较为特有,只有True和False
  • 空常量:null

2.变量

1.什么是变量?
在程序执行过程中,在某个范围内其值可以发生改变的量,变量其实是内存中的一小块区域。
Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。
Java程序中每一个变量都属于特定的数据类型,在使用前必须对其声明,声明格式为:

//声明格式
type varName [=value][{,varName [=value]}]
//例如: 
int i =100;
float f =12.3f;
double d1,d2,d3 = 0.123;
String s = "hello";

从本质上讲,变量其实是内存中的一小块区域,使用变量名来访问这块区域,因此,没一个变量使用前必须要先申请(声明),然后必须进项赋值(填充内容),才能使用。

2.变量的分类

  • 按被声明的位置划分
    • 局部变量:方法或语句块内部定义的变量;
    • 成员变量:方法外部、类的内部定义的变量;
    public class HelloWorld {
    int j =9; //成员变量
     public static void main(String[] args){
         int i =8; //局部变量
         System.out.println("HelloWorld!");
    }
    }
    
  • 按所属的数据类型划分
    • 基本数据类型变量
    • 引用数据类型变量

特:程序执行过程
在这里插入图片描述

3.数据类型及其转换

数据类型
在这里插入图片描述

  • 布尔型Boolean:适用于逻辑运算,只允许取值ture或false
  • 字符型char:单引号引起来的单个字符;Unicode编码,每个字符占两个字节。
  • 整数型:
    在这里插入图片描述
    注:long型常量需在后面加‘L’
  • 浮点型:
    在这里插入图片描述
    注:float型常量需在后面加‘f’或‘L’
class  Datatype
{
	public static void main(String[] args) 
	{
		//定义数据类型
		byte a=127;
		short b=300;
		int c=5000;
		long d=1L; //定义类型的数据的时候在值的后面加一个后缀L,
					//代表这是一个long类型的
		float e=3.14F; //定义float类型的时候后面加上一个后缀F,代表这是一个float类型的数据
		double f=3.14;
		//整数默认为int类型,小数默认为double类型
		System.out.println(a);
		System.out.println(b);
		System.out.println(c);
		System.out.println(d);
		System.out.println(e);
		System.out.println(f);
	}
}

基本数据类型转换
1.boolean布尔型不可以转换为其他的数据类型
2.容量小的类型自动转换为容量大的数据类型
数据类型按容量大小排序为:

  • byte,short,char——>int——>long——>float——>doube
  • byte,short,char之间不转换,他们参与运算首先转换为int类型

容量大的数据类型转换为容量小的数据类型时,要加上强制转换符,但可能造成精度降低或溢出。

  • 目标数据类型 变量名=(目标数据类型)(被转换的数据)

有多种类型的数据混合运算时,系统首先自动的将所有数据转换成容量最大的那一种数据类型,然后再进行计算。(整数常量默认int,小数常量默认double)

public class TestConvert 
{
    public static void main(String arg[]) 
    {
        int i1 = 123; 
        int i2 = 456;
        double d1 = (i1+i2)*1.2;//系统将转换为double型运算
        System.out.println(d1);//输出为:694.8
        float f1 = (float)((i1+i2)*1.2);//需要加强制转换符
        System.out.println(f1);//输出为:694.8

        byte b1 = 67; 
        byte b2 = 89;
        byte b3 = (byte)(b1+b2);//系统将转换为int型运算,需要强制转换符
        int b4 = b1+b2;
        System.out.println(b3);//输出为:-100(直接砍掉字节)
        System.out.println(b4);//输出为:156

        double d2 = 1e200;
        float f2 = (float)d2;//会产生溢出
        System.out.println(f2);//输出为:Infinity(float类型认为它无穷大)

        float f3 = 1.23f;//必须加f
        long l1 = 123;
        long l2 = 30000000000L;//必须加L
        float f = l1+l2+f3;//系统将转换为float型计算
        long l = (long)f;//强制转换会舍去小数部分(不是四舍五入)
        System.out.println(f);//输出为:3.0000001E10
        System.out.println(l);//输出为:30000001024

    }
}

4.运算符

什么是运算符?
对常量和变量进行操作的符号称为运算符。

运算符的分类:

  • 算数运算符:+、-、*、/、%、++、–

    • ++、–单独使用放在操作数前面和后面效果一样;放在操作数的前面,先自增或自减,然后再参与运算;放在操作数后面,先参与运算,再自增或自减;
      public class Test
      {
          public static  void  main(String arg[])
          {
              int i1 = 10,i2 = 20;
              int i = (i2++);//放在操作数后面,先参与运算,再自增或自减;
              System.out.println("i="+i);//i=20
              System.out.println("i2="+i2);//i2=21
              i = (++i2);//放在操作数的前面,先自增或自减,然后再参与运算;
              System.out.println("i="+i);//i=22
              System.out.println("i2="+i);//i2=22
              i = (--i1);
              System.out.println("i="+i);//i=9
              System.out.println("i1="+i1);//i1=9
              i = (i1--);
              System.out.println("i="+i);//i=9
              System.out.println("i1="+i1);//i1=8
          }
      }
      
  • 赋值运算符:=、+=、-=、*=、/=、%=
    在这里插入图片描述

  • 比较运算符:==、!=、<、>、<=、>=、instanceof

  • 逻辑运算符:&并且、|或者、!非、^异或,&&短路与、||短路或

    • &&执行效率更高,先比较前一半,如果可以确定最终值则不执行后一半。

在这里插入图片描述

  • 字符串连接符:+
    "+"运算符两侧的操作数中只要有一个是字符串(String)类型,系统会自动将两一个操作数转换成字符串然后再进行连接。

    String s = "Hello"+"World";
    int c = 12;
    System.out.println("c="+c);
    
  • 位运算:&、|、^、~按位取反、<<左移、>>右移、>>>无符号右移。

    • 用法:&有0则0;|有1则1;^:相同则0,相反则1;~:按位取反,0变1,1变0;
  • 三目运算符:
    (关系表达式)?表达式1:表达式2;
    计算关系表达式的值,如果关系表达式为true,运算的结果是表达式1的值;否则是表达式2的值;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值