Java基础三

2023-11-11

表达式自动提升类型

在程序中出现直接写出来的数字,如果是整数默认类型为int; 如果为小数默认类型为double.

一个表达式中包含多种数据类型时,结果的数据类型会自动提升,规则如下:

  • byte, short, char 自动提升为int
  • 整个表达式的类型提升到最高级的数据类型
   float f1 = 3.14F;  //直接写3.14这样的小数, 默认类型为double
        int i1 = 2147483647; //直接写一个整数的数字, 默认类型为int

        byte b1 = 3;
        byte b2 = 2;
        int sum1 = b1 + b2; //b1 和 b2 自动提升类型为int

        short s1 = 3;
        short s2 = 2;
        int sum2 = s1 + s2; //s1, s2 自动提升类型为int

        char c1 = '1';
        char c2 = '2';
        int sum3 = c1 + c2;  //c1, c2 自动提升类型为int
        System.out.println(sum3);
        
        long l1 = 8;
        //以为表达式中有一个long类型的加数, 所以整个表达式的结果提升为long
        long sum4 = l1 + s1 + b1;
        
        
//        练习:
        short s3 = 5;
//        s3 = s3 - 2; //表达式中的2是int, 表达式的结果为int, 这个语句语法是错误的

字面量(直接量)

int m = 20; //20称为字面量
float f = 2.12F//2.12F称为字面量

自动装箱和自动拆箱

每种基本类型都对应一种包装类型(类),基本类型于包装类型之间可以自动转换。

基本类型到包装类型为自动装箱

包装类型到基本类型为自动拆箱

基本类型 包装器类型
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean
int i= 10;
Integer integer = i; //基本类型直接赋值给包装类型,自动装箱
int i2 = integer;  //包装类型直接赋值给基本类型,自动拆箱

//包装常用的方法
String str = "123";
Integer value = Integer.valueOf(str);//把字符串转化为整型
System.out.println(value);
int i1 = Integer.parseInt(str);//把字符串转化为int类型
System.out.println(i1);

Java数据类型

在这里插入图片描述

运算符

运算符包括以下几类:

  • 算术运算符
  • 赋值运算符
  • 比较运算符
  • 逻辑运算符
  • 位运算符
  • 三目运算符

算术运算符

  • +加 加运算符与字符串拼
double i1 = 2.32;  
String str1 = "str"+"sdf";
System.out.println(i1+str1);
System.out.println(str1+i1); //字符串可以和基本数据类型拼接
  • -减 减法运算
  • *乘 乘法运算
  • / 除 除法运算
int res1 = 8/3;//两整数相除为整数,结果为2;注0不能为被除数
    System.out.println(res1);
double res2 = 8/2.5;
    System.out.println(res2);
 double res3 = 2.0/0;//浮点数可以除以0,结果为Infinity(无限大)
        System.out.println(res3);
  • %取膜 取余运算

注:不能取0为被除数

  • ++自增
  • –自减
int i4 = 3;//加与减法运算一样
System.out.println(i4++);//++再后先执行完单挑语句,然后再加一,结果为3
System.out.println(++i4);//++在前表示先加1,再执行运算。上条语句加1,所以结果为5

赋值运算符

  • =赋值运算 将=右边的结果赋给左边的变脸,右边的值是字面量,表达式,变量,方法调用
int n = 5;   //赋值字面量
        n = 3 + 2;   //赋值表达式
        n = i4 - i3;   //变量
        Scanner scanner = new Scanner(System.in);
        n = scanner.nextInt();  //赋值方法返回值
        System.out.println(n = 4 +6);

=赋值用法

n +=2  //n = n + 2
n /=2  //n = n / 2
n %=2  // n = n % 2

比较运算符

用于判断两个操作数的大小是否属于判断条件,返回值是布尔型(true,false)

符号有:> < == >=(大于或等于) <=(小于或等于) !=(不等于)

逻辑运算符

  • && 短路与
  • & 与
  • || 短路或
  • | 或
  • !非
  • ^异或
与逻辑
  int n=1;
        System.out.println(false && (2 == ++n));  //两个操作数都为真,结果才为true
        System.out.println(n);   //短路与,当第一个操作数得到表达式的结果时,后面的(2 == ++n)不会被执行,所以n=1
int n=1;
 System.out.println(false & (2 == ++n));  //两个操作数都为真,结果才为true
 System.out.println(n); //逻辑与,不会被短路,后面的表达式也会被执行
或逻辑

当两个操作数有一个为true,则结果为true,短路或与或的关系和与逻辑一样。

逻辑非
System.out.println(!true);//false
System.out.println(!false);//true
异或

一真一假为真,两为真或两为假则为假。

System.out.println(true ^ true);//true
System.out.println(false ^ false);//false
位运算符
  • & 按位与

结果为5

  • | 按位或
  • ~ 按位非

注意符号

  • ^ 按位异或

  • << 向左移动

  • //算2*8结果
    a=2;
    System.out.println(a << 3);//16,10左移3位得10000
    
  • >>向右移动

三目运算符

用于两分支的判断,等效于if else 语句

语法:条件表达式?为真值:为假值;

a=3 > 2 ? 100:1;
b=2 > 2 ? 100:1;
System.out.println(a);
System.out.println(b);
  • 练习:在控制台输入两个整数,打印较大的数
 Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int m = scanner.nextInt();
        System.out.println(n > m ? n:m);

运算符的优先级

括号>单目运算符>算术运算>比较运算符>逻辑运算符>三目运算>赋值

在这里插入图片描述

条件判断语句

单分支条件判断

if(条件表达式){

条件为真执行语句

int n = scanner.nextInt();
int m = scanner.nextInt();
System.out.println(n > m ? n:m);


## 运算符的优先级

括号>单目运算符>算术运算>比较运算符>逻辑运算符>三目运算>赋值

[外链图片转存中...(img-I5TDtmCQ-1658652511049)]

# 条件判断语句

## 单分支条件判断

if(条件表达式){

条件为真执行语句

}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java基础三 的相关文章

随机推荐

  • 2023华为OD机试真题【五子棋迷/滑动窗口】【2023.Q2】

    题目内容 张兵和王武是五子棋迷 工作之余经常切磋棋艺 这不 这会儿又下起来了 走了一会儿 轮张兵了 对着一条线思考起来了 这条线上的棋子分布如下 用数组表示 1 0 1 1 1 0 1 01 1 棋子分布说明 1 1代表白子 0代表空位 1
  • canvas详解00-认识canvas

    身为一个WEB开发人员 肯定都是想着能够开发出酷炫和激动人心的应用程序来 可以很多动画特效 例如黑客帝国的数字 彩色炫酷的例子动效 也可以实现各种图画面板 如实现类似于photoshop的web在线图像编辑 各种酷炫的表单等等 案例 画布是
  • 字母,数字,下划线或者数字的正则表达式

    一 校验数字的表达式 数字 0 9 n位的数字 d n 至少n位的数字 d n m n位的数字 d m n 零和非零开头的数字 0 1 9 0 9 非零开头的最多带两位小数的数字 1 9 0 9 0 9 1 2 带1 2位小数的正数或负数
  • 如何对聚类结果进行分析_层次聚类方法——试验结果与分析

    层次聚类方法存在的不足 在凝聚的层次聚类方法和分裂的层次聚类方法中 均需要用户指定所期望得到的聚类个数和阈值作为聚类过程的终止条件 但是对于复杂的数据来说这是很难事先判定的 层次聚类方法尽管简单 但经常会遇到合并或分裂点选择的困难 这样的决
  • python爬虫https出现SSLError错误的解决办法

    python爬虫https时出现SSLError错误的解决办法 报错 requests exceptions SSLError HTTPSConnectionPool host appconfig2 1234567 com cn port
  • 上海链节科技:区块链正加速赋能实体经济

    眼下 区块链技术的国家层面定位规格越来越高 随着 1024 会议的召开 新基建 范围的明确以及 十四五 规划纲要的正式对外公布 区块链技术的发展与应用逐渐成熟 区块链 正在释放更大的潜能 近日 在第十三届陆家嘴论坛上 前央行行长 博鳌亚洲论
  • 若依 默认展开侧边栏菜单

    打开文件 ruoyi ui src layout components Sidebar index vue 将下面代码覆盖掉原文件中的el menu节点相关代码 参考自 http doc ruoyi vip ruoyi vue other
  • 如何用Python进行数据分析,详细流程讲解!

    1 为什么选择Python进行数据分析 Python是一门动态的 面向对象的脚本语言 同时也是一门简约 通俗易懂的编程语言 Python入门简单 代码可读性强 一段好的Python代码 阅读起来像是在读一篇外语文章 Python这种特性称为
  • PYCHARM 之 VIM 操作

    1 主题 如果你是Vim的粉丝 并且不打算使用其他类型的编辑器 那么这篇教程将会比较适合你 这里将会详细介绍如何在Pycharm IdeaVim插件的帮助下下载 安装 使用Vim 至于有关Python编程以及Vim的用法 详见officia
  • Reachability from the Capital CodeForces - 999E(tarjan模板应用 )

    题目 Berland有n个城市和m条路 每条路连接两个城市 所有路都是单向的 为了能从首都到达所有城市 需要建造的最少的新道路的数量是多少 新建的道路也是单向的 em 其实就是说从这一点出发的 强连通 联想一下之前做过的 最少添加几条边是这
  • threejs三维地图大屏项目分享

    这是最近公司的一个项目 客户的需求是基于总公司和子公司的数据 开发一个数据展示大屏 大屏两边都是一些图表展示数据 中间部分是一个三维中国地图 点击中国地图的某个省份 可以下钻到省份地图的展示 地图上 会做一些数据的标注 信息标牌 如下图所示
  • 射频中的 IM3、IIP3、OIP3、G、P1dB指标之间的关系

    噪声系数与非线性失真是描述射频系统性能优劣的两个重要指标 噪声 限制了系统所能处理的最低信号电平 非线性失真 限制了系统所能处理的最高信号电平 在非线性器件 放大器 混频器等 输入端 输入等幅度不同频率的双音信号 f1 f2 由于器件的非线
  • Wordpress入门建站教程二:搭建WP站点的准备工作

    WordPress入门第一课就简单介绍了WordPress 它是一个使用 PHP语言和 MySQL数据库开发的开源 免费的建站程序 那么搭建WordPress站点 就要求一个能够运行PHP语言的主机空间和一个MySQL数据库 也许有些朋友会
  • JVM性能调优-JVM内存区域划分

    JVM性能调优 JVM内存区域划分 1 程序计数器 线程私有 结论 程序计数器线程私有 并且分配的空间大小不会随程序执行改变 所以不存在内存溢出等异常情况 程序计数器 Program Counter Register 也有称作为PC寄存器
  • 微电网中的最优调度matlab例程,用yalmip+cplex求解器求解,以一天的运行费用最小为目标函数,可用作参考学习。

    微电网中的最优调度matlab例程 用yalmip cplex求解器求解 以一天的运行费用最小为目标函数 可用作参考学习 9515644736113608浪迹天涯
  • 边缘计算——简单易懂的PPT+文字介绍

    边缘计算是续云计算 物联网 5G时代之后的有一个新生代宠儿 这里我分享一个彩蛋 昨天我一个同事理解边缘计算是一种识别算法 觉得通过识别图像数据中的实体的边缘轮廓 得出该实体所表现出来的动作 比如扒窃动作识别 打架行为识别等 其实不然 边缘计
  • Shell编程条件语句

    目录 一 条件测试 1 test命令 2 条件测试 常用的测试操作符 3 字符串比较 常用选项 4 逻辑测试 二 if语句 1 if单分支语句 2 if双分支语句 3 if多分支语句 学生考试成绩判断 圆的面积计算案例 三 case语句 1
  • 复变函数与积分变换系列(一) - 复变函数与解析函数

    复变函数与解析函数 Author Benjamin142857 TOC 0 几个基本概念 实虚部 P l u r a l
  • 关于代码评审

    代码评审实际是编写代码的开发人员在被复查 它是最小化缺陷的有效方法 无论公司实行代码评审的额外动机是什么 代码评审都是工业化的最优方法 一 代码评审目的 1 确保要发布质量可靠的代码 代码评审能非常有效地发现所有类型的错误 包括那些由于不正
  • Java基础三

    表达式自动提升类型 在程序中出现直接写出来的数字 如果是整数默认类型为int 如果为小数默认类型为double 一个表达式中包含多种数据类型时 结果的数据类型会自动提升 规则如下 byte short char 自动提升为int 整个表达式