java(1)数据类型,运算符,逻辑控制语句以及基本应用

news2024/9/20 11:31:38

目录

​编辑

 1.前言

2.正文

2.1数据类型与变量

2.1.1字面常量

2.1.2数据类型

2.1.3变量

2.1.3.1整型

2.1.3.2浮点型

2.1.3.3字符型

2.1.3.4布尔型

2.1.4类型转换与类型提升

2.1.4.1字符串的拼接

2.1.4.2整型转字符串

2.1.4.3字符串转整数

2.2运算符

2.2.1算术运算符

2.2.2关系运算符

2.2.3逻辑运算符(关键)

2.2.4位运算符

2.2.5移位运算符

2.2.6条件运算符  

2.3逻辑控制语句

2.3.1分支结构

2.3.2循环结构

3.基础应用

3.1判断素数

3.2判断闰年

3.3打印九九乘法表

3.4返回参数二进制中 1 的个数

3.5猜数字游戏

4.小结​编辑


1.前言

哈喽小伙伴们大家好哦~从今天开始笔者就要开始正式学习java了,基础的语法语言之间都是很类似的,所以基础语法的博客就记录的凝练一些,创作的这些博客也算是一些学习笔记,又相当于给大家做知识分享咯,希望大家一起加油哦!

2.正文

2.1数据类型与变量

2.1.1字面常量

字面常量主要有以下几种,接下来我通过代码和注释给大家一一实现:

public class test1 {
    public static void main(String[] args) {
        System.out.println(123);//整型常量
        System.out.println(12.3);//浮点型常量
        System.out.println('a');//字符常量
        System.out.println("abc");//字符串常量
        System.out.println(true);//布尔常量
    }
}

 打印结果如下:

2.1.2数据类型

在java中,共有俩种数据类型,分别是基本数据类型与引用数据类型。这俩大类分类的标准是基本数据类型是Java中预定义的,而引用数据类型是指向内存中的一个对象,以此来区分。

2.1.3变量

变量的创建方法: 数据类型 变量名 = 初始值;(下文代码均有体现)

2.1.3.1整型

整型共包括四种:

  1. 字节型:type,占用一个字节,范围-128~127,包装类型为Type
  2. 短整型:short,占用俩个字节,范围-32768 ~ 32767,包装类型为Short
  3. 整型:int,占用四个字节,范围-2^{_{31}}~2^{_{31}}-1,包装类型为Interger
  4. 长整形:long,占用八个字节,范围-2^{63}~2^{63}-1,包装类型为Long

其中整型是由符号的,整型默认为int型

代码演示:

 public static void main(String[] args) {
        byte a = 5;
        short b = 10;
        int c = 15;
        long d = 20;
        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
        System.out.println(d);
    }

 运行结果:

有关这四种类型的互相转换需要特别讲解一下,让我们先来看下面这段代码:

public static void main(String[] args) {
        byte a = 10;
        byte b = 20;
        int c = a + b;
        System.out.println(c);
    }

该代码段将byte字节型的变量转化为int整型变量,将一个字节的内容转化成四个字节存储的内容,显然没有问题。 

但接下来这段代码如果把进程颠倒过来,事情就发生了转变,请看:

public static void main(String[] args) {
        byte a = 10;
        int b = 129;
        a = (byte)b;

        System.out.println(a);
    }

打印结果却不是我们想要的129,而是-127。

也许有些同学会疑惑 ,为什么打印出来的不是我们想要的结果呢。原因很简单,因为int作为整型变量占有四个字节,强制转换仅占一个字节byte类型会丢失后面三个字节的内容,从而结果有误。所以在这里,博主建议,非必要尽量避免类型的强制转化,有些错误可能当时没有发生,但这就是埋藏的一颗雷,时刻可能出问题。

 更加详细的类型提升与类型转换在下文还会有讲解。

2.1.3.2浮点型

浮点型包含俩种:

  1. 单精度浮点数:float,占四个字节
  2. 双精度浮点数:double,占八个字节

 代码如下:

public static void main(String[] args) {

        double num = 1.1;
        System.out.println(num * num);

        float f = 12.5F;
        System.out.println(f);

    }

 运行结果如下:

另外需要注意的点是如果俩个int型

2.1.3.3字符型

字符型只有一种char类型,占据俩个字节,包装类型为,接下来展示其具体应用。

public static void main(String[] args) {
        char ch1 = 'a';
        char ch2 = '高';
        System.out.println(ch1);
        System.out.println(ch2);
        Character c = 'p';
    }
2.1.3.4布尔型

布尔型关键字为boolean,范围仅为true和false,而非1和0

public static void main(String[] args) {
        boolean b = true;//Boolean
        System.out.println(b);
    }

2.1.4类型转换与类型提升

2.1.4.1字符串的拼接

如果们想把俩个简单的字符串相连,仅仅只需要+即可,代码如下:

public static void main(String[] args) {
        String str = "hello";
        String str2 = "word";
        System.out.println(str+str2);
        System.out.println(str.length());//用于查询字符串长度
        System.out.println(str.charAt(0));//用于查询字符串的第n位的字符

    }

运行结果如下:

2.1.4.2整型转字符串

将整型转化为字符串有俩种办法:

  1. 一是之际利用+" "来实现
  2. 二是基本数据类型都可以通过String.valueOf()方法转化为字符串表示形式

代码展示如下:

public static void fun() {
        int a = 123;
        String str = a+"";
        System.out.println(str);
        System.out.println("========");
        String str1 = String.valueOf(a);
        System.out.println(str1);
    }
2.1.4.3字符串转整数
public static void main(String[] args) {
        String str = "123";
        int a = Integer.parseInt(str);
        System.out.println(a);
    }

2.2运算符

2.2.1算术运算符

算术运算符自然包括一些我们熟知的加减乘除模,接下来我进行总结:

加法运算符 (+)

  • 用于将两个数值相加。
  • 也可以用于字符串连接。
int a = 10;
int b = 5;
int sum = a + b; // sum = 15
String str = "Hello, " + "World!"; // str = "Hello, World!"

减法运算符 (-)

  • 用于从一个数值中减去另一个数值。
int a = 10;
int b = 5;
int difference = a - b; // difference = 5

乘法运算符 (*)

  • 用于将两个数值相乘。
int a = 10;
int b = 5;
int product = a * b; // product = 50

除法运算符 (/)

  • 用于将一个数值除以另一个数值。
  • 结果是一个浮点数,即使两个操作数都是整数。
int a = 10;
int b = 5;
double quotient = (double) a / b; // quotient = 2.0

取模运算符 (%)

  • 用于求两个整数相除的余数。
int a = 10;
int b = 3;
int remainder = a % b; // remainder = 1

自增运算符 (++)

  • 用于将变量的值增加1。
  • 可以作为前缀(先增后用)或后缀(先用后增)。
int a = 5;
a++; // 后缀,a = 6
++a; // 前缀,a = 7

自减运算符 (--)

  • 用于将变量的值减少1。
  • 可以作为前缀或后缀。
int a = 5;
a--; // 后缀,a = 4
--a; // 前缀,a = 3

以上许多在大部分语言中都类似,一些细微的差别主要区分在细节上。

2.2.2关系运算符

关系运算符用于比较两个值,并返回一个布尔值(truefalse)。以下是Java中的关系运算符及其用法:

等于 (==)

  • 检查两个值是否相等。
int a = 5;
int b = 5;
boolean result = (a == b); // result = true

不等于 (!=)

  • 检查两个值是否不相等。
int a = 5;
int b = 10;
boolean result = (a != b); // result = true

大于 (>)

  • 检查左边的值是否大于右边的值。
int a = 5;
int b = 3;
boolean result = (a > b); // result = true

(大于,小于,大于等于,小于等于类似在这里不一一列举)

2.2.3逻辑运算符(关键)

逻辑与 (&&)

  • 逻辑与运算符用于比较两个布尔表达式,只有当两个表达式都为 true 时,结果才为 true
  • 它是短路运算符,如果第一个表达式为 false,则不会评估第二个表达式。
boolean a = true;
boolean b = false;
boolean result = (a && b); // result = false

逻辑或 (||)

  • 逻辑或运算符用于比较两个布尔表达式,只要有一个表达式为 true,结果就为 true
  • 它也是短路运算符,如果第一个表达式为 true,则不会评估第二个表达式。
boolean a = true;
boolean b = false;
boolean result = (a || b); // result = true

逻辑非 (!)

  • 逻辑非运算符用于反转布尔表达式的值,将 true 转换为 false,将 false 转换为 true
boolean a = true;
boolean result = (!a); // result = false

逻辑异或 (^)

  • 逻辑异或运算符用于比较两个布尔表达式,如果两个表达式不同,则结果为 true
  • 它不是短路运算符,无论第一个表达式的值如何,都会评估第二个表达式。
boolean a = true;
boolean b = false;
boolean result = (a ^ b); // result = true

条件运算符 (?:)

  • 条件运算符也称为三元运算符,它是一种简写的if-else语句,用于在单个表达式中进行条件判断。
int a = 10;
int b = 20;
int max = (a > b) ? a : b; // max = 20

2.2.4位运算符

位与 (&)

  • 对应位都为1时,结果才为1,否则为0。
int a = 12; // 1100
int b = 9;  // 1001
int result = a & b; // 1000 (8)

位或 (|)

  • 对应位至少有一个为1时,结果为1,否则为0。
int a = 12; // 1100
int b = 9;  // 1001
int result = a | b; // 1101 (13)

位异或 (^)

  • 对应位相同则结果为0,不同则结果为1。
int a = 12; // 1100
int b = 9;  // 1001
int result = a ^ b; // 0101 (5)

位非 (~)

  • 反转操作数的每一位,即0变为1,1变为0。
int a = 9;  // 1001
int result = ~a; // 0110 (-10)

2.2.5移位运算符

左移 (<<)

  • 将操作数的二进制表示向左移动指定的位数,右边空出的位补0。
int a = 9;  // 1001
int result = a << 2; // 100100 (36)

右移 (>>)

  • 将操作数的二进制表示向右移动指定的位数,左边空出的位用符号位填充(对于正数是0,对于负数是1)。
int a = -9; // 11111111111111111111111111110111 (32位补码)
int result = a >> 2; // 11111111111111111111111111111101 (-3)

无符号右移 (>>>)

  • 将操作数的二进制表示向右移动指定的位数,左边空出的位补0,不考虑符号位。
int a = -9; // 11111111111111111111111111110111 (32位补码)
int result = a >>> 2; // 00111111111111111111111111111101 (1073741825)

2.2.6条件运算符  

条件运算符只有一个三目运算符:

表达式为:条件表达式 ? 表达式1 : 表达式2。

  • 这里的“条件表达式”是一个返回布尔值的表达式,如果条件表达式的结果为 true,则整个三目运算符的结果为“表达式1”的值;如果条件表达式的结果为 false,则结果为“表达式2”的值。
int a = 10;
int b = 20;
int max = (a > b) ? a : b; // max = 20,因为 a 不大于 b

2.3逻辑控制语句

2.3.1分支结构

if语句

  • 用于在满足特定条件时执行一段代码。
if (condition) {
    // 当条件为true时执行的代码
}

if-else语句

  • 用于在条件为真时执行一段代码,条件为假时执行另一段代码。
if (condition) {
    // 当条件为true时执行的代码
} else {
    // 当条件为false时执行的代码
}

if-else if-else语句

  • 用于在多个条件之间进行选择,并执行相应的代码块。
if (condition1) {
    // 当条件1为true时执行的代码
} else if (condition2) {
    // 当条件1为false且条件2为true时执行的代码
} else {
    // 当所有条件都不为true时执行的代码
}

switch语句

  • 用于根据变量的值选择执行不同的代码块。部分版本中中,switch语句支持字符串和箭头(->)语法。
switch (expression) {
    case value1:
        // 当expression的值等于value1时执行的代码
        break;
    case value2:
        // 当expression的值等于value2时执行的代码
        break;
    default:
        // 当expression的值不匹配任何case时执行的代码
}

2.3.2循环结构

for循环

  • 用于已知循环次数的情况。

例如,打印0到9的数字:

for (int i = 0; i < 10; i++) {
    System.out.println(i);
}

while循环

  • 用于循环次数未知,但有一个继续执行循环的条件。

例如,当变量i小于10时继续循环:

int i = 0;
while (i < 10) {
    System.out.println(i);
    i++;
}

do-while循环

  • 类似于while循环,但它至少执行一次循环体,即使条件为假。

例如,至少打印一次变量i的值,然后检查i是否小于10:

int i = 0;
do {
    System.out.println(i);
    i++;
} while (i < 10);

3.基础应用

以下题目供基础语法训练时使用,仅提供代码

3.1判断素数

import java.util.Scanner;
import java.lang.Math;

public class test1 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int flag = 1;
        for(int i = 2;i < Math.sqrt(n);i++){
            if(n % i ==0){
                System.out.println(n + "不是素数");
                flag = 0;
                break;
            }
        }
        if(flag==1){
            System.out.println(n + "是素数");
        }
    }
}

3.2判断闰年

import java.util.Scanner;
import java.lang.Math;

public class test1 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入需要判断的年份");
        int n = scanner.nextInt();
        if(n % 4 ==0||n % 400 == 0){
            System.out.println("该年份为闰年");
        }
        else{
            System.out.println("该年份不是闰年");
        }
    }
}

3.3打印九九乘法表

import java.util.Scanner;
import java.lang.Math;

public class test1 {
    public static void main(String[] args) {
        int n = 9;
        for(int i = 1;i <= 9;i++){
            for(int j = 1;j <= i;j++){
                System.out.printf("%d * %d = %d ",i ,j, i*j);
            }
            System.out.println();
        }
    }
}

3.4返回参数二进制中 1 的个数

import java.security.DrbgParameters;
import java.util.Scanner;
import java.lang.String;

public class test1 {
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
            int number = scanner.nextInt();
            int ans = 0;
            String binaryString = Integer.toBinaryString(number);
            char[] str1 = binaryString.toCharArray();
            for(int i = 0;i <binaryString.length() ;i++){
                if(str1[i] == '1')ans++;
            }
            System.out.println(ans);
    }
}

3.5猜数字游戏

import java.util.Scanner;
import java.lang.String;
import java.util.Random;


public class test1 {
        public static void main(String[] args) {
            Random random = new Random();
            Scanner scanner =new Scanner(System.in);
            int min = 1;int max = 100;
            int num = random.nextInt(max - min + 1) + min;;
            int n = 0;
            while(n!=num){
                System.out.println("请输入你要猜的数字");
                n = scanner.nextInt();
                if(n > num){
                    System.out.println("输入数字大,请重新输入");
                    continue;
                }
                if(n < num){
                    System.out.println("输入数字小,请重新输入");
                    continue;
                }
                if(n == num){
                    System.out.println("恭喜你!猜对了");
                    break;
                }
            }
    }
}

4.小结

今天的java基础知识分享到这里就结束了,博主也是码了好多字,希望大家多多支持我哦。

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

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

相关文章

【效果+教程】免费!实操用AI设计图标Logo,不仅省了设计费,还是副业新赛道!

Logo是一个品牌或公司的视觉标识 一个好的logo可以帮助消费者快速识别品牌&#xff0c;增强品牌的可见性和记忆度。 一个专业设计的logo能够提升品牌的可信度&#xff0c;给人一种专业和可靠的印象。 一个设计精美且富有意义的logo能够与消费者建立情感联系&#xff0c;增强…

10887辆 捷途旅行者8月再夺方盒子销冠

近日&#xff0c;8月汽车销量排行榜正式出炉。捷途旅行者年内第四次实现月销过万&#xff0c;以10887辆的优异成绩&#xff0c;持续领跑方盒子市场。作为名副其实的畅销车型&#xff0c;捷途旅行者自去年上市以来&#xff0c;不仅连续三个季度卫冕方盒子销量冠军&#xff0c;创…

C++类与对象(下)--最后的收尾

内部类 • 如果⼀个类定义在另⼀个类的内部&#xff0c;这个内部类就叫做内部类。内部类是⼀个独⽴的类&#xff0c;跟定义在 全局相⽐&#xff0c;他只是受外部类类域限制和访问限定符限制&#xff0c;所以外部类定义的对象中不包含内部类。 #include<iostream> using…

C++中string使用

目录 介绍 使用 迭代器&#xff08;Iterator&#xff09; begin&#xff0c;end rbegin&#xff0c;rend 容量&#xff08;Capacity&#xff09; size&#xff0c;length capacity empty clear resize reserve 元素访问&#xff08;Element access&#xff09; ope…

美国陆军发布下一代目标识别和感知倡议

文章目录 前言一、下一代目标识别与感知倡议的内容二、下一代目标识别与感知倡议重点关注领域(1)目标标记、跟踪和定位 (TTL)(2)侦察和监视 (R&S)(3)无人系统 (UMS)前言 2024年7月23日,美国陆军发布了下一代目标识别与感知倡议,希望工业界能够开发战场态势感知、侦…

LeetCode 692.前K个高频单词

LeetCode 692.前K个高频单词 C 思路&#x1f9d0;&#xff1a; 首先用map存储该字典&#xff0c;然后放进vector进行排序&#xff0c;注意sort的排序规则与我们想要的规则不一致&#xff0c;所以我们需要写一个伪函数来判断second(value值)&#xff0c;由于该题要求了稳定性&am…

Rider使用习惯

1.修改rider的快捷方式为VSCode样式的&#xff0c;修改设置方式 2.在项目中点击某个脚本文件&#xff0c;即在项目视图中选中这个文件&#xff0c;设置方式如下&#xff1a; 暂时先记录这么多&#xff0c;以后有零碎的随时记录

VUE,element-ui,优化tabs组件每次点击,所有子页面都重新渲染问题

1.在data中定义每个子组件相应的值&#xff0c;ture为加载&#xff0c;false为不加载。 2.在子组件中使用v-if来判断是否渲染当前页面 3.在函数中对子组件的值进行切换。 handleClick(){if(this.activeNamefirst){this.pageOne truethis.pageTwo false}else if(this.active…

通过 4EVERLAND 的终极 4EVER Boost 活动增强你的活动能力!

介绍 近日&#xff0c;4EVERLAND宣布启动最新、最激动人心的计划 — 4EVER Boost 活动&#xff01;4EVER Boost 活动旨在吸引更多社区成员加入并加速去中心化物理基础设施4EVER 网络的发展。用户可以参与节点质押、日常任务和 T4EVER/NFT 质押&#xff0c;以加快获得 $4EVER 积…

Spring Security认证与授权

1 Spring Security介绍 Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。由于它是Spring生态系统中的一员&#xff0c;因此它伴随着整个Spring生态系统不断修正、升级&#xff0c;在spring boot项目中加入springsecurity更是…

隔离DCDC模块B0505/B0503对RS485和CAN总线进行电源隔离

CAN和485都是工业通信中常用的现场总线&#xff0c;做好通信总线的隔离防护是产品可靠、稳定的重要前 提。 一、通信总线为什么要隔离&#xff1f; 目前大多数产品对外通讯部分可总结为&#xff1a; MCU收发器外部总线&#xff0c;其中大多数常用的MCU都集成有CAN或UART链路层…

Linux中的简单命令2

一.echo指令 echo的作用是显式文本内容 #echo ‘字符串’ #echo “字符串” echo会将后面的内容当作字符串直接打印在屏幕上&#xff0c;后面的内容需要用单引号或者双引号括起来 注意&#xff1a;echo会自动在字符串后面加上一个换行符。 可以与printf进行对比&#xff1a; …

从Zotero6到Zotero7的数据迁移尝试?(有错勿喷,多多指教!)

从Zotero6到Zotero7的数据迁移尝试 0 前言 之前在主机上一直用的Zotero6&#xff08;实验室主机&#xff09;&#xff0c;最近发现在个人笔记本上看论文更频繁&#xff0c;尝试重新部署Zotero&#xff0c;才发现竟然更新了&#xff01;所以这里简单记录一下数据迁移过程&…

水厂中的反冲洗工艺

滤池作为水厂的重要的处理单元之一,滤池的形式多种多样,但其截留水中杂质的原理基本相同。我们以常见的V型滤池为例,介绍一下水厂中的反冲洗工艺。 V型滤池是快滤池的一种形式,因为其进水槽形状呈V字形而得名,也叫均粒滤料滤池(其滤料采用均质滤料,即均粒径滤料)、六阀滤…

代码随想录算法训练营第14天|226. 翻转二叉树、101. 对称二叉树、104. 二叉树的最大深度、111. 二叉树的最小深度

目录 226. 翻转二叉树1、题目描述2、思路3、code&#xff08;后序递归&#xff09; 101. 对称二叉树1、题目描述2、思路3、code 104. 二叉树的最大深度1、题目描述2、思路3、code 111. 二叉树的最小深度1、题目描述2、思路3、code 226. 翻转二叉树 题目链接&#xff1a;link …

2024年最新软件测试学习路线图(从入门到精通)

六维全息课程注重综合能力培养&#xff0c;从入学到职后一站式服务测试开发人才。2024年最新软件测试学习路线图&#xff0c;从入门到精通一应俱全。 9阶段专业课11大专项测试项目 适应互联网企业测试开发需求。 对于想入行学软件测试的新手来说&#xff0c;首先就需要一个高效…

GESP等级考试 C++二级-if语句

if语句是C中的选择语句&#xff0c;通过if语句程序可以在一种可能、二种可能或者多种可能中做出选择&#xff0c;对于不同的可能进行不同的处理。 1 一种可能 使用if语句对一种可能进行处理的格式如下所示&#xff1a; if (表达式) {语句; } 其中&#xff0c;if后面跟一个圆…

预报名来啦!25届考研所有重要时间节点和注意事项一览

预报名即将开始&#xff0c;学姐给大家准备了&#xff0c;详细的报考流程及常见问题&#xff0c;每年都有学生因为报名出问题导致没法参加考试&#xff0c;大家一定要认真对待哦~ 一.报名时间及流程 01 预报名时间 2024年9月24日至9月27日&#xff0c;9:00—22:00 02 预报名…

高校课堂教学管理系统小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;学生管理&#xff0c;教师管理&#xff0c;课程分类管理&#xff0c;课程资源管理&#xff0c;互动论坛&#xff0c;系统管理 微信端账号功能包括&#xff1a;系统首页&#xff0c;课程资源&#xff0…

HarmonyOS ArkUI 构建布局

文章目录 一、构建布局1.线性布局 (Row/Column)1.1 Blank空白填充组件1.2 layoutWeight 自适应缩放1.3 自适应延伸 2.弹性布局 (Flex)3.栅格布局 (GridRow/GridCol)3.创建列表 (List) 一、构建布局 1.线性布局 (Row/Column) 线性布局文档 通过线性容器Row和Column构建 Column…