Java学习day01:数据类型、运算符、分支结构

news2025/3/13 16:58:42

声明:该专栏本人重新过一遍java知识点时候的笔记汇总,主要是每天的知识点+题解,算是让自己巩固复习,也希望能给初学的朋友们一点帮助,大佬们不喜勿喷(抱拳了老铁!)


Java学习:数据类型、运算符、分支结构

数据类型

1.变量

组成:变量由三部分组成:类型+名称+数值

概念:变量相当于内存中一个数据存储空间的表示

2.数据类型

基本数据类型

布尔型boolean[1],存放true或者false
字符型char[2],存放单个字符
数值型整数类型:byte[1],short[2],int[4],long[8]
浮点数类型:float[4],double[8]

变量名字的命名规范

 1.首字母要小写 myBank
2.一般数字,字母,_和$等组成的,但是数字不能开头  myBank_1
  3.小驼峰的命名规则(单词首字母大写),或者使用_连接多个单词myBankGood
 4.见名知意month、week、year
5.不能使用Java的关键字 比如: int、short、double

自动类型转换:

精度小的自动转换为精度大的

规则:
char->int->long->float->double
byte->short->int->long->float->double
1.系统首先自动将所有数据类型转换成容量最大的那种数据类型,再进行计算eg:
int  n1=10;
float d1=n1+1.1;//这就是错的,因为1.1是double数据类型,不能转成float
float d1=n1+1.1f;//这个时候就可以了
2.精度大的赋值给精度小的就会报错
3.byte,short和char直接不会进行自动转换当把一个具体的值赋给byte时,编译器会先判断,如果是在byte的范围就可以,
但是如果把一个int类型的值赋给byte是不行的
4.byte,short,char三者之间可以进行计算,在计算时会转为int类型byte b1=1;
byte b2=3;
short  s1=2;
short s2=b1+s1;//错误的
int i1=b1+s1;//对的
byte b3=b1+b2;//不可以,虽然是两个byte加减但是还是转为了int
5.boolean不参与自动转换
6.表达式结果的类型自动提升为操作数中最大的类型

强制类型转换:

将容量大的数据类型强制转换为容量小的数据类型,()强制类型转换符,但是可能造成精度降低或溢出

1.强转符号()只针对最近的操作数有效eg:
int x=(int)10*6.5;//错误的,double无法转int
int x=(int)(10*6.5);//可以了
2.char类型可以保存int的常量值,不能保存变量值,需要进行强转

基本数据类型和String的转换:

注意转换一定要是能转换的,不要出现"hello"转int

基本数据类型->Stringeg:
int n1=100;
String s1=n1+"";//此时输出s1就是string 类型的100
String->基本数据类型//eg:用到一个parse的方法,调用基本数据类型对应的包装类的相应方法
String s5="123";
int num1=Integer.parseInt(s5);
double num2=Double.parseDouble(s5);
float num3=Float.parse.Float(s5);
boolean num4=Boolean.parseBoolean("true");
String->基本数据类型特殊点的,String -> char:
一般来说字符串转字符都是拿到第一个字符,用charAt(0)这一方法
String s1="123";
System.out.println(s1.charAt(0));//就会输出字符"1";

引用数据类型 :

1.类(class)   2.接口(interface)   3.数组[]


运算符

算术运算符:

+  -  *  /  %  += -=  *=  /=  %=  ++  --

关系运算符:

>/</>=/<=/==/!=

主要就是这么几个关系运算符,记住运算结果是Boolean类型,只有true/false,等式左边加不加括号都行

逻辑运算符:

1.&&——全为真才真
||——有一个为真则为真
!——真假反转

2.短路原则:&(逻辑与)和&&(短路与)
二者都是全真为真,有假为假,区别在于短路与&&是当第一个为假时,JVM就不再判断第二个是真还是假,因为结果已经是假了,这样提高了效率,实际开发中也是常用这个

而且如果是||和&&连用的话,如果第一个是||,且第一个为true,那么后面就都不会再执行。所以一班开发中都是单独使用&&或者单独使用||。很少出现混用的情况

类似的逻辑或(|)和短路或(||)也是一样的道理

逻辑异或^

a^b,
a,b不同,为真,相同,为假


分支结构

先学习语法格式和执行流程 

1.1if结构:

if(表达式){
代码
}
表达式结果一定是Boolean类型的值,所以一定是关系或逻辑运算符的,如果为true才执行里面的代码

1.2if-else结构

if(表达式){
语句体1
}else{
语句体2
}

写一个小案例:判断某一年是不是闰年。如果能被4整除,并且不能被100整除,或者能被400整除,就是闰年

public static void main(String[] args) {
    int year =2023;
    if((year%4==0 && year%100!=0) || year%400==0 ){
        System.out.println(year+"是闰年");
    }else {
        System.out.println(year+"不是闰年");
    }
}

1.3if-else if结构

if(表达式){
语句体1
}else if(表达式){
语句体2
}else if(表达式){
语句体3
}else{
表达式4
}

哪个表达式为true就执行哪个表达式,一个比较经典的是根据学生成绩给分等级

1.4swicth-case结构

swicth(表达式){
     case 常量1:
      表达式1;
      break;
      case 常量2:
      表达式2;
      break;
      case 常量3:
      表达式3;
      break;
      default:
      表达式n;
      break;
}

是swicth后面表达式里的值去匹配case后的常量,匹配上了就执行。这里又考虑到那个经典案例:根据学生成绩给分等级。如何用swicth语句去实现呢?其实很简单的

int num=89;
switch(num/10){
         case 10:
          表达式1;
          break;
          case 9:
          表达式1;
          break;
}

另外一个问题:swicth表达式里的值可以是什么类型?
可以是int 、 byte、 short、 char、jdk1.8及以后版本可以是string、枚举enum,其实主要就是int,byte和short可以是因为能转为int,而char可以则是因为可以转为ascll码表对应的数字,但是要记得加'',同时汉字是没有对应码表的。另外string类型要加""


以上就是今天的知识点,下面做题:

习题

1、输入一个整数,判断这个整数是大于0,还是小于0,还是等于0。
2、输入一个整数,如果这个整数等于0输出“生成了一只白猪”,如果输入的整数等于1输出“生成了一只黑猪”,如果输入的是2输出“生成了一只红猪”,如果不是这三个数就输出“生成了一只变形猪”。
3、输出“你是男人吗?”,回答如果是:1,那么输出“原来你是男人呀,呵呵”,如果回答是:0,那么输出“你的性别难道是女?”。
4、输入一个整数,如果输入的数大于等于1000,那么输出“输入的数>=1000”,否则的话就输出“输入的数<1000”。
5、输入一个int型的数据,判断这个数是否能被2整除,如果能被2整除,那么输出“这个数是偶数”,否则输出“这个数是奇数”。提示:8%2==0  10%2==0

9%2=1

6.输入两个整数,计算他们的和,如果和大于100,就输出这两个数的乘积,如果和小于100,就输出这两个数的商
7、输入两个整数,放入到a与b变量中去,如果a>=b就将a与b中的值进行交换,否则就不交换。目地就是要让a中放的值总是小于或等于b中的数,输出。

建议初学者都敲一敲,很多东西看着会,实际自己上手敲的时候往往会出错。这次习题都比较简单,我就不出答案了,最后一题涉及到输入输出,给一个:具体知识点看下一节。

7、输入两个整数,放入到a与b变量中去,如果a>=b就将a与b中的值进行交换,否则就不交换。目地就是要让a中放的值总是小于或等于b中的数,输出。

        Scanner sc=new Scanner(System.in);
        int a=sc.nextInt();
        int b=sc.nextInt();
        if(a>=b){
            int temp=a;
            a=b;
            b=temp;
        }
        System.out.println("a="+a);
        System.out.println("b="+b);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1007051.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

手把手教你搭建会员运营体系

越来越多商家开始重视会员运营、今日就从以下加点展开聊聊&#xff1a; ①搭建会员体系的原因 ②会员运营的作用 ③会员标签 ④会员模型 ⑤成长体系 ⑥搭建会员运营体系的方法

C# OpenVino Yolov8 Pose 姿态识别

效果 项目 代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using OpenCvSharp;namespace OpenVino_Yolov8_Demo {public…

一起解读,从凌乱到智能,两种仓库物流管理的区别

百世慧与达索系统合作&#xff0c;为海量客户提供数字化转型。我们主要围绕仿真驱动创新和数字化精益两个板块进行实施。 在数字化精益板块中&#xff0c;产品全生命周期管理PLM、制造运营系统MOM这两个产品实施过的大型客户有宁德新能源、诺德股份、天津大众、中海寰宇等企业…

React使用useImperativeHandle实现父组件触发子组件事件

相关知识&#xff1a; useImperativeHandle forwardRef 相关代码&#xff1a; 获取子组件实例&#xff0c;由于这是函数组件&#xff0c;没有this因此不能整体获取&#xff0c;我们可以通过useImperativeHandle获取想要的变量或者方法。 父组件import React, { useRef } fro…

华为“通卫星”,苹果“好奇心”,终端之争供应商受益

9月13日凌晨&#xff0c;苹果新品发布会如期举行&#xff0c;苹果正式发布了包括iPhone 15、15 Plus、15 Pro、15 Pro Max四款机型。 值得一提的是&#xff0c;这场科技界的“春晚”&#xff0c;不再是苹果的独角戏&#xff0c;会后的报道里&#xff0c;彭博社、华尔街日报等一…

Vmware Workstation安装说明

目录 一、下载二、安装 一、下载 下载地址&#xff1a;https://www.vmware.com/cn/products/workstation-pro.html 二、安装 双击下载下来的安装包&#xff0c;按提示一步步操作&#xff1a; 点击【许可证】输入许可证密钥&#xff0c;确认后点击【完成】完成安装。…

常用API(基础)

1.API 1.1 API概述-帮助文档的使用 什么是API ​ API (Application Programming Interface) &#xff1a;应用程序编程接口 java中的API ​ 指的就是 JDK 中提供的各种功能的 Java类&#xff0c;这些类将底层的实现封装了起来&#xff0c;我们不需要关心这些类是如何实现的&a…

数据结构Map-Set和哈希表

目录 概念 模型 Map Map的常用方法 对于Map的总结 Set Set的常见方法 关于Set的总结 哈希表 概念 冲突 概念 哈希函数设计原则 常见的哈希函数 1.直接定制法(常用) 2.除留余数法(常用) 3.平方取中法 4.折叠法 5.随机数法 6.数学分析法 冲突避免-负载因子调…

【数据库】数据库系统概论(二)— 关系

关系数据库 关系数据库是支持关系模型的数据库系统。 关系模型的数据结构&#xff1a;关系&#xff1b;逻辑结构&#xff1a;扁平的二维表 域 是一组具有相同数据类型的值的集合。 例如&#xff1a;{a,b,c}、{0,1,2,3}等等 笛卡尔积 定义 笛卡尔积是域上的一种集合运算…

抓准时机,成为亚马逊,速卖通,国际站的领军者

下半年即将接踵而至的万圣节、黑色星期五、圣诞节等大型节日&#xff0c;不仅仅是海外消费者的重要消费节假日&#xff0c;也是中国出海企业势在必得的流量战场。 那么对于下半年重头戏&#xff0c;卖家该如何把握好黄金时机&#xff0c;赢得一年大丰收 旺季卖家怎么掠夺竞争…

安达发|APS自动排产软件帮助制造业实现“降本增效”

随着科技的不断发展&#xff0c;制造业在生产过程中所面临的问题也在不断地改变和升级。如今&#xff0c;制造业所面临的生产问题主要包括以下几个方面&#xff1a; 1. 生产效率低下 在传统的制造业中&#xff0c;生产过程往往依赖于人工操作&#xff0c;这导致了生产效率低下的…

紫光展锐5G芯T820 解锁全新应用场景,让机器人更智能

数字经济的持续发展正推动机器人产业成为风口赛道。工信部数据显示&#xff0c;2023年上半年&#xff0c;我国工业机器人产量达22.2万套&#xff0c;同比增长5.4%&#xff1b;服务机器人产量为353万套&#xff0c;同比增长9.6%。 作为国内商用服务机器人领先企业&#xff0c;云…

PMP含金量再升级!北京上海等地可评职称!

最近PMP证书又“升级”了&#xff0c;不过不是证书上的改变&#xff0c;而是含金量在原有基础上又上升了一个档次。 9月4日&#xff0c;北京市人力资源和社会保障局联合北京市人才工作局发布关于印发《北京市境外职业资格认可目录(3.0版)》的通知&#xff0c;PMP项目管理证书也…

实时时钟和日历电路芯片MS85163/MS85163M

MS85163/MS85163M 是一款 CMOS 实时时钟 (RTC) 和 日历电路&#xff0c;针对低功耗进行了优化&#xff0c;内置了可编程的时钟输出、中断输出和低电压检测器。所有寄存器地址和数据都通过两线双向I 2 C 总线进行串行传输&#xff0c;最大总线传输速度为 400kbit/s 。采用SOP8…

02目标检测-传统检测方法

目录 一、目标学习的检测方法变迁及对比 二、 基于传统手工特征的检测算法的定义 三、传统主要手工特征与算法 Haar特征与 人脸检测算法 - Viola-Jones(了解) HOG特征与 SVM 算法(了解)&#xff08;行人检测、opencv实现&#xff09; SIFT特征与SIFT算法(了解) DPM&#…

mysql数据库的全量与增量的备份以及恢复

目录 一、全量备份与恢复 1.全量备份 2.删掉某个数据库 3.全量恢复数据库 二、增量备份与恢复 1.查看增量是否开启&#xff0c;我们发现log_bin开启证明开启了 2.创建一个数据库并创建表中信息 3.插入数据 4.进行一次全量的备份 5.做完备份刷新一下数据库&#xff0c;…

(UI资源)4k Full Fantasy GUI + over 400 png + samples

资源包含超400个4k高清png文件 窗口资源包含:登录、角色创建、探索日志、库存、商店、设定、手工艺、NPC对话、技能、6个弹出窗口 72个独特的图标 4种颜色主题的56个图标 按钮:大按钮(3种色)、小按钮(5种颜色)、复选框和单选按钮 其他要素 使用简单的填充脚本轻松自定义健康与…

【多线程】常见的几种锁策略以及synchronized的锁策略

目录 一、乐观锁与悲观锁 二、读写锁与互斥锁 三、轻量级锁与重量级锁 四、自旋锁与挂起等待锁 五、公平锁与非公平锁 六、synchronized锁策略 1、锁升级 2、锁消除 3、锁粗化 一、乐观锁与悲观锁 乐观锁与悲观锁描述了两种不同的加锁态度&#xff0c;乐观锁就预测锁冲…

怎么为Web服务器配置虚拟主机?【步骤演示】

在安装了Web服务器Apache后&#xff0c;为了更好地使用Apache&#xff0c;还需要学习如何对Apache进行配置。在项目开发中&#xff0c;经常需要配置虚拟主机和访问权限&#xff0c;下面对Web服务器的配置进行详细讲解。 配置虚拟主机 在默认情况下&#xff0c;Apache只有Chwe…

Detectron2 安装踩坑

在服务器上安装Detectron2&#xff1a; 设备&#xff1a;NVIDIA GeForce RTX 3090 显卡驱动和cuda&#xff1a; 安装detectron2时&#xff0c;报错为&#xff1a; Installing collected packages: detectron2Running setup.py develop for detectron2error: subprocess-exited…