java语言基础笔记 基本数据类型 与或非

Java语言基础

变量

变量的概念

计算机内存中的一块存储空间,是存储数据的基本单元用于存储在程序执行中的数据

变量的定义方式
  1. 先声明,再赋值(常用)

    数据类型 变量名;int i;

    变量名=值;i = 100;

  2. 声明并赋值(常用)

    数据类型 变量名=值;

    int i = 100;

  3. 多个同类型变量的声明与赋值

    数据类型 变量1,变量2=值,变量3;

    int i,j=100,k;

    (java是强类型语言,变量的类型必须与数据的类型一致)

注意事项
  1. 变量需要先赋值在使用
  2. 在同一个作用域,变量名不能重名
  3. 注意取值范围不要出现越界问题( byte范围:-128~127 byte c = 300;—越界 )

数据类型

  1. 作用:用于约束所存储数值的范围
  2. 数据类型分类
    • 基本数据类型:byte short int long float double boolean char
    • 引用数据类型:String(常用-存字符串)
在这里插入图片描述
基本数据类型
  • 整数 (int 为整数的默认类型,如需要long类型赋值较大整数时,需在后面追加L)

在这里插入图片描述

  • 小数/浮点数**(double 为浮点数的默认类型,如需要float类型赋值时,需在后面追加F)**

在这里插入图片描述

  • 布尔

    • 可直接赋值true/false
    • 可赋值一个结果为true/false的表达式
    • 布尔不能参与算数运算

在这里插入图片描述

  • 字符

    Unicode中每个字符都对应一个二进制数,可以使用多种方式赋值

    • 字符赋值:char c = ‘A’;(通过’'为字符赋值)
    • 整数赋值:char b= 65;(通过十进制数65在字符集中对应的字符赋值)
    • 进制赋值:char a = ‘\u0041’;(通过十六进制数41在字符集中对应的字符赋值)

在这里插入图片描述

引用数据类型
  • String

在这里插入图片描述

转义字符

Java通过转义字符来解决特殊字符的输出

  • \n:换行
  • \t:水平制表
  • \’:输出一个单引号
  • \":输出一个双引号
  • \\:输出一个\
class ZhuangYi{
	public static void main(String[] args){
		/*转义字符: \n  \t  \'  \"  \\  */
		System.out.print("姓名: \n");
		System.out.println("年\'龄:20;\t\"爱好\":睡\\觉");
        
   		//姓名:
   		//年'龄:20;     "爱好":睡\觉
	}
}

数据间的类型转换

自动类型转换
  1. 两种类型相互兼容
  2. 目标取值范围大于原类型
		/* 数据类型的自动转换 
		   数据间的类型兼容 目标数据类型范围大于源数据类型
		*/
		// 1.整数整数间的转换
		byte b = 30;
		short s = b;
		// 2.整数与浮点数间的转换
		double d = s;
		// 3.整数与字符间的转换
		char c = 'C';
		int i = c;
		System.out.println("自动类型转换:");
		System.out.println(s); //30
		System.out.println(d); //30.0
		System.out.println(i); //67
强制类型转换
  1. 两种类型相互兼容
  2. 目标类型范围小于原类型
		/* 数据类型的强制转换 
		   数据间的类型兼容 源数据类型范围大于目标数据类型
		*/
		// 1.整数整数间的转换
		int i2 = 178;
		byte b2 = (byte)i2;
		// 2.整数与浮点数间的转换
		double d2 = 100.02;
		int i3 = (int)d2;
		// 3.整数与字符间的转换
		int i4 = 99;
		char c2 = (char)i4;
		
		System.out.println("强制类型转换:");
		System.out.println(b2); //-79 符号位变化,为负数
		System.out.println(i3); //100
		System.out.println(c2); //c
强制类型转换规则
  • 整数长度足够,数据完整

    int i = 100;byte b = (byte) i; //b=100

  • 整数长度不够,数据截断

    int i = 10000;byte b = (byte) i; //b=16(符号位变化,可能为负数)

  • 小数转整数,数据截断

    double d =2.5; int i =(int)d; //i =2(小数位舍弃)

  • 字符整数互转,数据完整

    char c = 65; int i = c; //i =65

  • Boolean 取值为true/false,不可与其他类型转换

运算符

算数运算符

+ - * / % ++ --(重点)

注意: 整数相除,取整;有一边为小数,结果为小数,有小数则为double型

​ 5.0/2=2.5(输出结果为double型)

​ 5/2=2(输出结果为int型)

a++: 后置自增:先计算表达式的值;变量值后+1(后自增,先用再增)

​ **++a:前置自增:**变量值先+1,;再计算表达式的值(前自增,先增再用)

a–:后置自减:先计算表达式的值;变量值后-1 (后自减,先用再减)

–a:前置自减:变量值先-1,;再计算表达式的值(前自减,先减再用)

		int a=10,b=2;
		/* 算数运算符 + - * /% */
		System.out.println("--------------");
		System.out.println(a+b); //12
		System.out.println(a-b); //8
		System.out.println(a*b); //20
		System.out.println(a/b); //5
		System.out.println(a%b); //0
		/* 一元运算符 ++ --*/
		// i++ 先使用i 再进行+1操作
		// ++i 先进行+1操作 再使用i
		System.out.println("--------------");
		System.out.println(a++); //10
		System.out.println(b--); //2
		System.out.println(++a); //12
		System.out.println(--b); //0
赋值运算符

*=直接赋值 +=求和后赋值 -=求差后赋值 =求积后赋值 /=求商后赋值 %=求余后赋值

		/* 赋值运算符 += -= *= /= %= = */
		int c =2;
		int d =0; d+=3;
		int e =0; e-=3;
		int f =0; f*=3;
		int g =0; g/=3;
		int h =1; h%=3;
		int i =0; i=3;
		System.out.println("--------------");
		System.out.println(d); //3
		System.out.println(e); //-3
		System.out.println(f); //0
		System.out.println(g); //0
		System.out.println(h); //1
		System.out.println(i); //3
关系运算符

>大于 <小于 ==等于 >=大于等于 <=小于等于 !=不等于

运算后得到的是一个Boolean值

		/* 关系运算符 > < == >= <= !=*/
		// 返回值为boolean类型
		int j=1,k=2;
		System.out.println("--------------");
		System.out.println(j<k); //true
		System.out.println(j>k); //false
		System.out.println(j==k); //false
		System.out.println(j>=k); //false
		System.out.println(j<=k); //true
		System.out.println(j!=k); //true
逻辑运算符

&&与 ||或 !非

逻辑与& VS 短路与&&

逻辑与:当操作数1为false时,仍然会执行操作数2

短路与:当操作数1为false时,不会执行操作数2—效率高

逻辑或| VS 短路或||

逻辑或: 当操作数1为true时,仍然会执行操作数2

短路或: 当操作数1为true时,不会执行操作数2—效率高

在这里插入图片描述

		/* 逻辑运算符 && || ! 对boolean 类型的数据进行运算 得到的结果也是boolean类型的*/
		int l=10,m=20;
		
		// && 与 一假即假 
		System.out.println("--------------");
		System.out.println(l<m&&m>l); //true
		System.out.println(l>m&&m>l); //false
		
		// || 或 一真即真
		System.out.println(l<m||m>l); //true
		System.out.println(l>m||m>l); //true
		System.out.println(l>m||m<l); //false
		
		// ! 非 真假颠倒
		// 操作对象是boolean类型. 所以表达式需要用括号包裹
		System.out.println(!(l>m)&&m>l); //true
		System.out.println(!(l>m)||m<l); //true
三目运算符

语法:数据类型 变量名 = boolean表达式?结果一:结果二

/** 三元运算符 */
class YunSF2{
	public static void main(String[] args){
		/* 语法  数据类型 变量名 = boolean表达式?结果一:结果二*/
		int grade = 89;
		int grade2 = 60;
		String s = grade>=80?"送一层楼":"送练习题";
		String s2 = grade2>=80?"送一层楼":"送练习题";
		double d = grade>=80?2:2.2;
		System.out.println(s); //送一层楼
		System.out.println(s2); //送练习题
		System.out.println(d); //2.0
        
	}
}
优先级

()>算数运算符>关系运算符>逻辑运算符>赋值运算符

表达式

使用运算符连接的变量或字面值,并得到一个结果

int a = 5 + 6; // 5+6: 算术表达式:算术运算符参与运算的式子

自动类型提升

  1. 进行算术运算时:

    • 两个操作数有一个为double,结果提升为double
    • 操作数中没有double,有float,结果提升为float
    • 操作数中没有float,有long,结果提升为long
    • 操作数中没有long,有int,结果提升为int
    • 操作数中没有int,均为byte或short,结果提升为int
  2. 特殊:任何类型与String相加(+)实为拼接,结果自动提升为String。

控制台输入

导包语法

import 包名.类名 //将外部class文件的功能引入到自身文件中

语法顺序
  1. 导包:import java.util.Scanner;
  2. 声明变量:Scanner input = new Scanner(System.in);
  3. 使用Scanner中方法
    • .nextInt() //获得整数
    • .nextDouble() //获得小数
    • .next() //获得字符串
    • .next().charAt(0) //获得单个字符
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值