【二】变量和数据类型和运算符【java】

一、预备知识

  1. 二进制
    二进制数据就是0和1两个数码来表示的数,它的基数为2,进位规则为“逢二进一”,二进制对应两种状态,广泛应用与电子科学。

  2. 十进制与二进制的转换
    转换
    在线进制转换工具:https://tool.lu/hexconvert/
    2.1. 十进制转二进制:除2取余,逆序排序
    2.2. 二进制转十进制:权相加法

  3. 注释:注释语句不会被执行,不会出现在class文件里面
    3.1单行注释:// 后面的全是注释部分
    3.2多行注释:/* / 注意多行注释不可嵌套
    3.3文本注释:/
    * */

  4. 标识符
    用来给变量,类,方法以及包进行命名的。
    4.1标识符必须是以字母,下划线,美元符号$开头
    4.2 标识符其他部分可以是字母,下划线,美元符和数字的任意组合
    4.3java标识符大小写敏感,且长度无限制
    4.4 标识符不可以是java的关键字

    标识符的使用规则:
    表示类名的标识符:每个单词的首字母大写,如Man
    表示方法和变量的标识符:第一个单词小写,从第二个单词开始首字母大写,称之为“驼峰原则”

二、变量(类似于停车场的车位

1.变量的本质
可操作的存储空间,空间确定,存放的东西不确定
2.变量的分类和作用域
分为:局部变量,成员变量,静态变量
变量

3.常量(Constants)
常量通常指的是不变的固定的量,用final 表示。常量只能初始化一次

public class testConstants{
	public static void main(String[] args){
      PI=3.15;//编译错误,不能再次被赋值!
	}
}

为了更好的区分和表述,一般将1.2.‘a’等称为字符常量,用final修饰的称为符号常量。

三、基本数据类型

java是一种强类型语言。每个变量都必须声明数据类型,分为基本数据类型和引言数据类型。
java定义了3种基本数据类型

  • 数值型:
    整数类型:byte(1) short(2) int(4) long(8)
    浮点类型: float(4) double(8)
  • 字符型:char
  • 布尔型:boolean

java定义了三种引用数据类型(4个字节)

  • 类:class
  • 接口:interface
  • 数组

1、整型
java语言中整型常量的四种表示形式

  • 十进制整数:
  • 八进制整数:要求以0开头,如015
  • 十六进制整数:要求以0x或0X开头,如0x15
  • 二进制数:要求以0b或0B开头,如0b011100011
    注意:java语言默认是int ,要定义long的时候要加L
long a=5555//编译成功,在int范围类(21亿)
long a=5555555555//编译错误,超出了int能够表示的范围
long a=5555555555L//编译成功

2.浮点数
java浮点类型常量有两种表示方法

  • 十进制数形式:
  • 科学技术法:如3.14e0

float类型的数值有一个后缀F或者f,没有此后缀的默认是double类型,也可以直接加D或者d,用来表明为double类型。

float d=1.65//编译错误,1.65是double类型的浮点常量,不能直接赋值给float
float d=1.65f//编译成功

3.字符型
字符型占两个字节,‘a’和“a”是不相同的,“a”表示含有一个字符的字符串。char类型用来表示unicode编码表中的字符。用‘\u…’表示。

char c=‘a’;
char d='中'char e=‘中国’;//编译错误,‘中国’属于字符串,不可以用char定义,可以用String定义
char a=‘\n’//表示换行
System.out.println("a\nb\nc\n")//表示输出a,b,c后各自换行

4.Boolean型
有两个值:true和false
定义:boolean b=true;Boolean c=false;

四、运算符

运算符

  1. 算数运算符
    属于二元运算符,需要两个操作数才能运算,基本的加减乘除。
    自增自减只需要一个操作数。
    整数运算
    若两个操作数有一个为long,则结果也为long
    若没有long时,结果为int,即使操作数权威short,byte,结果也是int
    浮点运算
    两个操作数有一个为doule,则结果是double
    如果两个操作数都是float,结果才是float
    取模运算
    其操作数可以为浮点数,一般使用整数,结果是“余数”,“余数”符号和左边操作数相同,如7%3=1,-7%3=-1,7%-3=1
int a=3int b=a++//执行完后,b=3,先赋值,后自增
    b=++a;//执行胡b=4,先自增,再赋值
  1. 赋值及其扩展赋值运算符
int a=6//把6赋值给a
int b=7;
    a+=b ;//等价与a=a+b;
    a-=b ;//等价与a=a-b;
    a*=b ;//等价与a=a*b;
    a/=b ;//等价与a=a/b;
  1. 关系运算符

如:

int a=3int b=4Boolean c=a>b;
System.out.println(c);//打印false

  1. 逻辑运算符

逻辑运算符的操作数和运算结果都是Boolean值逻辑运算符

Boolean a=trueBoolean b=falseSystem.out.println(a&b);//与,有一个为false,结果为false
System.out.println(a|b);//或,有一个true,结果为true。
System.out.println(!b);//非,结果为true
System.out.println(a^b);//异或,相同false,不同为true。结果为true
  1. 位运算符
    位运算符
    按位与:有0则0,全1为1;
    按位或:有1则1,全0则0;
    按位异或:相同为false,不同为true,
int a=7int b=8System.out.println(a&b);//与,有0则0,结果为0
System.out.println(a|b);//或,有1则1,结果为15
System.out.println(~b);//非,结果为-9
System.out.println(a^b)//按位异或,相同为false ,结果为15
//移位
int c=5<<2;
System.out.println(c);//相当于5*2*2,结果为20;
System.out.println(40>>3);//相当于40/2/2/2,结果为8;
  1. 字符串连接符
    “+”运算符两侧的操作数只要有一个是字符串类型,系统会自动将另一个操作数转换为字符串然后再进行连接。
int a=12System.out.println("a="+a);//输出结果为a=12
//条件是string,不能是char,若为char,任然是加号,不是连接符。
char c=‘h’;
char d=‘i’;
System.out.println(c+d);//结果是209
System.out.println(""+c+d);//通过""+把整个运算换成字符串运算。
  1. 条件运算符
    语法格式:x?y:z
    若x的值为true,则结果为y,若x为false,则结果为z;
  2. 运算符优先级
    运算符的优先级
    注意:
    逻辑非>逻辑与>逻辑或。如a||b&&c的运算结果为:a||(b&&c)
    遇到复杂的运算可以用小括号来简便。

五、数据类型的转换

  1. 自动类型转换
    容量小的数据可以转换为容量大的数据
    转换
    实线表示无损数据丢失的自动类型转换,虚线表示转换时有可能会有精度 的损失。
    特例:整型常量是int类型,但是可以自动转换为byte,short,char,只要不超过其表示范围
int a=23long b=a;//int可以转换为long
int c=b;//编译错误,long不可以转换为int
//特例:整型常量是int类型,但是可以自动转换为byte,short,char,只要不超过其表示范围。
short b=12//合法
short b=123456//非法,超出了short的表示范围
  1. 强制类型转换
    有可能出现损失的情况,用()里面的类型表示想要转换的目标类型。
double x=3.14int nx=int)x;//强制转换为int ,丢掉小数部分,不会四舍五入,值为3;
  1. 基本类型转换时常见的错误和问题
    操作比较大的数时,要留意是否有溢出,尤其是整数操作时。
int money=1000000000//10亿
int year=10int total=money*year;
System.out.println("total="+total);//返回的total值为负数,int范围是正负21亿,超过了这个范围,因此结果会转为int值,再转为long值,发生数据丢失
//怎么处理
long total=money*(long)year;//第一种,强制转换;
long total=1L*money*year;//1L为long类型,即把整个表达式转换为long类型;

  1. 获取键盘输入
import java.util.Scanner;
public class main{
	public static void main(String[] args){
	Scanner a=new Scanner(System.in);
	int b=a.nextInt();//把键盘输入的数赋值给b
	System.out.println(b);
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值