第二章 数据类型和运算符

冷暖自知 提交于 2019-11-25 23:35:22

第二章 数据类型和运算符

2.2标识符(Unicode 而非 ASCII 可以汉字 )

字母含义:英文+中文
以字母、下划线、$开头(数字不可以开头)
规范:
     类:首字母大写
     表示方法和变量:驼峰原则 首字母小写第二单词首字母大写

变量的分类:

1.局部变量:(需要初始化后方可使用)只在语句内部有用
2.成员变量:类内部定义随对象始终
      无需初始化,默认初始化为
  int     0
  double  0.0
  char	‘\u0000’
  boolean false
3.静态变量:使用static定义
   从属于类,生命周期伴随类始终
   从类加载到卸载。如果不自行初始化,
   与成员变量相同会自动初始化成该类型
   的默认初始值

常量:

1.实际的值、字符等 int a=8; 8为常量
2.用final修饰的 常量 :
final String str="ename";
final double PI=3.14;

变量和常量命名规范:

(规范是程序员的基本准则,
不规范会直接损害你的个人形象)

  • 所有变量、方法、类名:见名知意

  • 类成员变量:首字母小写和驼峰原则: monthSalary

  • 局部变量:首字母小写和驼峰原则

  • 常量:大写字母和下划线:MAX_VALUE

  • 类名:首字母大写和驼峰原则: Man, GoodMan

  • 方法名:首字母小写和驼峰原则: run(), runRun()

数据类型

在这里插入图片描述

整数类型:
  • byte(1字节,-27~2-1 ,128-127)
  • short(2字节,-215-215-1,-32768-32767)
  • int(4字节,-231-231-1,-2147483648-47)
  • long(8 byte, -263-263-1)
浮点类型:
  • flaoat(4byte,-3.403E38-3.403E38)
  • double(8byte,-1.798E308,-1.798E308)
    在这里插入图片描述

引用数据类型 (统一 4字节)

  • 类(class)
  • 接口(interface)
  • 数组
int a=15;
=015;8进制
=0x15;16进制
=0b1101;2进制

float a=3.15 //错误
float a=3.15f;
double b=3.15;
float a=315e-2;

float m=338e-5f
float m=338e-5d;

浮点型不能用于比较
如果要比较 (任意浮点型精度 比较类 BigDecimal
任意整数型精度 BigInteger

字符型变量 与 C语言 一样

2.6.4 boolean类型变量/常量 if(flag)/ if(!flag)

2.7 运算符(operator)

  • 算术运算符 二元运算符 +,-,*,/,%
  • 一元运算符 ++,–
  • 赋值运算符 =
  • 扩展运算符 +=,-=,*=,/=
  • 关系运算符 >,<,>=,<=,==,!= instanceof
  • 逻辑运算符 &&,||,!,^
  • 位运算符 &,|,^,~ , >>,<<,>>>
  • 条件运算符 ? :
  • 字符串连接符 +

2.7.1 算术运算符

2.7.2 赋值以及扩展赋值运算符

b=a++(先赋值后 a+1,c=++a先 a+1 在赋值

2.7.3 关系运算符 >,>=,<,<=,!=,==

2.7.4 逻辑运算符 &,|,||,&&,!,^

                     **&&(有一个为0就为0)**

2.7.5 位运算符

位运算符 说明

  • ~ 取反
  • & 按位与
    -| 按位或
  • ^ 按位异或`
  • << 左移运算符,左移1位相当于乘2
  • >> 右移运算符,右移1位相当于除2取商`
  • >>> 无符号右移,左边空位 补零

2.7.6 字符串连接符

“ + ”对于char ,int, String 等进行链接
仅限于 System.out.println();等输出函数

——————————————————————————————————————————————

2.7.7 条件运算符

xx?xx:xx同C/C++一样
也可用于
JAVA:System.out.println(a>b?a:b);
C++: cout<<(a>b?a:b)<<endl;
————————————————————————————————————————

2.7.8 运算符优先级的问题

不要去刻意的记这些优先级,表达式里面优先使用小括号来组织!!
重点优先级 逻辑非 > 逻辑与 > 逻辑或

优先级 运算符 结合性
1 () 括号运算符 由左至右
2 !、+(正号)、-(负号) 一元运算符 由左至右
2 ~ 位逻辑运算符 由右至左
2 ++、– 递增与递减运算符 由右至左
3 *、/、% 算术运算符 由左至右
4 +、- 算术运算符 由左至右
5 <<、>> 位左移、右移运算符 由左至右
6 >、>=、<、<= 关系运算符 由左至右
7 ==、!= 关系运算符 由左至右
8 & 位运算符、逻辑运算符 由左至右
9 ^ 位运算符、逻辑运算符 由左至右
10 | 位运算符、逻辑运算符 由左至右
11 && 逻辑运算符 由左至右
12 || 逻辑运算符 由左至右
13 ? : 条件运算符 由右至左
14 =、+=、-=、*=、/=、%= 赋值运算符、扩展运算符 由右至左

2.8.1 自动类型转换

在这里插入图片描述

2.8.2 强制类型转换

int a=20;
final int b=1e9;
int c=a*b;	//溢出
long c=a*b;		// 数据丢失|溢出

正解long c=a*(long)b;

先将一因子b转型 使得整个a*b提升为long 来计算

布尔类型不能和任何数值类型之间做强制类型转换

2.9 简单的键盘输入和输出

import  java.util.Scanner;
Scanner   scanner =  new Scanner(System.in);
String   name =  scanner.nextLine();
int   age = scanner.nextInt();
System.out.println(name);
System.out.println(age);

课后部分习题

3.下面的赋值语句中错误的是( )。(选择一项)

A.float f = 11.1;

B.double d = 5.3E12;

C.double d = 3.14159;

D.double d = 3.14D;

4.在Java中,下面( )语句能正确通过编译。(选择二项)

A.System.out.println(1+1);

B.char i =2+‘2’;
System.out.println(i);

C.String s=“on”+‘one’;

D.int b=255.0;

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!