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

JAVA基础知识Fundamental

JAVA基础知识

  • Java开发环境
    • 名词解释
  • 八大基本类型
    • 整型
    • 长整型
    • 双精度浮点型
    • 布尔型
    • 字符型
    • 类型间的转换
  • 运算符(Operator)
    • 算术运算符
    • 关系运算符
    • 逻辑运算符
    • 赋值运算符
    • 字符串连接运算符
    • 条件运算符
  • 分支结构
  • 循环结构
  • 数组
  • 方法
    • 方法的重载(overloading)
  • Exception

Java开发环境

编译运行过程
编译期: .java源文件经过编译,生成 .class字节码文件

运行期: JVM加载.class字节码文件并运行.class字节码文件

特点: 跨平台,一次编译到处使用

名词解释

JVM (virtual machine) Java虚拟机
加载class字节码文件并运行class字节码文件

JRE (runtime environment)Java运行环境
除了包含JVM以外还包含Java系统类库,运行Java程序所必须的环境
是运行Java程序的最小环境

JDK (development kit) Java开发工具包
除了包含JRE以外还包含了开发Java程序所必须的命令工具
编译、运行等命令工具
是开发Java程序的最小环境

八大基本类型

byte short int long float double boolean char

变量
存数的,内存里开辟空间
变量的命名

  • 只能有字母,数字,_和$符号组成,并且不能以数字开头
  • 严格区分大小写
  • 不能使用Java关键字
  • 允许中文命名,但不建议
    建议英文的见名知意,

良好习惯

  • 拼音坚决杜绝
  • 小驼峰命名法用于变量
  • 大驼峰命名法用于类
byte 1个字节boolean 1个字节
short 2个字节char 2个字节
int 4个字节float 4个字节
long 8个字节double 8个字节

整型

  • int 占4个字节 -231 到231-1(-2147483648到2147483647)
  • 两个整数相除,结果还是整数,小数位无条件舍弃
  • 整数直接量默认为int类型,但不能超出范围,若超出范围则发生编译错误
  • 运算时若超出范围,则发生溢出,溢出不是错误,需要避免

长整型

  • long 占8个字节,范围-263到263-1(-900万万亿到900万万亿多)
  • 如果表示长整型直接量,需在数字后加L
    运算时若有溢出,建议在第一个数加L

双精度浮点型

  • double 占8个字节
  • 小数直接量默认为double型
  • 如果表示float型直接量,需在数字后加F
  • 不能表示精确数据,运算时可能会发生舍入误差,精确场合不能使用

布尔型

  • boolean 占1个字节
  • 只能存储true或false
  • true和false为布尔型直接量

字符型

  • char 占2个字节
  • 采用Unicode编码格式(是世界级通用的定长字符集)
    因为符号太多了,所有Unicode有被划分为了很多个子集
    Java中char采用的是其中最常用的一个子集
  • 一个字符对应一个码 ASCII
    表现形式是字符char,本质是码(0到65535)
    ‘0’=48 ‘A’=65 ‘a’=97
  • 字符型直接量需放在单引号中,有且仅有一个
  • 特殊符号需要通过 \ 来转义

类型间的转换

基本数据类型从小到大依次为

  • byte—short—int—long—float—double
  • char—int—long—float—double

两种方式

  • 自动/隐式类型转换:从小类型到大类型
  • 强制类型转换:从大类型到小类型
  • 注意:强转有可能会溢出或丢失精度

两点规则

  1. 整数直接量可以直接赋值给byte,short,char但不能超出范围
  2. byte,short,char型数据参与运算时,系统会将其自动转换为int类型再运算

运算符(Operator)

算术运算符

+、-、*、/、%、++、- -、

  1. % 取模/取余,余数为0即为整数
  2. ++/- - 自增1/自减1,可在变量前也可在变量后
  • 单独使用时,在前后都一样
  • 被使用时,在前后不一样
  • a++的值为a,a- -的值为a
  • ++a的值为a+1,- -a的值为a-1

关系运算符

<、>、<=、>=、==、!=
关系运算的结果为boolean型
关系成立则为true,关系不成立则为false

逻辑运算符

  • && 短路与(并且)两边都为真则为真,见false则false
  • || 短路或(或者)有真则真,见true则true
  • !逻辑非(取反)非真则假,非假则真
  • 逻辑运算时建立在关系运算的基础之上的
  • 逻辑运算的结果为boolean型

赋值运算符

  • 简单赋值运算符:=
  • 扩展赋值运算符:+=、-=、*=、/=、%=
    扩展赋值运算符自带强转功能

字符串连接运算符

+

  • 若两边为数字,则做加法运算
  • 若两边出现了字符串,则做字符串连接
  • 任何类型的数据与字符串连接,结果都会变为字符串型

条件运算符

语法: boolean?数1:数2

  • 计算boolean的值:
    若为true,则整个表达式的值为?后的数1
    若为false,则整个表达式的值为:后的数2

分支结构

  • if 结构
    if…else 结构
    if…else if 结构
  • switch case 结构
    break 跳出switch

switch中的数据的类型:byte、short、int、char、String、枚举

循环结构

循环三要素:
循环变量:在整个循环过程中所反复改变的那个数

  1. 循环变量的初始化
  2. 循环的条件以循环变量为基础
  3. 循环变量的改变
  • while 结构:先判断后执行,有可能一次都不执行
  • do while 结构:先执行后判断,至少执行一次
  • for 结构:应用率最高,适合于次数相关的

break: 跳出循环
continue: 跳过循环体中剩余语句而进入下一次循环

三种循环结构如何选择:

  • 与循环次数有关选for
  • 与循环次数无关,看第1要素与第3要素的代码是否相同
    若相同,选do while
    若不同,选while

嵌套循环
多行多列使用,外层控制行,内层控制列
执行规则:外层走一次,内层循环走所有次
break默认只能跳出当前一层循环

数组

  • 是一种引用数据类型
  • 相同数据类型元素的集合

数组的定义
整型数组:默认值为0
字符数组:默认值为0
浮点型数组:默认值为0.0
布尔数组:默认值为false

数组的初始化
int[] arr = new int[3];
int[] arr = {2,5,8};
int[] arr = new int[] {2,5,8};

通过下标/索引来访问元素,下标从0开始,最大到(数组长度-1)
.length
System.arraycopy();
Arrays.copyOf();

数组的扩容
数组一旦创建,其空间不可再改变,空间是连续的
创建了一个更大的新的数组,并将数组赋值进去了

Arrays.sort

方法

也称函数,过程
作用:用于封装一段特定的业务逻辑功能
建议:尽可能独立,一个方法只干一件事
好处:可以减少代码重复,利于代码维护
方法可以被反复调用
何时用:只要是一个独立的业务,就应封装到一个方法中

方法的定义: 五要素
修饰词 返回值类型 方法名(参数列表){
方法体
}
方法的调用:

  • 无返回值:方法名(有参传参)
  • 有返回值:数据类型 变量 = 方法名(有参传参);

return

  • return 值;结束方法的执行,返回结果给调用方---------用有返回值的方法中
  • return; 结束方法的执行------------------------------------用无返回值的方法中

形参: 形式参数,定义方法时的参数为形参
实参: 实际参数,调用方法时的参数为实参
方法的签名:方法名+参数列表

System.out.println();
int a = scan.nextInt();
double d = scan.nextDouble();
double c = Math.random();
Arrays.sort();
System.arraycopy()
int[] b = arrays.coptOf();

方法的重载(overloading)

  • 发生在同一类中,方法名相同,参数列表不同
  • 编译器在编译时会根据方法的签名自动绑定方

Exception

ArrayIndexOutOfBoundException
NullPointerException

相关文章:

JAVA基础知识Fundamental

JAVA基础知识 Java开发环境名词解释 八大基本类型整型长整型双精度浮点型布尔型字符型类型间的转换 运算符&#xff08;Operator&#xff09;算术运算符关系运算符逻辑运算符赋值运算符字符串连接运算符条件运算符 分支结构循环结构数组方法方法的重载&#xff08;overloading&…...

民宿如何经营与管理?【民宿小程序】

随着旅游业的快速发展&#xff0c;越来越多的人选择经营民宿&#xff0c;将自己的房屋开放给旅客入住。然而&#xff0c;要成功经营一家民宿&#xff0c;并保持良好的运营状态&#xff0c;需要有效的管理和营销策略。在这个过程中&#xff0c;民宿小程序能够发挥重要作用。 民宿…...

用 Rust 和 cURL 库制作一个有趣的爬虫

目录 一、介绍 二、准备工作 三、代码实现 四、解析 HTML 并提取特定元素示例 总结 本文将介绍如何使用 Rust 编程语言和 cURL 库制作一个有趣的网络爬虫。我们将通过实例代码来展示如何抓取网页内容、处理数据和解析 HTML 结构。同时&#xff0c;还将探讨爬虫技术的原理、…...

华为OD 走方格的方案数(100分)【java】A卷+B卷

华为OD统一考试A卷+B卷 新题库说明 你收到的链接上面会标注A卷还是B卷。目前大部分收到的都是B卷。 B卷对应往年部分考题以及新出的题目。 我将持续更新最新题目 我精选了一部分题目免费分享给大家,可前往夸克网盘转存,请点击以下链接进入: 我用夸克网盘分享了「华为OD题库J…...

postgresql|数据库|序列Sequence的创建和管理

前言&#xff1a; Sequence也是postgresql数据库里的一种对象&#xff0c;其属性如同索引一样&#xff0c;但通常Sequence是配合主键来工作的&#xff0c;这一点不同于MySQL&#xff0c;MySQL的主键自增仅仅是主键的属性做一个更改&#xff0c;而postgresql的主键自增是需要序…...

(完全解决)如何输入一个图的邻接矩阵(每两个点的亲密度矩阵affinity),然后使用sklearn进行谱聚类

文章目录 背景输入点直接输入邻接矩阵 背景 网上倒是有一些关于使用sklearn进行谱聚类的教程&#xff0c;但是这些教程的输入都是一些点的集合&#xff0c;然后根据谱聚类的原理&#xff0c;其会每两个点计算一次亲密度&#xff08;可以认为两个点距离越大&#xff0c;亲密度越…...

Unity中Shader的ShaderLOD

文章目录 前言一、ShaderLOD的使用步骤1、ShaderLOD使用在不同的SubShader中&#xff0c;用于区分SubShader所对应的配置2、在 C# 中使用 Shader.globalMaximumLOD 赋值来选择不同的 SubShader,以达到修改配置对应Shader的效果3、在设置LOD时&#xff0c;是需要和程序讨论统一 …...

图像压缩(4)《数字图像处理》第八章 8.3节 数字图像水印

图像压缩&#xff08;3&#xff09;《数字图像处理》第八章8.3节数字图像水印 一. 前言二.章节引言三.简单综述三.本章小结四.参考文献四. 小结 一. 前言 始于那本深蓝色的大块头&#xff0c;冈萨勒斯的《数字图像处理》&#xff0c;从此走上了图像信号处理的不归路&#xff0…...

C++之lambda匿名函数总结(二百四十五)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…...

STM32F103单片机内部RTC实时时钟驱动程序

一、STM32f103系列RTC功能 RTC实时时钟功能是嵌入式软件开发中比较常用的功能&#xff0c;一般MCU的RTC功能都带有年月日时间寄存器&#xff0c;比如STM32F4xx系列&#xff0c;RTC描述如下&#xff1a; 可见F4系列的RTC功能比较强大&#xff0c;设置好初始时间后&#xff0c;读…...

ChinaSoft 论坛巡礼 | 开源软件生态健康度量论坛

2023年CCF中国软件大会&#xff08;CCF ChinaSoft 2023&#xff09;由CCF主办&#xff0c;CCF系统软件专委会、形式化方法专委会、软件工程专委会以及复旦大学联合承办&#xff0c;将于2023年12月1-3日在上海国际会议中心举行。 本次大会主题是“智能化软件创新推动数字经济与社…...

Leetcode.2698 求一个整数的惩罚数

题目链接 Leetcode.2698 求一个整数的惩罚数 rating : 1679 题目描述 给你一个正整数 n n n &#xff0c;请你返回 n n n 的 惩罚数 。 n n n 的 惩罚数 定义为所有满足以下条件 i i i 的数的平方和&#xff1a; 1 ≤ i ≤ n 1 \leq i \leq n 1≤i≤n i ∗ i i * i i∗i 的…...

大数据Flink(一百零二):SQL 聚合函数(Aggregate Function)

文章目录 SQL 聚合函数(Aggregate Function) SQL 聚合函数(Aggregate Function) Python UDAF,即 Python AggregateFunction。Python UDAF 用来针对一组数据进行聚合运算,比如同一个 window 下的多条数据、或者同一个 key 下的多条数据等。针对同一组输入数据,Python A…...

因mapjoin加载内存溢出而导致return code 3

因mapjoin加载内存溢出而导致return code 3 问题描述&#xff1a;日志定位&#xff1a; 问题描述&#xff1a; 例行Hive作业报错 日志定位&#xff1a; Starting to launch local task to process map join; maximum memory 5172101120 [2023-10-16 07:56:51,530] - INFO:…...

pip 指定源

pip定源 # 指定豆瓣 python -m pip install transformers -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com参考 出现错误&#xff1a;Looking in indexes:https://pypi.tuna.tsinghua.edu.cn/simple...

嵌入式中的MCU、ARM、DSP、FPGA

目录 “角色扮演” MCU ARM 特点 DSP 特点 FPGA 特点 应用 “角色扮演” MCU&#xff08;Microcontroller Unit&#xff09;、ARM&#xff08;Advanced RISC Machine&#xff09;、DSP&#xff08;Digital Signal Processor&#xff09;和FPGA&#xff08;Field-Progr…...

二、PHP基础学习[变量]

部分内容引用自&#xff1a;https://blog.csdn.net/lady_killer9/article/details/108978062 一、PHP基础学习 1.语法与注释 示例&#xff1a; <?php // PHP 代码/* 这是 PHP 多行 注释 */ ?>2.输出 示例&#xff1a;echo 123; 3.变量 规矩&#xff1a; 变量以 …...

k8s kubeadm配置

master 192.168.41.30 docker、kubeadm、kubelet、kubectl、flannel node01 192.168.41.31 docker、kubeadm、kubelet、kubectl、flannel node02 192.168.41.32 do…...

B-3:Web安全之综合渗透测试

B-3:Web安全之综合渗透测试 任务环境说明: 服务器场景:Server2104(关闭链接) 服务器场景用户名、密码:未知 1.通过URL访问http://靶机IP/1,对该页面进行渗透测试,将完成后返回的结果内容作为FLAG值提交; 通过访问IP/1,查看源代码发现flagishere,访问后发现什么也没…...

设计模式—设计模式总览

设计模式—设计模式总览 在 1994 年&#xff0c;由 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides 四人合著出版了一本名为 《Design Patterns - Elements of Reusable Object-Oriented Software》&#xff08;中文译名&#xff1a;《设计模式 - 可复用的面向对…...

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...

基于ASP.NET+ SQL Server实现(Web)医院信息管理系统

医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上&#xff0c;开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识&#xff0c;在 vs 2017 平台上&#xff0c;进行 ASP.NET 应用程序和简易网站的开发&#xff1b;初步熟悉开发一…...

8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂

蛋白质结合剂&#xff08;如抗体、抑制肽&#xff09;在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上&#xff0c;高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术&#xff0c;但这类方法普遍面临资源消耗巨大、研发周期冗长…...

visual studio 2022更改主题为深色

visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中&#xff0c;选择 环境 -> 常规 &#xff0c;将其中的颜色主题改成深色 点击确定&#xff0c;更改完成...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI

前一阵子在百度 AI 开发者大会上&#xff0c;看到基于小智 AI DIY 玩具的演示&#xff0c;感觉有点意思&#xff0c;想着自己也来试试。 如果只是想烧录现成的固件&#xff0c;乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外&#xff0c;还提供了基于网页版的 ESP LA…...

解读《网络安全法》最新修订,把握网络安全新趋势

《网络安全法》自2017年施行以来&#xff0c;在维护网络空间安全方面发挥了重要作用。但随着网络环境的日益复杂&#xff0c;网络攻击、数据泄露等事件频发&#xff0c;现行法律已难以完全适应新的风险挑战。 2025年3月28日&#xff0c;国家网信办会同相关部门起草了《网络安全…...

人工智能--安全大模型训练计划:基于Fine-tuning + LLM Agent

安全大模型训练计划&#xff1a;基于Fine-tuning LLM Agent 1. 构建高质量安全数据集 目标&#xff1a;为安全大模型创建高质量、去偏、符合伦理的训练数据集&#xff0c;涵盖安全相关任务&#xff08;如有害内容检测、隐私保护、道德推理等&#xff09;。 1.1 数据收集 描…...

0x-3-Oracle 23 ai-sqlcl 25.1 集成安装-配置和优化

是不是受够了安装了oracle database之后sqlplus的简陋&#xff0c;无法删除无法上下翻页的苦恼。 可以安装readline和rlwrap插件的话&#xff0c;配置.bahs_profile后也能解决上下翻页这些&#xff0c;但是很多生产环境无法安装rpm包。 oracle提供了sqlcl免费许可&#xff0c…...

PH热榜 | 2025-06-08

1. Thiings 标语&#xff1a;一套超过1900个免费AI生成的3D图标集合 介绍&#xff1a;Thiings是一个不断扩展的免费AI生成3D图标库&#xff0c;目前已有超过1900个图标。你可以按照主题浏览&#xff0c;生成自己的图标&#xff0c;或者下载整个图标集。所有图标都可以在个人或…...

2025年- H71-Lc179--39.组合总和(回溯,组合)--Java版

1.题目描述 2.思路 当前的元素可以重复使用。 &#xff08;1&#xff09;确定回溯算法函数的参数和返回值&#xff08;一般是void类型&#xff09; &#xff08;2&#xff09;因为是用递归实现的&#xff0c;所以我们要确定终止条件 &#xff08;3&#xff09;单层搜索逻辑 二…...