【Java SE】初遇Java,数据类型,运算符

 🔥博客主页🔥:【 坊钰_CSDN博客 】

欢迎各位点赞👍评论✍收藏⭐

1. Java 概述

1.1 Java 是什么

Java 是一种高级计算机语言,是一种可以编写跨平台应用软件,完全面向对象的程序设计语言。Java 语言简单易学,安全可靠,在计算机领域中,Java 可以说是无处不在。

 1.2 Java 的特点 

在介绍概念时就说Java 安全,简单等特点,那么与它本身必然密不可分,Java 有哪些特点呢?

  • 简单:Java 语言简单易学,没有复杂的运算符重载,指针等
  • 面向对象:它具备封装,继承,多态等特性
  • 安全:安全可靠,Java 储存的分配模式可抵御恶意代码
  • 跨平台:Java 程序只要编写一次,就可以到处运行
  • 多线程:多个任务可并发执行,很大程度提高代码执行效率
  • 分布性:支持各种层次的网络连接

2. JDK 说明和使用

Sun 公司提供了一套 Java开发环境,简称 JDK(Java Development Kit),除了提供JDK 外,还提供了 JRE(Java Runtime Environment),JRE中又包括JVM(Java virtual Machine),为了方便用户的使用,在JDK中封装了JRE,这样一来用户只需要安装JDK就行了,下面用一张图来解释他们的关系。

3. 第一个Java 程序

''Hello World'' 作为程序员的第一个程序,当然Java 也不例外。

在JDK和环境变量配置好了之后,在相应目录下,新建文本文档,命名为 HelloWorld.java ,用记事本打开,敲出下列代码。

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World");
    }
}
  • 第一行中的 class 是一个类,Java中,所有代码都要写在类中。
  • 第一行中类名 HelloWorld 必须与文件名一样否则会报错。
  • 第二行是主函数 main() 方法,是程序的入口。
  • 第三行为打印一段文本信息并输出到控制台。

3.1 HelloWorld.class文件

首先,我们要知道Java 程序运行的机制。

Java 运行分为两个步骤

  • 一:用 Javac HelloWorld.java 命令开启编译器,编译 HelloWorld.java 文件,编译结束后会在生成一个 HelloWorld.class 字节码文件(二进制文件)。
  • 二:使用 Java HelloWorld 命令启动JVM(Java 虚拟机) 运行程序。
  • 拓展:Java 的跨平台性就是因为有 Java 虚拟机,在不同的操作系统下,下载不同版本的 Java 虚拟机,就可以运行相应的程序。

3.1.1 图解

 

3.1.2 实际操作

先创好文件,在写好代码

打开命令窗口,输入 javac HelloWorld.java 

神奇的事情发生了

在看文件,果然多了一个 HelloWorld.class 文件,在使用 Java HelloWorld 运行程序

可以看到,正确输出相应的文档。

4. 数据类型

Java 中有8种基本数据类型

4.1 分类

基本数据类型

  • 整型 int                  4字节
  • 长整型 long           8字节
  • 短整型 short          2字节    
  • 字节型 byte           1字节
  • 字符型 char            2字节
  • 单精度 float            4字节
  • 双精度 double        8字节
  • 布尔型 boolean      未知 / 不确定

4.2 取值范围

 

4.3 字符型

在Java 中,用的是 Unicode 编码表,所以char 类型也可以用来表示 汉字

public class HelloWorld {
    public static void main(String[] args) {
        char ch = '好';
        System.out.println(ch);
    }
}

 这样写是没有问题的

4.4 布尔类型

在Java 中,表示真与假,用 true 或 false 它们为 布尔类型,例:

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println(6>10);
    }
}

结果:

 5. 类型转换

Java 的特点 ---> 安全性,在这里体现的非常完美,看下面代码

public class HelloWorld {
    public static void main(String[] args) {
    byte a = 1000;
    int b = 20L;
    float f = 12.5;
    }
}

然而在编译器中是这样的:

可以看到,三个都报错。

解析:

  • byte 大小1字节,取值范围 -128 ~ 127 ,超出范围,一定报错
  • 20L L-->指的是 long 类型,long 转为 int 会有数据的损失
  • 12.5 编译器默认为 double 类型,如果转为 float 有精度的损失 

 5.1 强制转换

如果非要上面那样写,那么就要用到强制类型转换,例:

public class HelloWorld {
    public static void main(String[] args) {
    byte a = (byte)1000;
    int b = (int)20L;
    float f = (float)12.5;
    }
}

当然,有时侯,强制的未必是好的,有时会出现错误,例:

public class HelloWorld {
    public static void main(String[] args) {
    int a = 300;
    byte b = (byte)a;
        System.out.println(b);
    }
}

猜猜输出什么,答案是  44,为什么?

注意:强制固然好用,但是还是有风险的 ,且用且珍惜。

5.2 自动转换

  • int 和 long 类型之间,自动转换为 long 类型
  • float 和 double 类型之间,自动转为 double 类型
  • byte ,char ,short ,这几个小于 4 字节的类型,运算时会自动转为 int 类型进行计算 

6. 运算符

6.1 逻辑运算符

 

6.1.2 短路问题

4>2 || 5/0

对于 || 来说,从左向右运算,当第一个表达式(4>2)为 真(true)时,整体为真,表达式2(5/0)直接不用计算了,所以编译器不会报错。

4<2 && 5/0

对于 && 来说,从左向右运算,当第一个表达式(4<2)为 假(false)时,整体为假,表达式2(5/0)直接不用计算了,所以编译器不会报错。

6.2 位运算符

 

6.2.1 左移 <<

public class HelloWorld {
    public static void main(String[] args) {
    int b = 5;
    b = b<<1;
    System.out.println(b);
    }
}

结果为 10 ,左移 1 位 相当于 乘以2

6.2.2 右移 >>

public class HelloWorld {
    public static void main(String[] args) {
    int b = 10;
    b = b>>1;
    System.out.println(b);
    }
}

结果为 5,右移 1 位 相当于 除以2

7. 总结

以上就是对Java初步的了解,具体还需宝子们去实践,如果觉得该博客对你有用的话,希望一键三连,点个关注不迷路,谢谢支持!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java基于easyExcel的自定义表格格式

这里用的到easyExcel版本为3.3.4 <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.3.4</version></dependency> 效果 代码部分 package com.tianyu.test;import com.alibaba.exc…

57 长短期记忆网络(LSTM)_by《李沐:动手学深度学习v2》pytorch版

系列文章目录 文章目录 系列文章目录长短期记忆网络&#xff08;LSTM&#xff09;门控记忆元输入门、忘记门和输出门候选记忆元 (相当于RNN中计算 H t H_t Ht​)记忆元隐状态 从零开始实现初始化模型参数定义模型训练和预测 简洁实现小结练习 长短期记忆网络&#xff08;LSTM&a…

【d53】【Java】【力扣】24.两两交换链表中的节点

思路 定义一个指针cur, 先指向头节点&#xff0c; 1.判断后一个节点是否为空&#xff0c;不为空则交换值&#xff0c; 2.指针向后走两次 代码 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}*…

[数据集][目标检测]辣椒缺陷检测数据集VOC+YOLO格式695张5类别

重要说明&#xff1a;数据集图片里面都是一个辣椒&#xff0c;请仔细查看图片预览&#xff0c;确认符合要求下载 数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文…

Nacos 是阿里巴巴开源的一款动态服务发现、配置管理和服务管理平台,旨在帮助开发者更轻松地构建、部署和管理微服务应用。

Nacos 是阿里巴巴开源的一款动态服务发现、配置管理和服务管理平台&#xff0c;旨在帮助开发者更轻松地构建、部署和管理微服务应用。Nacos 提供了一系列的功能来支持服务注册与发现、配置管理、服务元数据管理、流量管理、服务健康检查等&#xff0c;是构建云原生应用和服务网…

SpringCloud 2023各依赖版本选择、核心功能与组件、创建项目(注意事项、依赖)

目录 1. 各依赖版本选择2. 核心功能与组件3. 创建项目3.1 注意事项3.2 依赖 1. 各依赖版本选择 SpringCloud: 2023.0.1SpringBoot: 3.2.4。参考Spring Cloud Train Reference Documentation选择版本 SpringCloud Alibaba: 2023.0.1.0*: 参考Spring Cloud Alibaba选择版本。同时…

【软考】高速缓存的组成

目录 1. 说明2. 组成 1. 说明 1.高速缓存用来存放当前最活跃的程序和数据。2.高速缓存位于CPU 与主存之间。3.容量般在几千字节到几兆字节之间。4.速度一般比主存快 5~10 倍&#xff0c;由快速半导体存储器构成。5.其内容是主存局部域的副本&#xff0c;对程序员来说是透明的。…

Java:选择排序

目录 直接选择排序 堆排序 基本思想&#xff1a; 每一次从待排序的数据元素中选出最小(或最大)的一个元素&#xff0c;存放在序列的起始位置&#xff0c;直到全部待排序的数据元素排完。 直接选择排序 思路1&#xff1a; 在元素集合array[i]--array[n-1]中选择关键码最大(小…

​fl studio21.2.3.4004中文版永久2024最新下载安装图文详细使用教程​

随着数字音乐制作的快速发展&#xff0c;越来越多的音乐制作软件涌现出来&#xff0c;而FL Studio无疑是其中的佼佼者。作为一款功能强大、易于上手的音乐制作软件&#xff0c;FL Studio V21中文版在继承了前代版本优秀基因的基础上&#xff0c;进一步提升了用户体验&#xff0…

什么是原生IP?

代理IP的各个类型称呼有很多&#xff0c;且它们在网络使用和隐私保护方面扮演着不同的角色。今天将探讨什么是原生IP以及原生IP和住宅IP之间的区别&#xff0c;帮助大家更好地理解这两者的概念和实际应用&#xff0c;并选择适合自己的IP类型。 一、什么是原生IP&#xff1f; 原…

FPGA-Vivado-IP核-逻辑分析仪(ILA)

ILA IP核 背景介绍 在用FPGA做工程项目时&#xff0c;当Verilog代码写好&#xff0c;我们需要对代码里面的一些关键信号进行上板验证查看。首先&#xff0c;我们可以把需要查看的这些关键信号引出来&#xff0c;接好线通过示波器进行实时监测&#xff0c;但这会用到大量的线材…

【英特尔IA-32架构软件开发者开发手册第3卷:系统编程指南】2001年版翻译,1-1

文件下载与邀请翻译者 学习英特尔开发手册&#xff0c;最好手里这个手册文件。原版是PDF文件。点击下方链接了解下载方法。 讲解下载英特尔开发手册的文章 翻译英特尔开发手册&#xff0c;会是一件耗时费力的工作。如果有愿意和我一起来做这件事的&#xff0c;那么&#xff…

.NET 工具库高效生成 PDF 文档

QuestPDF 是一个开源 .NET 库&#xff0c;用于生成 PDF 文档。使用了C# Fluent API方式可简化开发、减少错误并提高工作效率。利用它可以轻松生成 PDF 报告、发票、导出文件等。 QuestPDF 是一个革命性的开源 .NET 库&#xff0c;它彻底改变了我们生成 PDF 文档的方式。 Ques…

[Admin] Things Need to Know

List View Bulk Actions Highlight: To take bulk actions on all of the available records in a list, you click the bulk action button without selecting any records.

优雅使用 MapStruct 进行类复制

前言 在项目中&#xff0c;常常会遇到从数据库读取数据后不能直接返回给前端展示的情况&#xff0c;因为还需要对字段进行加工&#xff0c;比如去除时间戳记录、隐藏敏感数据等。传统的处理方式是创建一个新类&#xff0c;然后编写大量的 get/set 方法进行赋值&#xff0c;若字…

鸿蒙开发(NEXT/API 12)【硬件(传感器开发)】传感器服务

使用场景 Sensor Service Kit&#xff08;传感器服务&#xff09;使应用程序能够从传感器获取原始数据&#xff0c;并提供振感控制能力。 Sensor&#xff08;传感器&#xff09;模块是应用访问底层硬件传感器的一种设备抽象概念。开发者可根据传感器提供的相关接口订阅传感器…

The 2024 CCPC Online Contest (C I J三题思路)

写在前面 因为学弟已经问了几个题了&#xff0c;于是乎这场没有vp&#xff0c;准备直接开写了 题目 C. 种树&#xff08;树形dp&#xff09; 题解 只有两种情况&#xff0c; 一种是1-2-3&#xff0c;1是2的父亲&#xff0c;2是3的父亲 另一种是1-2-3&#xff0c;2同时是1…

【网络安全】-访问控制-burp(1~6)

文章目录 前言   1.Lab: Unprotected admin functionality  2.Lab: Unprotected admin functionality with unpredictable URL   3.Lab: User role controlled by request parameter   4.Lab:User role can be modified in user profile  5.Lab: User ID controlled by…

校园二手交易平台的小程序+ssm(lw+演示+源码+运行)

摘 要 随着社会的发展&#xff0c;社会的方方面面都在利用信息化时代的优势。互联网的优势和普及使得各种系统的开发成为必需。 本文以实际运用为开发背景&#xff0c;运用软件工程原理和开发方法&#xff0c;它主要是采用java语言技术和mysql数据库来完成对系统的设计。整个…

【JavaEE】——线程池大总结

阿华代码&#xff0c;不是逆风&#xff0c;就是我疯&#xff0c; 你们的点赞收藏是我前进最大的动力&#xff01;&#xff01;希望本文内容能够帮助到你&#xff01; 目录 引入&#xff1a;问题引入 一&#xff1a;解决方案 1&#xff1a;方案一——协程/纤程 &#xff08;1…