当前位置: 首页 > news >正文

【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初步的了解,具体还需宝子们去实践,如果觉得该博客对你有用的话,希望一键三连,点个关注不迷路,谢谢支持!

相关文章:

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

&#x1f525;博客主页&#x1f525;&#xff1a;【 坊钰_CSDN博客 】 欢迎各位点赞&#x1f44d;评论✍收藏⭐ 1. Java 概述 1.1 Java 是什么 Java 是一种高级计算机语言&#xff0c;是一种可以编写跨平台应用软件&#xff0c;完全面向对象的程序设计语言。Java 语言简单易学…...

XSS(内含DVWA)

目录 一.XSS的攻击方式&#xff1a; 1. 反射型 XSS&#xff08;Reflected XSS&#xff09; 2. 存储型 XSS&#xff08;Stored XSS&#xff09; 3. DOM型 XSS&#xff08;DOM-based XSS&#xff09; 总结 二..XSS的危害 三.常见的XSS方式 1.script标签 四.常见基本过滤方…...

【SpringCloud】环境和工程搭建

环境和工程搭建 1. 案例介绍1.1 需求1.2 服务拆分服务拆分原则服务拆分⽰例 2. 项目搭建 1. 案例介绍 1.1 需求 实现⼀个电商平台(不真实实现, 仅为演⽰) ⼀个电商平台包含的内容⾮常多, 以京东为例, 仅从⾸⻚上就可以看到巨多的功能 我们该如何实现呢? 如果把这些功能全部…...

基于Java开发的(控制台)模拟的多用户多级目录的文件系统

多级文件系统 1 设计目的 为了加深对文件系统内部功能和实现过程的理解&#xff0c;设计一个模拟的多用户多级目录的文件系统&#xff0c;并实现具体的文件物理结构、目录结构以及较为完善的文件操作命令集。 2 设计内容 2.1系统操作 操作命令风格&#xff1a;本文件系统的…...

tailwindcss group-hover 不生效

无效 <li class"group"><div class"tw-opacity-0 group-hover:tw-opacity-100" /> </li>配了tw前缀&#xff0c;group要改成tw-group // tailwind.config.jsmodule.exports {prefix: "tw-", }<li class"tw-group&q…...

python环境配置问题(个人经验)

很久没配置 python 新环境了&#xff0c;最近新项目需要进行配置&#xff0c;在配置过程中发现了不少问题&#xff0c;记录下。 问题1&#xff1a;fatal error: longintrepr.h: 没有那个文件或目录 这个问题的原因是新环境的 python 版本(3.10以上)与本地的版本(3.8.x)差异过…...

BERT训练之数据集处理(代码实现)

目录 1读取文件数据 2.生成下一句预测任务的数据 3.预测下一个句子 4.生成遮蔽语言模型任务的数据 5.从词元中得到遮掩的数据 6.将文本转化为预训练数据集 7.封装函数类 8.调用 import os import random import torch import dltools 1读取文件数据 def _read_wiki(data_d…...

一款辅助渗透测试过程,让渗透测试报告一键生成

《网安面试指南》http://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247484339&idx1&sn356300f169de74e7a778b04bfbbbd0ab&chksmc0e47aeff793f3f9a5f7abcfa57695e8944e52bca2de2c7a3eb1aecb3c1e6b9cb6abe509d51f&scene21#wechat_redirect 《Java代码审…...

力扣最热一百题——颜色分类

目录 题目链接&#xff1a;75. 颜色分类 - 力扣&#xff08;LeetCode&#xff09; 题目描述 示例 提示&#xff1a; 解法一&#xff1a;不要脸用sort Java写法&#xff1a; 运行时间 解法二&#xff1a;O1指针 Java写法&#xff1a; 重点 运行时间 C写法&#xff1a;…...

2024年工业制造企业CRM研究报告:需求清单、市场格局、案例分析

我国是世界上产业体系最完备的国家&#xff0c;拥有全球规模最大、门类最齐全的生产制造体系&#xff0c;在500种主要工业产品中&#xff0c;有四成以上产品产量位居全球第一。2023年制造业增加值达33万亿元&#xff0c;占世界的比重稳定在30%左右&#xff0c;我国制造业增加值…...

Spring MVC参数接收 总结

1. 简介 Spring MVC可以简化从前端接收参数的步骤。 2. Param传参 通过设定函数入参和添加标记来简化接受&#xff1a; //参数接收 RequestMapping("product") ResponseBody //接受/product?productgoods&id123 //1.名称必须相同&#xff0c;2.不传值不会不…...

Docekrfile和docker compose编写指南及注意事项

Dockerfile 基础语法 我们通过编写dockerfile,将每一层要做的事情使用语法固定下来&#xff0c;之后运行指令就可以通过docker来制作自己的镜像了。 构建镜像的指令&#xff1a;docker build /path -t imageName:tag 注意&#xff0c;docker build后的path必须是dockerfile…...

VITS源码解读6-训练推理

1. train.py 1.1 大体流程 执行main函数&#xff0c;调用多线程和run函数执行run函数&#xff0c;加载日志、数据集、模型、模型优化器for循环迭代数据batch&#xff0c;每次执行train_and_evaluate函数&#xff0c;训练模型 这里需要注意&#xff0c;源码中加载数据集用的分…...

力扣 简单 104.二叉树的最大深度

文章目录 题目介绍解法 题目介绍 解法 如果知道了左子树和右子树的最大深度 l 和 r&#xff0c;那么该二叉树的最大深度即为max(l,r)1&#xff0c;而左子树和右子树的最大深度又可以以同样的方式进行计算。因此我们可以用递归的方法来计算二叉树的最大深度。具体而言&#xff…...

单片机长短按简单实现

单片机长短按简单实现 目录 单片机长短按简单实现1 原理2 示例代码2.1 按键实现 3 测试log4 其他实现方式 1 原理 按键检测和处理的步骤如下&#xff1a; 1&#xff1a;定时扫描按键&#xff08;使用定时器定时扫描&#xff0c;也可以用软件延时或者系统心跳之类的方式&#…...

如何用好通义灵码企业知识库问答能力?

通义灵码企业版&#xff1a;通义灵码企业标准版快速入门_智能编码助手_AI编程_智能编码助手通义灵码(Lingma)-阿里云帮助中心 通义灵码提供了基于企业知识库的问答检索增强的能力&#xff0c;在开发者使用通义灵码 IDE 插件时&#xff0c;可以结合企业知识库内上传的文档、文件…...

C语言自定义类型:联合体

目录 前言一、联合体1.1 联合体类型的声明1.2 联合体的特点1.3 相同成员的结构体和联合体对比1.4 联合体大小的计算1.5 联合体的⼀个练习 总结 前言 前面我讲到C语言中的自定义结构——结构体&#xff0c;其实C语言中的自定义结构不只有结构体&#xff0c;还有枚举和联合体&am…...

【JavaEE】——线程池大总结

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

编程中为什么使用0和1表示状态

前言 这是我在这个网站整理的笔记,有错误的地方请指出&#xff0c;关注我&#xff0c;接下来还会持续更新。 作者&#xff1a;神的孩子都在歌唱 我们看到很多项目都使用0和1表示某些状态信息&#xff0c;具体含义取决于上下文。以下是一些常见的用法&#xff1a; 布尔值&#x…...

C++入门基础知识90(实例)——实例15【求两数的最大公约数】

成长路上不孤单&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a; 【14后&#x1f60a;///C爱好者&#x1f60a;///持续分享所学&#x1f60a;///如有需要欢迎收藏转发///&#x1f60a;】 今日分享关于求两数的最大公约数的相关内容&#xff…...

自动化办公-Python-os模块的使用

os.path 模块的使用 在指定文件路径时&#xff0c;由于操作系统的差异&#xff0c;直接使用硬编码的路径可能会导致程序在不同平台上无法正常运行。为了解决这个问题&#xff0c;Python 提供了 os.path 模块&#xff0c;它包含了一系列用于路径操作的函数&#xff0c;可以帮助您…...

无人机之数据处理技术篇

一、数据采集 无人机通过搭载的各种传感器和设备&#xff0c;如GPS、加速度计、陀螺仪、磁力计、激光雷达(LiDAR)、高光谱相机(Hyperspectral)、多光谱相机(Multispectral)以及普通相机等&#xff0c;实时采集飞行过程中的各种数据。这些数据包括无人机的位置、速度、高度、姿态…...

828华为云征文|部署多功能集成的协作知识库 AFFiNE

828华为云征文&#xff5c;部署多功能集成的协作知识库 AFFiNE 一、Flexus云服务器X实例介绍二、Flexus云服务器X实例配置2.1 重置密码2.2 服务器连接2.3 安全组配置2.4 Docker 环境搭建 三、Flexus云服务器X实例部署 AFFiNE3.1 AFFiNE 介绍3.2 AFFiNE 部署3.3 AFFiNE 使用 四、…...

c++(AVL树及其实现)

一、AVL树的概念 AVL树是最先发明的自平衡⼆叉查找树&#xff0c;AVL是⼀颗空树&#xff0c;或者具备下列性质的⼆叉搜索树&#xff1a;它的 左右子树都是AV树&#xff0c;且左右子树的高度差的绝对值不超过1。AVL树是⼀颗高度平衡搜索⼆叉树&#xff0c; 通过控制高度差去控…...

Cesium GIS项目关于湖泊识别与提取的实现

1. 引言 项目背景 随着遥感技术的发展,地理信息系统的应用越来越广泛。本项目旨在开发一个基于Cesium的地理信息系统,利用深度学习技术自动识别并显示湖泊的位置。 目标与意义 通过自动化处理大量遥感影像数据,提高湖泊监测的效率和准确性,为水资源管理和环境保护提供支…...

两个圆形 一个z里面一个z外面,z里面的大,颜色不同 html

两个圆形 一个z里面一个z外面&#xff0c;z里面的大&#xff0c;颜色不同 html <!DOCTYPE html> <html> <head> <style> .outer-circle {width: 150px;height: 150px;border-radius: 50%;background-color: #ff9999; /* 外圆的颜色 */position: relat…...

【Power Query】M函数-table

M函数-table 添加列&#xff08;AddColumn&#xff09;&#xff1a;条件语句&#xff08;If..then..else&#xff09;&#xff1a;容错语句&#xff08;try..otherwise&#xff09;&#xff1a; 排序&#xff08;ReorderColumns&#xff09;&#xff1a;筛选&#xff08;Selec…...

uni-app 封装websocket 心跳检测,开箱即用

class websocketUtils {constructor(url, needbeat, options {}) {this.needbeat needbeat;this.url url;this.options options;this.ws null;this.heartbeatInterval options.heartbeatInterval || 10000; // 心跳间隔&#xff0c;默认为10秒 this.reconnectInterval …...

ASP.NET Core8.0学习笔记(十九)——EF Core DbSet

一、DbSet概述 1.DbSet提供了通过DbContext对表进行查询操作的路径。DbSet对应的属性名称将默认映射为实体T的表名。 2.使用DbSet<T>进行查询的方法&#xff1a; (1)直接在DbContext中创建对应的DbSet<T>属性 (2)使用DbSet DbContext.Set<T>方法操作数据表。…...

Android Camera 预览角度和拍照保存图片角度相关

–基于Android R(11) 关于Camera Camera Framework 的架构 Android Camera Framework 是一个分层架构&#xff0c;由以下组件组成&#xff1a; HAL&#xff08;硬件抽象层&#xff09;: HAL 抽象底层相机硬件,提供与不同设备相机进行交互的标准接口.CameraService : Camera…...