数据类型、Java常量和变量、获取键盘输入Scanner、运算符

一:数据类型

Java程序就是对数据的操作。Java中数据类型的划分如下图:
在这里插入图片描述
1、基本数据类型

  • 数值型:整数型:byte、short、int、long 小数型:float、double

  • 字符型:char

  • 布尔型:boolean 真和假 true/false

  • 数值型:在内存中占的大小

byte占一个字节(在内存中占8位)取值范围:-128----127
short占两个字节(在内存中占16位)取值范围:-32768----32767
int占4个字节(在内存中占32位)取值范围:-2147483648----2147483647
long占8个字节(在内存中占64位)取值范围:-9223372036854775808----9223372036854775807

注:在这四个整数类型中,int类型是默认的整数数值类型

float型为单精度浮点型在内存中占了4个字节(32位)
double型为双精度浮点型在内存中占了8个字节(64位)

注:double位默认类型

  • 字符型
    在Java中字符型表示单个字符,且必须使用单引号(’’)将其括起来。Java采用的16bit的Unicode 编码作为字符型的编码方式 eg:\uXXXX

  • 布尔型:boolean 真或者假

2、引用数据类型

  • 接口
  • 数组

二:Java变量和常量

1.作用:用来在程序运行期间保存数据的容器 临时存储
变量:在程序运行期间可以改变的量
常量:在程序运行期间不可提改变的量

2.创建和声明

  • 语法
    变量:数据类型 变量名;
    常量:final 数据类型 常量名;
  • 声明的方式
    先声明再赋值
    声明时赋值
  • 变量的使用:使用输出语句,调用变量名;使用变量,可以重复来使用一个数据。方便 数据的维护和修改。

在这里插入图片描述

3、Java代码中的注释

  • 注释在代码执行时不起作用,注释是写给自己和别人看的
  • 单行注释://
  • 多行注释:/* */
  • doc文档注释: /** */可以生成自己的api 文档

4、数据类型转换问题

java 数据类型,按照数据类型大小来排列
byte—short,char—int—long—float—double

  • 自动类型转化:小类型变量赋值给大类型变量
  • 强制类型转化:大类型变量赋值给小类型变量
  • 对于Java来说都是强制转换
    在这里插入图片描述

三、获取键盘输入 Scanner

在这里插入图片描述

四:运算符

综合小练习

题目:根据你输入的四位数的卡号,获取会员卡号各个位上的数字之和,如果等于6 ,则表示中奖

public class 抽奖系统 {
   public static void main(String[] args) {
	   //Scanner 文本扫描器  
	   Scanner input=new Scanner(System.in);
	   //获取键盘输入的四位数字  
	   System.out.println("输入一个四位数字 ");
	   int card =input.nextInt();
	   System.out.println("四位数字是:"+card);
	   //将四位卡号  各个为数字相加 
	     /*
	      * 1、获取每一位上的数字  
	      * 2、相加  
	      */
	      int  ge,shi,bai,qian,sum;
	      ge=card%10;//取个位 
	      shi=card/10%10;    
	      bai=card/100%10;
	      qian=card/1000;
	      System.out.println(ge);
	      System.out.println(shi);
	      System.out.println(bai);
	      System.out.println(qian);
	      sum=(ge+shi+bai+qian);//将各个为数字相加  赋值给sum变量
	      System.out.println("数字之和是"+sum);
	   //判断相加数字之后是不是6  
	   //使用三目运算符
	   String mess= (sum==6?"中将":"下次再来");
	   //输出中奖结果
	   System.out.println(mess);
   }
}

1、算数运算符:+、-、*、/、++、–

1.1对数值型的进行操作(与数学基本类似)

+表示数字相加
-第一表示减法运算,第二表示一个负数
*与数学运算一样
/除数,除数不能为0,不考虑余数
%取余数

注意事项:

  • 等类型相加,小于int类型的变量在运算之后,记得必须强制转换
    不同类型的数值运算:不同类型相加,在运算的时候自动将小类型数 据转为大类型数据
    自动转换和强制转换的问题
  • 程序在运行时出现的错误叫做运行时异常,在运行时报错,当前代码
    之后的代码将不再运行,此时java程序运行时自上而下一次运行,
  • 除数为double的0.0结果为正无穷大,除数为-0.0结果为-0.0
  • 在类型转换的时候,小数强制转换为整数,会损失精度

1.2:对其他类型的操作

  • char:char类型与数字运算,将自动转为int

  • String=多个char, +运算为拼接
    注意事项:

  • 只要遇到char,任意类型的变量都会转为字符串,然后进行拼接

  • 字符串不能被强制转换为基本数据类型

public static void main(String[] args) {
		//创建字符和字符串变量 
		char c='香';
		char c01=97;
		int i=(c+10);
		int i01='中';//char  ---->int 
		System.out.println(i01);
		//可以将值直接赋值给变量   也可以将变量与值运算的结果赋值给变量
		// 类型大小     类型转换   自   强  
    	System.out.println(i);
		System.out.println(c01);
		
		System.out.println("=========字符串  拼接    =========");
		/*
    	 * 只要遇到字符串  任意类型的变量  都会转为字符串然后进行拼接 
	   */
		 int num01=100;
		 int num02=200;
		 String str="javaJ2021";
		 //字符串不能直接被强制转换为基本数据类型    
		 String count=num01+str;
		 System.out.println(count);
    	 System.out.println(num01+num02+str);
		 System.out.println(num01+str+(num02+num01));
	}

2.赋值运算符

运算符运算规则
=赋值
+=加后赋值
-=减后赋值
*=乘后赋值
/=整除后赋值
%=取余后赋值

3、关系运算符(比较运算符)

运算符运算规则
==相等于
!=不等于
<小于
>大于
<=小于等于
>=大于等于

注意事项:

  • 可以进行基本数据类型和引用数据类型的比较
    基本数据类型:比较的是具体的值
    引用数据类型:比较的是地址值
  • 关系运算符的结果是boolean类的
  • 运算符两边可以是数值、变量(基本数据类)、表达式、数值比较、boolean、字符、字符串
public class RelationOperator {
	public static void main(String[] args) {
		//声明变量 
		int  num01=10;
		int num02=20;
		int num03=10;
		System.out.println("=======数值比较 ======");
		System.out.println("==比较"+(num01==num02));
		System.out.println("==比较"+(num01!=num02));
		System.out.println("==比较"+(num01>num02));
		System.out.println("==比较"+(num01<num02));
		System.out.println("==比较"+(num01<=num02));
		System.out.println("==比较"+(num01>=num02));
		System.out.println("==比较"+(10==10));
		
		boolean  num01=true;
		boolean num02=false;
		System.out.println("=======boolean比较 ======");
		System.out.println("==比较"+(num01==num02));
		System.out.println("==比较"+(num01!=num02));
		//boolean类型不能进行大于小于的比较 
		System.out.println("==比较"+(num01>num02));
		System.out.println("==比较"+(num01<num02));
		System.out.println("==比较"+(num01<=num02));
		System.out.println("==比较"+(num01>=num02));
		
		
		char  num01='a';
		char num02='b';
		System.out.println("=======字符比较 ======");
		System.out.println("==比较"+(num01==num02));
		System.out.println("==比较"+(num01!=num02));
		System.out.println("==比较"+(num01>num02));
		System.out.println("==比较"+(num01<num02));
		
		
		String  num01="hello";
		String num02="hello";
		System.out.println("=======字符比较 ======");
		System.out.println("==比较"+(num01==num02));
		System.out.println("==比较"+(num01!=num02));

		
		int  num01=10;
		int num02=20;  
		System.out.println("=======表达式比较       true   false======");
		System.out.println("==比较"+(true==true));
		System.out.println("!=比较"+(false!=true));
		//关系运算符的嵌套使用    
		System.out.println("表达式比较 ===="+((num01==num02)==(num01!=num02)));
	
	}
}

4、逻辑运算符

运算符运算规则
&
^异或
&&短路与

注意事项:

  • 表达式的判断:可以做true和false

  • 普通的: & | ^
    短路版的:&& || !

  • 与 &:左右两边都为true结果才为true 一个为假就是假
    或 || | :左右两边都为false,结果为false,一个为真就为真
    非 ! ^:最终结果取反,

  • 重点!!!!!!!!短路与非短路的区别
    短路 && 左边为真 右边继续判断 左边为false 右边就不管 && || 只要运算符的左边能够确定该运算符的最终结果 右边就不会执行;
    & | 运算符的左右两边都需要执行;

public static void main(String[] args) {

		int num01=10;
		int num02=20;
		boolean bool01=true;
		boolean bool02=true;
		boolean bool03=false;
		System.out.println("==============非短路 ===================");
		System.out.println("&========"+(bool01&bool02));
		System.out.println("&========"+(bool01&bool03));
		System.out.println("^========"+(true^true));
		System.out.println("|========"+(false|false));
		System.out.println("==============短路 ===================");
		System.out.println("&&========"+((num01==num02)&&(num01>num02)));
		System.out.println("&&========"+((num01!=num02)&&(num01<num02)));
		System.out.println("||========"+((num01!=num02)||(num01<num02)));
		System.out.println("||========"+((num01==num02)||(num01>num02)));
		//! 在最后取反      ! 直接对Boolean  
		System.out.println("!========"+(!(num01>num02)));
		System.out.println("!========"+(!bool01));
		}

结果如下:

在这里插入图片描述
5、三元运算符:根据判断条件返回不同的结果
语法:表达式 ? value01 : value2
使用语法:变量 =(表达式 ? value1 : value2)
根据表达式的结果,如果表达式的结果为true,返回value1,表达式的结果为false,则返回value2
返回值可以直接输出,或者使用变量来保存,用来接收返回值的变量必须与value1 和value2为同一数据类型
具体使用如下代码:

public class ThreeOperator {
	public static void main(String[] args) {
		/*
		 * 根据考试成绩来评定等级  
		 * 分数 大于等于60 为及格     60一下不包含60 为不及格   80以上不含80 为优秀  
		 */
		int  grande=98;
		//变量=  ( 表达式 ? value01 : value02);    
		System.out.println(grande>=60 ? "及格" : "不及格");
		String mess=(grande>=60 ? "及格" : "不及格");
		System.out.println(mess);
		
		//嵌套  
		String mess2=(grande>=60 ? (grande>80 ? "优秀" : "及格") : "不及格");
		System.out.println(mess2);
	}
}

6、位运算符<< >>
越来越小:>>
越来越大:<<
正整数:按位进行运算,将Java的数值型的数据,转为2进制后,进行移位用0补位

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值