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

news2024/11/25 15:36:13

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.coloradmin.cn/o/1588012.html

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

相关文章

Linux网络基础2(下)

传输层 再谈端口号端口号的划分netstatpidof UDP协议 UDP的特点UDP缓冲区UDP使用注意事项UDP报头的理解基于UDP的应用层协议 TCP协议 4位首部长度16位窗口大小确认应答机制32位序号和32位确认序号6个标记位超时重传机制连接管理机制流量控制快重传机制再谈序号延迟应答面相字节…

Day16_学点儿JavaEE_实践_基于IDEA2023的简易JavaWeb项目、Tomcat输出乱码解决

0 JavaWeb项目目录 └──JavaWeb├──resources│ └──db.properties├──src│ └──com.sdust.web│ ├──servlet│ │ └──StudentServlet│ ├──pojo│ │ └──Student│ └──util│ └──JDBCUtil├──web│ ├──st…

电商技术揭秘十三:云计算在电商中的应用场景

相关系列文章 电商技术揭秘一&#xff1a;电商架构设计与核心技术 电商技术揭秘二&#xff1a;电商平台推荐系统的实现与优化 电商技术揭秘三&#xff1a;电商平台的支付与结算系统 电商技术揭秘四&#xff1a;电商平台的物流管理系统 电商技术揭秘五&#xff1a;电商平台…

百科引流攻略|小马识途分享百科营销的五个技巧

纵观整个互联网领域&#xff0c;国内几大巨头百度、抖音、腾讯都布局了自身的百科平台&#xff0c;百科营销也始终作为网络营销一个重要分支而存在。很多人都知道百科营销是品牌背书的一把王牌&#xff0c;但很少有人提及百科营销的引流作用。 有人可能会说&#xff0c;百科词条…

[数据结构]—二叉树基本概念

1.树概念及结构 1.树的概念 树是一种非线性的数据结构&#xff0c;它是由n&#xff08;n>0&#xff09;个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树&#xff0c;也就是说它是根朝上&#xff0c;而叶朝下的。 有一个特殊的结点&#xff…

老房改造系列--如何用一套流程接入所有业务线

ToB业务没有太多高并发的挑战&#xff0c;但同一套流程往往可能需要承载各种差异化的复杂业务需求&#xff0c;所以如何让系统具备良好的扩展性成为ToB业务系统最大的挑战。本文将详细讲述如何用一套流程接入所有业务线&#xff1f; 老系统改造不是一蹴而就的&#xff0c;从20…

【自用笔记】【大数据】

1 mapreduce &#xff08;1&#xff09;Map任务的数量&#xff1a;由输入数据的大小决定的&#xff0c;如文件数量和大小、HDFS块大小以及FileInputFormat的设置等。每个MapSlot可以运行一个Map任务 &#xff08;2&#xff09;Reduce任务的数量&#xff08;分区数&#xff09;&…

想走?可以!先买票--迭代器模式

1.1 乘车买票&#xff0c;不管你是谁&#xff01; 售票员检查谁没有买票&#xff0c;把车厢里的人都遍历一遍。 1.2 迭代器模式 迭代器模式&#xff08;Iterator&#xff09;&#xff0c;提供一种方法顺序访问一个聚合对象中的各个元素&#xff0c;而又不暴露该对象的内部表示…

[CSS]布局

盒子就是把网站分割成一小块一小块的吧&#xff0c;然后方便移动或者管理 背景 属性名描述background-color设置元素的背景颜色。background-image设置元素的背景图片。背景图片与背景颜色同时设置时&#xff0c;则图片覆盖颜色。写法如下&#xff1a;background-image: url(&…

【洛谷 P4017】最大食物链计数 题解(深度优先搜索+动态规划+邻接表+记忆化搜索+剪枝)

最大食物链计数 题目背景 你知道食物链吗&#xff1f;Delia 生物考试的时候&#xff0c;数食物链条数的题目全都错了&#xff0c;因为她总是重复数了几条或漏掉了几条。于是她来就来求助你&#xff0c;然而你也不会啊&#xff01;写一个程序来帮帮她吧。 题目描述 给你一个…

【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…

【拓展技术】——AutoDL服务器训练Pycharm使用注意点Pycharm配置AutoDL

一、AutoDL服务器模型训练 AutoDL是一个为研究人员、开发者和企业提供的平台&#xff0c;它致力于提供一个高效、可靠和易用的环境&#xff0c;以支持复杂的计算任务和AI模型的部署&#xff1a; 高效的并行计算资源&#xff1a;AutoDL拥有强大的计算集群和高性能的计算节点&a…

MySOL之旅--------MySQL数据库基础( 2 )

本篇碎碎念:尽自己最大的努力,直到筋疲力尽为止,加油 今日份励志文案: 别人都在前进,我为什么要停下 目录 补上一条博客缺失的内容 常用数据类型 数值类型&#xff1a; 字符串类型&#xff1a; 日期/时间类型&#xff1a; 二进制类型&#xff1a; 其他类型&#xff1a; …

工业4G路由器SR500护航清远市智慧环卫项目

一、项目背景 随着智慧城市建设的不断推进,清远市政府高度重视城市环卫管理的智能化升级。由于清远地处山区,环卫作业路线长、工作环境复杂,有效监控和调度成为亟待解决的难题。 经过严格筛选,清远市最终选定了星创易联科技的SR500双网口4G工业路由器,与环卫车载智能终端配合使…

BM25和语言模型的改进研究

原文链接&#xff1a; BM25和语言模型的改进研究 摘要&#xff1a; 近期关于搜索引擎排名函数的研究报告指出&#xff0c;BM25和带Dirichlet平滑的语言模型有所改进。本研究通过在INEX 2009维基百科语料库上训练&#xff0c;然后在INEX 2010和9个TREC语料库上测试&#xff0…

ffmpeg命令与批处理编程

(一) CMD脚本查找所有文件 powershell与cmd转换 powershell与cmd虽然同为windows命令&#xff0c;但许多命令并不通用。 CMD换行符 a 在CMD下&#xff0c;可以用^作为换行符&#xff0c;类似于Linux下的\。举例如下&#xff1a; start pemu.exe ^ -net nic,vlan1,macaddr…

低功耗接地故障中断器D4145,无需任何电位计符合 U.L.943 标准,直接连接至SCR

概述&#xff1a; D4145 是交流电源插座接地故障中断器的低功率控制器。 在发生有 害或致命冲击前&#xff0c;这些器件检测是否有危险的接地情况&#xff0c;比如设备( 与 AC 线路反相连接) 与水以及与裸露电线接触。内含一个 26V 齐纳并联稳压 器、 一个运算放大器和一个…

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

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

第十三届蓝桥杯省赛大学B组编程题(c++)

D.刷题统计 二分(AC): 注意:二分时右边界 right 的确定 #include<iostream> using namespace std; long long a,b,n; bool check(long long x){long long tx/7;x%7;long long temp0;if(x<5) tempx*a;else temp5*a(x-5)*b;long long cntt*(5*a2*b)temp;return cnt&g…

第十一届蓝桥杯大赛第二场省赛试题 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(…