Java 基础day03

Java 基础day03

在这里插入图片描述

整数赋值方式

public class Demo02{
	public static void main(String[] args){
		//1:声明一个byte类型的变量
		byte num = 120;
		System.out.println("byte类型的变量num的值是:num="+num);
		//2:声明一个short类型的变量
		short sh = 10000;
		System.out.println("shrot类型的变量sh = "+sh);
		//3:声明一个int类型的变量
		int in = 123456789;
		System.out.println("int类型的变量in = "+in);
		//4:声明一个long类型的变量
		long l = 12345678900L;
		System.out.println("long类型的变量l = "+l);
	}
}
tips
  • 字节型 符号 所占空间 范围
    byte 1字节 -128-127
    注意事项
    超过byte范围的数据无法正常给byte类型的变量赋值
    报错信息:
    错误: 不兼容的类型: 从int转换到byte可能会有损失
    ​ byte num = 1000;
    短整型 符号 所占空间 范围
    short 2字节 -32768-32767 ±3W
    注意事项
    超过short范围的数据无法正常给short类型的变量赋值
    整型 符号 所占空间 范围
    int 4字节 ±21亿
  • 长整型 符号 空间 范围
    long 8字节 灰常大
    注意事项:
    错误: 过大的整数: 12345678900
    ​ long l = 12345678900;
    所有的整数默认的数据类型是int,当把查过int范围的字面值
    赋值给long类型变量时,需要在字面值后加"l"或者"L"
    注意当给byte和shot赋值时,只要数值不超过byte和short的
    取值范围,就可以正常赋值。
    对于某些特别大的整数值,long类型也是无能为力的。
    后期通过BigDecimal、BigInteger去存储。

各种进制赋值方式

十进制赋值:(最常用的)
int num = 10;
二进制:jdk1.7之后才有的
以0B 0b开头 后跟一个二进制的值
八进制:
以0开头 后跟一个八进制的值
16进制:
以0X 0x 后跟一个十六进制的值
10->a … 15->f
为方便阅读,经常会通过_分割整个整数

代码
public class Demo01{
	public static void main(String[] args){
		//十进制赋值:
		int num = 10;
		//二进制赋值
		num = 0B101;
		System.out.println("二进制num的值是:"+num);
		//8进制
		num = 013;
		System.out.println("8进制num的值是:"+num);
		//16进制
		num = 0x2A;
		System.out.println("16进制num的值是:"+num);
		num = 12_345_678;
		System.out.println("num的值是:"+num);
	}
}

小数

代码
public class Demo03{
	public static void main(String[] args){
		//声明一个小数
		double d = 3.12;
		System.out.println(10/3.0);
		//声明一个小数
		float f = 3.12F;
		System.out.println(f);
		double num = 0.3;
		System.out.println(num==(0.1+0.2));
		//System.out.println(10/0);
		System.out.println(10/0.0);
		System.out.println(-10/0.0);
		System.out.println(-0.0/-0.0==0.0/0.0);// NaN非数 一个自己和自己不相等
	}
}
tips
  1. 计算机存储小数是一个近似值。
  2. 小数:
  3. 双精度:
  4. 符号 精确程度 空间
  5. double 小数点后15-16位 8字节
  6. 单精度
  7. java中的小数默认类型是double,当把一个double类型的字面值
  8. 赋值给float变量存放的时候,要在字面值后加"F""f"
  9. System.out.println(10/0.0); 正无穷
  10. System.out.println(-10/0.0);负无穷
  11. System.out.println(-0.0/-0.0==0.0/0.0);NaN

赋值

小数的赋值方式:
正常赋值:(最常用)
double d = 12.12;
科学计数法:
数值E/e 整数

代码
public class Demo02{
	public static void main(String[] args){
		// 正常赋值小数
		double d = 12.1;
		//d = .5;
		d = 0.000314;
		System.out.println("d的值是:"+d);
		//通过科学计数法给d重新赋值
		d = 3.14E-4;
		System.out.println("d的值是:"+d);
	}
}

逻辑型

java规范 编写代码过程中要遵守的
jvm规范 虚拟机规范 hotspot boolean类型存储还是1和0
逻辑型 (布尔型)
符号 所占空间 范围
boolean 1位(实际存储的是1个字节) true/false
boolean 类型的变量不能参与四则运算
适用场景:
逻辑判定,流程控制中有大用

代码
public class Demo03{
	public static void main(String[] args){
		//声明一个boolean类型的变量
		boolean flag = true;
		System.out.println(flag);
		//声明一个int类型的变量存放3和5的累加和
		byte b = 3;
		short s = 5;
		int num = b+s+flag;
	}
}

字符型

字符型:
符号 空间 范围
char 2 0-65535

tips
  • 1:给char类型变量赋值时一定要注意是单引号引起来的单个字符。
  • 2: ‘’ 字符 “” 字符串 java中的字符串的类型是String
  • 3: java采用unicode 可以使用中文
  • 4:char类型是可以直接赋值整数的 包含0的正整数
  • 5:char类型是可以参与四则运算的
  • 6: 使用\ u + 十六进制数即可 (不常用)
  • 7: 转义字符,
  • 转变含义,在java中有些符号已经有了自己的用法,
  • 通过转义字符,转变其含义。
  • +要转义的字符
代码
public class Demo04{  
	public static void main(String[] args){  
		//声明一个char类型的变量  
		char ch = 97;//将字符A赋值给了char类型变量ch存放  
		System.out.println(ch+1);  
		// java采用的是unicode u十进制的数  
		ch = '\u0011';  
		System.out.println("---"+ch+"---");  
		//输出'  
		ch = '\'';  
		System.out.println("---"+ch+"---");  
		//使用转义字符  
		ch = '\t';  
		System.out.println("---"+ch+"---");  
		System.out.println("abcdefgh\tigklmn");  
		System.out.println("abcdefghigklmn");  
		System.out.print("\n");  
	}  
}  

类型转换

自动转换:

boolean类型是不可以进行类型转换的
自动转换:
小变大
大类型 变量名 = 小类型的值;
char
|
byte->short->int->long->float->double

代码
public class Demo06{
	public static void main(String[] args){
        //声明一个byte类型的变量
		byte b = 12;
		// 声明一个int类型的变量存放byte类型的数据
		int num = b;//把变量b中的值赋值给int类型的变量num存放
		//声明一个boolean类型的变量
		boolean f = true;
 		//num = f;
		//声明一个char类型
		char ch = 'a';
		num = ch;`
		System.out.println(num);
 	}
}

强制转换:

强制转换:(强转有风险,转换需谨慎)
大变小
小类型 变量名 = (小类型)大类型的变量;
如果大类型的变量的值超过了小类型的范围,结果有问题。

代码
int num = 300;
//将int类型的值赋值给byte
byte result = (byte)num;
System.out.println(result);

运算符

常见概念

算数 +号

+ 在java中一共有3种用途

1:正号
2: 加法运算
3:连接符号
// + 号左右两边的操作数只要有一个是字符串类型
// 那么+号的作用就是拼接作用,将+号左右两边的操作数
// 拼接为一个新的字符串。

代码
public class Demo01{
	public static void main(String[] args){
        int num = +5+4;
		System.out.println(num);
        System.out.println("1+1="+(1+1));
	}
}
        

-号

负号
减法运算

* % /

代码
public class Demo02{
	public static void main(String[] args){
		int num = 10/3;// int类型计算之后的结果还是整数
		System.out.println("结果是:"+num);
		num = 10%3;
		System.out.println("结果是:"+num);
        //声明变量num = 1234
		num = 1234;
		//获取个位
		int bit = num%10;
		System.out.println("个位:"+bit);
		//将1234 变为123
		num = num/10;
		//获取最后一位
		bit = num%10;
		System.out.println("十位:"+bit);
		//123 变为12
		num = num/10;
		//获取最后一位
		bit = num%10;
		System.out.println("百位:"+bit);
		//12 变为1
		num = num/10;
		System.out.println("千位:"+num);
	}
}
        

自增 自减

自增++
自增1
当++是一条单独语句的时候,前加和后加一样 都是自增1
如果不是独立一条语句
前加: 先自增 再运算
后加: 先运算 再自增
自减–
自减1
和++相同 不过只是-1
单目运算符。

代码
public class Demo03{
	public static void main(String[] args){
		//声明一个变量
		int num = 10;
		//自增
		//num++;
		num--;
		System.out.println(num);
		num = 10;
		//自增
		//++num;
        --num;
		System.out.println(num);
		//将num归为10
		num = 10;
		//将num++的结果赋值给变量存储
		int result = num++;//先运算 再自增
		System.out.println("result="+result+",num="+num);
		//num归为10
		num = 10;
		result = ++num;
		System.out.println("result="+result+",num="+num);
		//声明变量
		int j = 10;
		int k = 4;
		result = j-- - k++ + ++k + k-- + ++j;
		System.out.println("result="+result+",k="+k+",j="+j);
	}
}

分析题:

[外链图片转存失败(img-ZLTIA7lT-1562831939649)(C:\Users\余爽\AppData\Roaming\Typora\typora-user-images\1562830722231.png)]

关系

比较基本数据类型

< >= <=
比较基本数据类型和引用类型
== !=
关系运算符最后得到的结果是一个boolean值

代码
public class Demo04{
	public static void main(String[] args){
		System.out.println(5<3);
		//测试使用== !=
		int num1 = 10;
		int num2 = 20;
		System.out.println(num1==num2);//比较相等
		//声明两个字符串类型的变量
		String str1 = "abc";
		String str2 = "abc";
		System.out.println(str1==str2);//得到结果为true
		//System.out.println(str1>str2);//编译报错
		System.out.println(str1!=str2)}
}

[外链图片转存失败(img-1EBzltlY-1562831939650)(C:\Users\余爽\AppData\Roaming\Typora\typora-user-images\1562830960001.png)]

逻辑

& | ! ^ && ||
1:逻辑运算符左右两边连接的操作数是一个boolean类型的值
2:& 左右两边操作数有一个为false,其结果就是false,如果都为true其结果才为true。
3:| 左右两边操作数有一个为true,其结果就是true,如果都为false其结果才为false。
4:! 取反
5:^ 相同为false 不同为true
6:&& || 称之为短路与和短路或,&&如果第一个操作数为false其结果就是false不会执行第二个操作数。
|| 如果第一个操作数为true,整个结果就为true,不会执行第二个操作数
& | ^ 既是逻辑运算符也是位运算符

代码
public class Demo05{
    public static void main(String[] args){
		// 通过一个运算符连接不是boolean
		System.out.println("测试&运算符");
		System.out.println(true&false);
		System.out.println(true&true);
		System.out.println(false&false);
		System.out.println(false&true);
		System.out.println("测试&&运算符");
		System.out.println(true&&false);
		System.out.println(true&&true);
		System.out.println(false&&false);
		System.out.println(false&&true);
		System.out.println("测试|运算符");
		System.out.println(true|false);
		System.out.println(true|true);
		System.out.println(false|false);
		System.out.println(false|true);
		System.out.println("测试||运算符");
		System.out.println(true||false);
		System.out.println(true||true);
		System.out.println(false||false);
		System.out.println(false||true);
		System.out.println("测试!运算符");
		System.out.println(!false);
		System.out.println(!true);
		System.out.println("测试^运算符");
		System.out.println(true^false);
		System.out.println(true^true);
		System.out.println(false^false);
		System.out.println(false^true);
	}
}
    

代码例子:
/**
 模拟登录:
*/
public class LoginV1{
	public static void main(String[] args){
		//声明两个变量存放注册的信息
		int regUname = 123;
		int regPwd = 123;
		//声明两个变量存放登录信息
		int loginUname = 123;
		int loginPwd = 234;
		boolean flag = (regUname==loginUname) && (regPwd==loginPwd);
		System.out.println(flag);
	}
}

tips:
  • 如何实现用户输入:
    1:在当前类的头顶上编写如下代码:
    import java.util.Scanner;
    2: 在代码中编写如下代码: //只需要写一次
    Scanner input = new Scanner(System.in);
    3: 在上述信息编写完成之后,编写如下代码:
    int num = input.nextInt();
如何实现用户输入代码
import java.util.Scanner;
public class LoginV2{
	public static void main(String[] args){
		//声明两个变量存放注册的信息
		int regUname = 123;
		int regPwd = 123;
		//给用户提示信息
		System.out.println("请输入用户名>>>>>");
		Scanner input = new Scanner(System.in);//只需要写一次
		int loginUname = input.nextInt();//获取用户键盘上输入的值
		System.out.println("请输入密码>>>>>");
		int loginPwd = input.nextInt();
		//通过&&判定是否登陆成功
		boolean flag = (regUname==loginUname)&&(regPwd==loginPwd);
		System.out.println(flag);
	}
}

赋值和拓展

注意事项

条件运算符:三目运算符
格式:
表达式1?表达式2:表达式3
首先计算表达式1 的值,永远只能是true或者是false
如果表达式1的值是true ,这个三目运算符的结果是表达式2的值。
如果表达式1的值是false,这个三目运算符的结果是表达式3的值

代码
public class Demo06{
	public static void main(String[] args){
		// 计算两个数的最大值:
		//声明2个变量存放值
		int num1 = 20;
		int num2 = 30;
		System.out.println(num1>num2);
		//三目运算符
		int max = 0;//num1>num2?num1:num2;
		System.out.println("num1和num2中大的值是:"+max);
		//计算三个数的最大值
		int num3 = 26;
		max = num1>num2?num1:num2>num3?num1>num2?num1:num2:num3;
		System.out.println("num1和num2,num3中大的值是:"+max);
	}
}

常见面试题:
/**
三目运算符中的面试题:
表达式中类型会自动提升
int num = 90>100?90.0:100;
System.out.println(num);
*/
public class Demo07{
	public static void main(String[] args){
		// 判定一个数字奇数还是偶数
		int num = -1;
		// 被除数-被除数/除数*除数
		String str = num%2==1?"奇数":"偶数";
		System.out.println(str);
	}
}

运算符优先级:

运算符的优先级:
= 赋值最低 扩展运算符
条件
1:算数 > 关系 > 逻辑 > 三目 >赋值
2: 单目>双目>三目
3:加括号

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值