【Java核心技术】第3章 Java的基本程序设计结构

1 数据类型

        Java一共有8种数据类型:

  • 4种整型

类型存储需求
int4字节
short2字节
long8字节
byte1字节
  • 2种浮点型

类型存储需求
float4字节
double8字节
  • 1种字符型

  • 1种布尔型

2 变量声明

2.1 局部类型推断

        如果可以从变量的初始值推断变量类型,只需要使用 var关键字,而无需指定类型

var salary = 7856.98 // salary is double

2.2 枚举类型

        用关键字 enum 声明一个枚举类型

enum Size = {small, medium, big};

2.3 条件运算符

        condition ? expression1 : expression2

        如:

x = 8;
y = 3;
System.out.println(x < y ? x : y) // 输出3

2.4 运算符优先级

运算符结合性
[] . (方法调用)-->
! ~ ++ -- +(一元运算) -(一元运算) ()(强制类型转换) new<--
* / %-->
+ --->
<< >> >>>-->
< <= > >= instanceof-->
== !=-->
&-->
^-->
|-->
&&-->
||-->
?:<--
赋值<--

 

2.5 变量之间的转换

强制转换:

int a = (int)2.0;

实线箭头表示无精度损失的转换

虚线箭头表示可能有精度损失的转换

3 字符串

        Java没有字符串类型,而是标准Java类库中提供了一个 String类,每个用双引号括起来的字符串都是String类的一个实例

        但是String不允许修改,要修改就用 StringBuffer 和 StringBuilder 

StringBuilder 字符串构建器(采用单线程操作)

StringBuffer 字符串缓冲器(采用多线程操作)

4 输入与输出

4.1 输入

常见的输入流

  • 标准输入流 System.in

  • 文件输入流 FileInputStream

FileInputStream fileInputStream = new FileInputStream("example.txt");
Scanner scanner = new Scanner(fileInputStream);
  • 网络链接输入流

Socket socket = new Socket("example.com", 80);
InputStream inputStream = socket.getInputStream();
Scanner scanner = new Scanner(inputStream);
  • 字符串输入流 ByteArrayInputStream

String data = "Hello World";
byte[] bytes = data.getBytes();
ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(bytes);
Scanner scanner = new Scanner(byteArrayInputStream);

4.2 输出

格式化输出

System.out.printf("%8.2f", x); // 规定了输出的宽度为8个字符,精度为2个字符

转换字符:

转换字符类型
d十进制整数
x或X十六进制整数
o八进制整数
f或F定点浮点数
e或E指数浮点数
g或G通用浮点数(e和f中较短的一个)
a或A十六进制浮点数
s或S字符串
c或C字符
b或B布尔
h或H散列码
%百分号

创建一个格式化的字符串,而不打印输出:

String message = String.format("name: %s  age: %d", name, age);

5 分支

带标签的break:(相当于 go to)

标签还可以放在 if 上面,注意的是只能跳出代码块,而不能跳入

public static void main(String[] args) {int i = 10;int sum = 0;label:while (i > 0) {for (int j = 1; j <= 10; j++) {sum += j * i;break label;}i--;}System.out.println(sum); // 10}

switch 语句:

switch (choice)
{
case 1 ->
break ;
case 2 ->
break ;
default ->
}

6 数组拷贝

不能用 int[] a = b 的形式进行数组拷贝,这样 a 和 b 指向同一个数组,改变一个的同时另一个也变化 所以使用 Array 类的 copyOf 方法:

int[] a = Array.copyOf(b, b.length);

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从大量数据到大数据,King’s SDMS仪器数据采集及科学数据管理系统的应用

对于实验室或检测机构&#xff0c;仪器设备是所有业务开展的基础&#xff0c;数据则是核心命脉&#xff0c;而传统的仪器设备原始数据收集方式&#xff0c;效率低耗时长、操作流程不规范、不易保存与查找、错误率高、易篡改等成了制约检测机构持续高速发展的瓶颈和弊端&#xf…

TiDB 慢查询日志分析

导读 TiDB 中的慢查询日志是一项 关键的性能监控工具&#xff0c;其主要作用在于协助数据库管理员追踪执行时间较长的 SQL 查询语句。 通过记录那些超过设定阈值的查询&#xff0c;慢查询日志为性能优化提供了关键的线索&#xff0c;有助于发现潜在的性能瓶颈&#xff0c;优化…

【D3.js Tidy tree绘制树形图,单棵树,左右树,平移,拖拽,树形中的天花板实现,源码实现】

这里写自定义目录标题 D3.js Tidy tree绘制树形图,单棵树,左右树,平移,拖拽,树形中的天花板实现,源码实现D3 简介D3 官网有很多例子,这里说的是Tidy tree[树形图表svg][左侧关系->中间对象<-右侧关系 ] 树形实现 D3.js Tidy tree绘制树形图,单棵树,左右树,平移,拖拽,树形…

win11任务管理器快捷键怎么按,windows11任务管理器快捷键

win11任务管理器快捷键怎么按?win11是基于win10而开发的,所以win10有的功能,win11几乎都有,就比如说任务管理器。这是一项系统基础功能,平时我们可以快速打开,一键完成各种任务。在任务管理器的进程菜单下,你还可以看到电脑正在运行的所有任务。而今天的这篇教程,将带来…

【Java核心技术】第4章 对象与类

1 面向对象 2 自定义类 形式&#xff1a; class ClassName { field // 字段 constructor // 构造器&#xff08;构造函数&#xff09; method // 方法 } 如&#xff1a; class Employee {private String name;private double salary;private LocalDate hireDay;public Emp…

easyExcel - 按模板导出

目录 前言一、情景介绍二、文档介绍2.1 读取模板2.2 填充模板 三、代码示例3.1 案例一&#xff1a;工资表3.2 案例二&#xff1a;报价单 四、我所遇到的问题 前言 Java-easyExcel入门教程&#xff1a;https://blog.csdn.net/xhmico/article/details/134714025 之前有介绍过如…

2024 年 3 月 Web3 游戏报告:市场趋势与投资动态

作者&#xff1a;stellafootprint.network 数据来源&#xff1a;Footprint Analytics GameFi Research 2024 年 3 月&#xff0c;比特币不断刷新纪录&#xff0c;成功跨越了月中的低谷。受益于宏观经济的积极态势&#xff0c;整个加密货币市场表现突出。与此同时&#xff0c…

实体抽取全解析:技术与实战

目录 一、前言二、实体抽取技术概览基于规则的实体抽取基于统计的实体抽取基于深度学习的实体抽取 三、实体抽取的发展历程早期的实体抽取方法基于规则和词典的方法基于特征的机器学习方法 深度学习时代的实体抽取从传统模型到神经网络序列标注模型的兴起预训练语言模型的革命 …

Java设计模式之创建型模式(二)原型模式

原型模式 1、原型模式1-1、应用场景1-2、举个 软栗子1-3、举个 硬栗子1-4、举个实务栗子1-5、代码重构 学习原型模式的目的&#xff1a;原型模式的目的在于通过复制现有的实例来创建新的对象&#xff0c;以避免通过构造函数创建对象时可能带来的性能开销&#xff0c;同时可以控…

2024mathorcup数学建模A 题思路分析-移动通信网络中 PCI 规划问题

# 1 赛题 A 题 移动通信网络中 PCI 规划问题 物理小区识别码(PCI)规划是移动通信网络中下行链路层上&#xff0c;对各覆盖 小区编号进行合理配置&#xff0c;以避免 PCI 冲突、 PCI 混淆以及 PCI 模 3 干扰等 现象。 PCI 规划对于减少物理层的小区间互相干扰(ICI)&#xff0c;增…

达梦使用disql登录数据库显示“未连接”

基础环境 操作系统&#xff1a;Red Hat Enterprise Linux Server release 7.9 (Maipo) 数据库版本&#xff1a;DM Database Server 64 V8 架构&#xff1a;单实例问题&#xff1a;达梦数据库在使用disql登录时&#xff0c;显示“未连接”。 指定了IP和端口号还是连接异常。 […

EFcore 6 连接oracle19 WinForm vs2022

用EFcore访问Oracle&#xff0c;终于不需要Oracle的什么安装包了&#xff0c;直接在VS2022中就可以轻松搞定。在csdn上看到一哥们的帖子&#xff0c;测试了一下&#xff0c;发现很方便。使用的场景是&#xff1a;VS2022中EFcore6。经过测试&#xff0c;同 Navicat Premium 16比…

【C++进阶】C++异常详解

C异常 一&#xff0c;传统处理错误方式二&#xff0c;C处理的方式三&#xff0c;异常的概念四&#xff0c;异常的使用4.1 异常和捕获的匹配原则4.2 函数调用链中异常栈展开匹配原则4.3 异常的重新抛出&#xff08;异常安全问题&#xff09;4.4 RAII思想在异常中的作用 五&#…

标定系列——Ubuntu18.04下opencv-4.5.3与opencv_contrib-4.5.3源码编译(二十)

Ubuntu18.04下opencv-4.5.3与opencv_contrib-4.5.3源码编译 说明下载安装步骤1.更新2.安装必要的依赖包3.下载源码包并解压4.终端运行如下命令5.添加配置路径6.验证安装是否成功 说明 Ubuntu18.04下对opencv-4.5.3与opencv_contrib-4.5.3源码编译 下载 CSDN下载 安装步骤 …

手写ArrrayList

需求 自定义的MyArrayList import java.util.Arrays; import java.util.Objects;public class MyArrayList<E> {private Object[] elementData ; // 存储元素的数组private int size; // 记录 的元素个数private static final int DEFAULT_CAPACITY 10; // 默认容量// …

提升编程效率的秘密武器:IntelliJ IDEA

IntelliJ IDEA的基本介绍 正如一个故事的开头&#xff0c;我们从一个名字开始 - IntelliJ IDEA。这是一个在程序员中广受欢迎的集成开发环境&#xff08;IDE&#xff09;&#xff0c;由捷克公司JetBrains开发。它的名字听起来有些复杂&#xff0c;但实际上&#xff0c;它的功能…

蓝桥杯备考day4

1.1 二分查找模板 bool check(int x) {// 进行某些操作 } // 二分查找函数 int binarySearch() {int l 1, r n; // 初始化左右边界while (r - l > 1) // 当右边界与左边界相差大于1时{int mid (l r) >> 1; // 取中间位置if (check(mid)) // 如果满足条件r mid; …

第十一届蓝桥杯大赛第二场省赛试题 CC++ 研究生组-七段码

#include<iostream> using namespace std; const int N 10, M 7; int e[N][N] {0}, f[N], open[N];//e[i][j]表示i和j之间是否连通&#xff1b;f[i]表示结点i的父节点&#xff1b;open[i] 1表示结点i打开&#xff0c;0表示关闭 long long ans 0;int find(int x){if(…

PP-LCNet:一种轻量级CPU卷积神经网络

PP-LCNet: A Lightweight CPU Convolutional Neural Network 最近看了一个新的分享&#xff0c;在图像分类的任务上表现良好&#xff0c;具有很高的实践意义。 论文&#xff1a; https://arxiv.org/pdf/2109.15099.pdf项目&#xff1a; https://github.com/PaddlePaddle/Padd…

AMD Tensile 简介与示例

按照知其然&#xff0c;再知其所以然的认知次序进行 1&#xff0c;下载代码 git clone --recursive https://github.com/ROCm/Tensile.git 2&#xff0c;安装 Tensile cd Tensile mkdir build cd build ../Tensile/bin/Tensile ../Tensile/Configs/rocblas_dgemm_nn_asm_full…