JAVA语言程序设计第三章

第三章:Java语言基础

3.1标识符与数据类型

3.1.1标识符定义规则

  • 标识符包括 变量名,类名,方法名
  • 字母,下划线,或$开头,后面可以跟字母、下划线、美元符、数字
  • 数字不能作为标识符的第一个字符
  • 标识符不能是Java语言的关键字
  • 大小写敏感,且长度没有限定

在这里插入图片描述

3.1.2基本数据类型

在这里插入图片描述

  • boolean取值true false
  • char型采用Unicode编码方案,每个Unicode码占用2字节(16位)内存空间,包括英文字符与中文字符
类型长度取值范围
byte8位-2^7 ~2^7-1(-128-127)
short16位-2^15 ~2^15-1
int (缺省)32位-2^31 ~2^31-1
long64位-2^63 ~2^63-1
float32位-2^31 ~2^31-1
double64位-2^63 ~2^63-1

3.2表达式与语句

  • 位操作符:>>, <<, >>>, & , |, ^(逐位异或),~ (按位取反)

    • 右移运算符:>>(等价于除2^n,往数值小取整
    • 左移运算符:<<(等价于乘2^n)
    • 无符号右移:>>>(左边空位以0 填充)(32位)
    • 按位异或运算符:^
      • (0^0=0, 1^0=1, 0^1=1, 1^1=0)
      • 任何数a,都有aa=0,a0=a
  • 逻辑操作符:& , | (不短路与、或),!,^(异或),&&, ||(短路与、或)

    int a = 1;
    int b = 2;
    boolean result = ((a = 9 + 3) < 10) && ((b = 8 - 3) > 4);//短路与
    //boolean result = ((a = 9 + 3) < 10) || ((b = 8 - 3) > 4);//短路或
    System.out.println("result=" + result);//false
    System.out.println("a=" + a);//12
    System.out.println("b=" + b);//2 (短路或b=5)
    
  • 自动类型转换:
    1.两种类型彼此兼容
    2.目标类型的取值范围大于源类型(a=b;a取值范围大于b)

  • 强制类型转换:
    1.两种类型彼此不兼容
    2.目标类型的取值范围小于源类型

    • 自动进行强制类型转换:+=,-=,*=,/=,%=
    • 整型与浮点型可以相互转换,基本类型和数组、引用类型(String)、对象等复合类型之间不能互相转换

byte, short, char, int, long, float, double

byte a;
int b=256;
a = (byte)b;//超出数据范围
System.out.println(a);//0
//取模运算%操作对象可为浮点数
9.5 % 3 = 0.5;
  • 连接字符串
System.out.println('a');			//a
System.out.println('a'+1);			//98
System.out.println("hello"+'a'+1);	//helloa1
System.out.println('a'+1+"hello");	//98hello
System.out.println("5+5="+5+5);		//5+5=55
System.out.println(5+5+"=5+5");		//10=5+5
  • 码值:
    • 正数:原码 = 反码 = 补码
    • 负数:反码在原码基础上除符号位外,其他按位取反,补码是其反码加1

3.3序流控制

  • if关键字后的逻辑表达式必须得到一个逻辑值
if(x)//错
if(x!=0)//对
  • do-while循环不管任何情况都至少执行一次
  • 将一个集合作为一个整体放入for循环中,在for循环中可将集合中的元素进行逐个处理
String[] names = {Wang,Zhang,Li,Wu};
  for(String option: names) {
      System.out.println(option);
    }
  • switch语句:表达式: 必须是int类型,如byte,short,char ,int ,不能是float,double,long
    常量表达式: 整型常量

3.4数组

  • 数组可以声明为任何数据类型
  • 声明数组时不分配内存,创建数组时分配内存
int a[];
int[] a;//声明数组无需指定长度
int[] a = new int[10];//创建数组,分配内存
int[] arr = new int[]{102030};
//数组有length属性,没有length()方法
for(int i=0;i<a.length;i++)
    
float f[] = {2.3,4.5,5.6};//错
char[] c = new char[];//错

在这里插入图片描述

  • 数组的复制
int[] a = {1,2,3};
int[] b;
b = a;//复制了地址
b[0] = 4;
//a[0] = b[0] = 4;
//其他数组复制方法
int[] a = {10,20,30,40,50};
int[] b = Arrays.copyOf(a,3);//[10, 20, 30]
int[] c = Arrays.copyOfRange(a,1,5);//[20, 30, 40, 50]
int[] d = new int[3];
System.arraycopy(a, 1, d, 0, 3);//[20, 30, 40] 
  • 多维数组
int  a[][]; 
a = new int [3][4];
//不规则多维数组
int  a[][] = new int[2][];
a[0] = new int[10];
a[1] = new int[5];
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值