详细解释java当中的所有知识点(前言及数据类型及变量)(第一部分)
会将java当中的所有的知识点以及相关的题目进行分享,这是其中的第一部分,用红色字体标注出重点,以及加粗的方式进行提醒
目录
一、Java语言概述
1.Java语言简介
2.语言优势
二、main方法
1.Java程序结构组成
2.运行Java程序
3.注释
4.标识符
硬性规则
建议
5.关键字
三、数据类型与变量
1.字面常量
2.数据类型
3.变量
1.语法
2.整型变量
3.长整型变量
4.短整型变量
5.字节型变量
6.双精度浮点型
神奇事件:
7.单精度浮点数
8.字符型变量
9.布尔型变量
4.类型转换
自动类型转换【隐式】
强制类型转换【显式】
5.类型提升
1.int与long之间(int会被提升为long)
2.byte与byte的运算
总结:
四、字符串类型
1.int转成String(valueOf函数)
2.String转成int(parseInt函数)
总结:
一、Java语言概述
1.Java语言简介
Java是一种优秀的程序设计语言
Java是一个有一系列计算机软件和规范形成的技术体系(该技术体系提供了完整的用于软件开发和跨平台部署的支持环境)
1.语言广泛使用:在TIOBE编程语言社区排行非常靠前,成为了最火的编程语言之一
2.工作领域是非常广泛的:企业级系统;web开发;Android平台应用;大数据平台开发
2.语言优势
1.“Write once,Run anywhere”,一次编译,到处运行
2.语言特性:
a.简单性:相对于C++做了一个减法
b.面向对象:依靠对象之间的交互来完成工作
c.分布式:Java当中有丰富的例程库,用于处理HTTP和FTP之类的TCP/IP协议
d.健壮性:Java当中采用的指针模型可以消除重写内存和毁坏数据的可能性
e.安全性:Java适用于网络/分布式环境:运行时堆栈溢出,破坏自己进程空间之外的内存,未经授权读写文件
f.体系结构中立:Java编译器通过生成与特定计算机体系结构无关的字节码指令来实现
g.可移植性:基本数据类型大小以及有关运算都做了明确的说明(更加方便进行移植)
h.解释性:Java自己维护了一套基于栈结构的指令集,字节码中的文件就是按照自己的指令集来组织的
i.高性能:边解释边执行,使执行效率大幅度提升
j.多线程:带来更好的交互响应和实时行为
k.动态性:可以不断适应不断发展的环境,库当中可以自由添加新方法和实例变量
二、main方法
1.Java程序结构组成
public class HelloWorld{public static void main(String[] args){System.out.println("Hello world!");}
}
最终会打印出“Hello world!”
一个完整的Java程序,由三个部分组成
1.源文件(扩展名:*.java);原文件当中带有类的定义(类:表示一个程序的一个小的组件)
2.类:类当中有一个或者多个方法,方法必须在类的内部进行声明
3.方法:在方法的花括号当中编写方法应该执行的语句
总结:类存在源文件中;方法存在类中;语句存在方法中
2.运行Java程序
Java是一个半编译型、半解释性语言
源文件------>javac编译器------>.class(字节码组成面向JVM文件)------->java虚拟机执行------>JVM会将字节码文件转化为平台能识别
注:运行java之前,必须安装好JDK,JDK当中包含了javac和java工具,java最终是在JVM上运行的
2.JDK、JRE、JVM之间的关系

3.注释
注释分类:
单行注释(//)使用的是最多的
多行注释(/*注释内容*/)
文档注释(/**文档注释*/)
规范:
内容准确:注释与代码一致
篇幅合理;使用中文(根据具体的公司来看)
积极向上
4.标识符
在程序中由用户给类名,方法名,或者变量名所取的名字
硬性规则
标识符中可以包含:字母、数字以及下划线$符等
注:标识符不能以数字开头,也不能是关键字,且严格区分大小写
建议
类名:每个单词首字母大写
方法名:首字母小写,后面的每个单词的首字母大写
变量名:与方法名规则相同
5.关键字
关键字由java语言提前定义好的,有特殊含义的标识符,或称为保留字
权限修饰限定:
private;protected;public
类,函数,变量修饰:
abstract;final;static;synchronized
类与类关系:
extends;implements
实例及引用实例,判断实例:
new;this;super;instanceof
异常处理:
try;catch;finally;throw;throws
包关键字:
package;import
其他关键字:
native;strictfp;transient;volatile;assert
三、数据类型与变量
1.字面常量
System.out.println("Hello world!");其中的“Hello world!”是一个字面常量
字面常量(直接进行打印的这一种)
分类:
1.字符串常量:“12345”;“Hello”
2.整型常量:100;1000
3.浮点数常量:3.14;0.49
4.字符常量:‘A’;‘1’
5.布尔常量:true;false
6.空常量:null
2.数据类型
java中数据类型主要分为两种:基本数据类型和引用数据类型
基本数据类型由四类八种
1.四类:整型,浮点型,字符型,布尔类型
2.八种:
在java中所有的数据类型都是有固定的大小的

注:
不论是在16位系统还是32位系统,int都是占用4个字节,long占用8个字节
整形和浮点型都是带有符号的(正负的意思)
整型默认:int;浮点型默认:double
字符串属于引用类型
进制转化:
1KB=1024Byte;1MB=1024KB;1GB=1024MB;1Byte=8bit
3.变量
对于经常改变的内容,称为变量
数据类型就是用来定义不同种变量的
1.语法
数据类型 变量名 = 初始值;
public static void main(String[] args) {Byte a = 99;short b = 9999;int c = 999999999;long d = 999999999;float e = (float) 99.99;double f = 99.99;char g = '1';boolean h = true;}
2.整型变量
定义:
两种定义方式
public static void main(String[] args) {//方式一:定义给出初始值int a = 10;//方式二:定义时没有;在使用的时候必须要给出初始值int b;b = 10;int c = b;}
注:1.使用第二种方式,在使用之前没有赋值,编译期间会发生报错
2.定义变量时,不能超出类型的最大值
3.int的包装类为Integer
求int类型的范围方式:

3.长整型变量
定义:
两种定义方式
public static void main(String[] args) {//方式一:直接进行定义long a = 10;//方式二:为区分int与long类型,使用L进行辨别long b = 10L;}
第二种方式,除了使用L之外,还可以使用小写的l;但是小写的可能与1不能很好区分
注:1.长整型变量的后面加上L或者l,推荐加L(更加便于区分)
2.长整型不论在哪一个系统都只占用内存8个字节
3.long的包装类型为Long
求long类型的范围方式:

4.短整型变量
定义:
一种定义方式以及求short的方式:
public static void main(String[] args) {//只有这一种的定义方式short a = 10;//求short的大小问题System.out.println(Short.MAX_VALUE);System.out.println(Short.MIN_VALUE);}
注:1.short在任何情况下都是只占内存2个子节的大小
2.short的包装类为Short
5.字节型变量
定义
一种定义方式
以及求byte的大小
public static void main(String[] args) {//一种定义方式byte a = 10;System.out.println(Byte.MAX_VALUE);System.out.println(Byte.MIN_VALUE);}
最终可以将Byte的类型进行打印,求出他的范围的大小
注:1.byte在任何时刻的大小都是占1个字节
2.字节的包装类为Byte
6.双精度浮点型
定义
一种定义方式
public static void main(String[] args) {//一种定义方式double a = 3.14;System.out.println(Double.MAX_VALUE);System.out.println(Double.MIN_VALUE);}
神奇事件:
public static void main(String[] args) {int a = 1;int b = 2;System.out.println("a / b = "+a/b);double a1 = 1;double b1 = 2;System.out.println("a1 / b1 = "+a1/b1);}
最终打印出来的值是:
a / b = 0
a1 / b1 = 0.5
在java当中int除以int类型的值仍然是int类型
如果想要得到0.5就必须通过double的方式进行计算
注:
1.double在任何情况下斗只占8个字节
2.浮点数与整数在内存当中的存储方式不同,不能单独使用2^n的形式来计算
3.double类型的包装类为Double
4.在存储的时候是一个近似值,不是精确值
7.单精度浮点数
定义
只有一种定义方式

在定义的时候,只有一种定义方式
如果采用下面的方式就会直接发生报错
注:
1.float在java当中只占用4个字节
2.float表示的范围比较小,在工程当中是优先考虑Double
3.float的包装类型为Float
8.字符型变量
定义
只有一种定义方式
public static void main(String[] args) {//只有一种定义方式char c1 = 'A';char a2 = '帅';}
在java当中char类型是可以存放整形的
注:
1.java当中使用 单引号+单个字母 的形式表示字符字面值
2.java当中使用的是Unicode表示字符,一次一个字符占用两个字节,表示的字符种类会更多,包括中文
3.char的包装类是Character
9.布尔型变量
定义
只有一种定义方式
public static void main(String[] args) {//只有一种定义方式boolean a = true;}
其中boolean类型的取值只有两种:true;false
注:
1.java当中的boolean类型和int类型不能相互进行转化,不存在1=true;0=false的方式
2.java虚拟机规范当中,并没有明确规定boolean占了几个字节,也没有专门用来处理boolean的字节码指令,在Oracle公司的虚拟机实现中,boolean占1个字节
3.boolean的包装类是Boolean
4.类型转换
java作为一个强类型编程语言,当不同类型之间的变量相互赋值时,会有比较严格的校验
自动类型转换【隐式】
System.out.println(1024);
System.out.println(3.14);
整型默认情况下是int
浮点型默认情况下是double
特点:数据范围小的转为数据范围大的会自动进行
由数据范围大的转为数据小的情况的时候可能会出现数据丢失的现象,不是很安全
强制类型转换【显式】

注:
1.不同数字类型的变量之间赋值,范围小的可以隐式转化为范围大的
2.范围大的转化为范围小的,需要进行强制类型转化,且可能会发生数据的丢失
3.强制类型转化不一定会成功,不相干的类型是不能进行转化的
5.类型提升
1.int与long之间(int会被提升为long)

会发生数据丢失,则会出现报错
2.byte与byte的运算

出现的是不兼容的情况
总结:
1.不同类型的混合运算,范围小的会提升成为范围大的
2.对于short,byte这种比4个字节小的类型,会先提升为4个字节的int再进行计算
四、字符串类型
1.int转成String(valueOf函数)
public static void main(String[] args) {int num = 10;// 方法1String str1 = num + "";// 方法2String str2 = String.valueOf(num);}
调用String类下的函数valueOf
2.String转成int(parseInt函数)
public static void main(String[] args) {String str = "100";int num = Integer.parseInt(str);}
调用Integer下的parseInt函数实现之间的转化
总结
希望可以能够共同进步,帮助到大家,帮助到我自己,ヾ(◍°∇°◍)ノ゙
相关文章:
详细解释java当中的所有知识点(前言及数据类型及变量)(第一部分)
会将java当中的所有的知识点以及相关的题目进行分享,这是其中的第一部分,用红色字体标注出重点,以及加粗的方式进行提醒 目录 一、Java语言概述 1.Java语言简介 2.语言优势 二、main方法 1.Java程序结构组成 2.运行Java程序 3.注释 4.…...
从0开始使用面对对象C语言搭建一个基于OLED的图形显示框架(动态菜单组件实现)
目录 面对对象C的程序设计(范例) 面对对象C的程序设计(应用) 进一步谈论我上面给出的代码——继承 实现一个面对对象的文本编辑器 所以,什么是继承 重申我们对菜单的抽象 抽象菜单项目 抽象菜单动画 实现菜单功…...
Java的StackWalker类
Java的StackWalker类怎么使用 Java 中的 StackWalker 类(自 Java 9 引入)提供了一种高效且灵活的方式来访问堆栈跟踪信息。以下是其使用方法的逐步说明: 1. 基本使用:获取当前堆栈跟踪 import java.lang.StackWalker;public cla…...
农产品价格报告爬虫使用说明
农产品价格报告爬虫使用说明 # ************************************************************************** # * * # * 农产品价格报告爬虫 …...
Pwn 入门核心工具和命令大全
一、调试工具(GDB 及其插件) GDB 启动调试:gdb ./binary 运行程序:run 或 r 设置断点:break *0x地址 或 b 函数名 查看寄存器:info registers 查看内存:x/10wx 0x地址 (查看 10 个 …...
字节iOS面试经验分享:HTTP与网络编程
字节iOS面试经验分享:HTTP与网络编程 🌟 嗨,我是LucianaiB! 🌍 总有人间一两风,填我十万八千梦。 🚀 路漫漫其修远兮,吾将上下而求索。 目录 字节iOS面试经验分享:HTT…...
在汇编语言中,ASSUME 是一个用于告诉汇编器如何将段寄存器与特定段名称关联的指令
在汇编语言中,ASSUME 是一个用于告诉汇编器如何将段寄存器与特定段名称关联的指令。它主要用于定义代码段、数据段和栈段等的段寄存器使用方式,帮助编译器生成正确的代码。 具体到 ASSUME DS:DATA, CS:CODE, SS:STACK,这行代码的作用如下&…...
代码随想录_栈与队列
栈与队列 232.用栈实现队列 232. 用栈实现队列 使用栈实现队列的下列操作: push(x) – 将一个元素放入队列的尾部。 pop() – 从队列首部移除元素。 peek() – 返回队列首部的元素。 empty() – 返回队列是否为空。 思路: 定义两个栈: 入队栈, 出队栈, 控制出入…...
Ubuntu 手动安装 Open WebUI 完整指南
Ubuntu 手动安装 Open WebUI 完整指南 前提条件 在安装 Open WebUI 之前,请确保您的系统满足以下要求: Ubuntu 22.04 LTS 或更高版本Python 3.10Node.js 18Git至少 4GB 内存足够的磁盘空间(推荐 20GB 以上) 安装步骤 1. 更新…...
【Oracle篇】使用Hint对优化器的执行计划进行干预(含单表、多表、查询块、声明四大类Hint干预)
💫《博主介绍》:✨又是一天没白过,我是奈斯,从事IT领域✨ 💫《擅长领域》:✌️擅长阿里云AnalyticDB for MySQL(分布式数据仓库)、Oracle、MySQL、Linux、prometheus监控;并对SQLserver、NoSQL(…...
论文阅读(九):通过概率图模型建立连锁不平衡模型和进行关联研究:最新进展访问之旅
1.论文链接:Modeling Linkage Disequilibrium and Performing Association Studies through Probabilistic Graphical Models: a Visiting Tour of Recent Advances 摘要: 本章对概率图模型(PGMs)的最新进展进行了深入的回顾&…...
【信息系统项目管理师-选择真题】2005上半年综合知识答案和详解
更多内容请见: 备考信息系统项目管理师-专栏介绍和目录 文章目录 【第1题】【第2~3题】【第4~6题】【第7题】【第8题】【第9题】【第10~11题】【第12题】【第13题】【第14题】【第15题】【第16题】【第17题】【第18~19题】【第20题】【第21~22题】【第23题】【第24~25题】【第…...
【Matlab高端绘图SCI绘图模板】第006期 对比绘柱状图 (只需替换数据)
1. 简介 柱状图作为科研论文中常用的实验结果对比图,本文采用了3组实验对比的效果展示图,代码已调试好,只需替换数据即可生成相关柱状图,为科研加分。通过获得Nature配色的柱状图,让你的论文看起来档次更高࿰…...
【Elasticsearch】 Intervals Query
Elasticsearch Intervals Query 返回基于匹配术语的顺序和接近度的文档。 intervals 查询使用 匹配规则,这些规则由一小组定义构建而成。这些规则然后应用于指定 field 中的术语。 这些定义生成覆盖文本中术语的最小间隔序列。这些间隔可以进一步由父源组合和过滤…...
YOLOv8源码修改(4)- 实现YOLOv8模型剪枝(任意YOLO模型的简单剪枝)
目录 前言 1. 需修改的源码文件 1.1添加C2f_v2模块 1.2 修改模型读取方式 1.3 增加 L1 正则约束化训练 1.4 在tensorboard上增加BN层权重和偏置参数分布的可视化 1.5 增加剪枝处理文件 2. 工程目录结构 3. 源码文件修改 3.1 添加C2f_v2模块和模型读取 3.2 添加L1正则…...
数论问题80
命题1,证明,方程(2x)^(2x)-1y^(z1)没有正整数解。 分析:设x,y,z∈Z满足方程,当x1时,3y^(z1),无论任意y,z取任意正整数值,3y^(z1)都不成立。方程左端分解因式,…...
后端token校验流程
获取用户信息 前端中只有 await userStore.getInfo() 表示从后端获取数据 在页面中找到info对应的url地址,在IDEA中查找 这里是getInfo函数的声明,我们要找到这个函数的使用,所以点getInfo() Override public JSONObject getInfo() {JSO…...
Ansible自动化运维实战--通过role远程部署nginx并配置(8/8)
文章目录 1、准备工作2、创建角色结构3、编写任务4、准备配置文件(金甲模板)5、编写变量6、编写处理程序7、编写剧本8、执行剧本Playbook9、验证-游览器访问每台主机的nginx页面 在 Ansible 中,使用角色(Role)来远程部…...
C语言自定义数据类型详解(二)——结构体类型(下)
书接上回,前面我们已经给大家介绍了如何去声明和创建一个结构体,如何初始化结构体变量等这些关于结构体的基础知识。下面我们将继续给大家介绍和结构体有关的知识: 今天的主题是:结构体大小的计算并简单了解一下位段的相关知识。…...
OpenFeign的工作原理是什么?它第一次加载的时候为什么慢?
OpenFeign的工作原理是什么?它第一次加载的时候为什么慢? OpenFeign的工作原理 接口定义: 开发者定义一个接口,并使用 FeignClient 注解指定该接口所对应的微服务名称。在接口的方法上添加 HTTP 方法相关的注解(如 …...
LLM架构与优化:从理论到实践的关键技术
标题:“LLM架构与优化:从理论到实践的关键技术” 文章信息摘要: 文章探讨了大型语言模型(LLM)开发与应用中的关键技术,包括Transformer架构、注意力机制、采样技术、Tokenization等基础理论,以…...
Maven的单元测试
1. 单元测试的基本概念 单元测试(Unit Testing) 是一种软件测试方法,专注于测试程序中的最小可测试单元——通常是单个类或方法。通过单元测试,可以确保每个模块按预期工作,从而提高代码的质量和可靠性。 2.安装和配…...
Jetson Xavier NX 安装 CUDA 支持的 PyTorch 指南
本指南将帮助开发者完成在 Jetson Xavier NX 上安装 CUDA 支持的 PyTorch。 安装方法 在 Jetson 上安装 Pytorch 只有两种方法。 一种是直接安装他人已经编译好的 PyTorch 轮子;一种是自己从头开始开始构建 PyTorch 轮子并且安装。 使用轮子安装 可以从我的 Gi…...
AI协助探索AI新构型的自动化创新概念
训练AI自生成输出模块化代码,生成元代码级别的AI功能单元代码,然后再由AI组织为另一个AI,实现AI开发AI的能力;用AI协助探索迭代新构型AI将会出现,并成为一种新的技术路线潮流。 有限结点,无限的连接形式&a…...
Kafka 压缩算法详细介绍
文章目录 一 、Kafka 压缩算法概述二、Kafka 压缩的作用2.1 降低网络带宽消耗2.2 提高 Kafka 生产者和消费者吞吐量2.3 减少 Kafka 磁盘存储占用2.4 减少 Kafka Broker 负载2.5 降低跨数据中心同步成本 三、Kafka 压缩的原理3.1 Kafka 压缩的基本原理3.2. Kafka 压缩的工作流程…...
GWO优化GRNN回归预测matlab
灰狼优化算法(Grey Wolf Optimizer,简称 GWO),是一种群智能优化算法,由澳大利亚格里菲斯大学的 Mirjalii 等人于 2014 年提出。该算法的设计灵感源自灰狼群体的捕食行为,核心思想在于模拟灰狼社会的结构与行…...
Unity 粒子特效在UI中使用裁剪效果
1.使用Sprite Mask 首先建立一个粒子特效在UI中显示 新建一个在场景下新建一个空物体,添加Sprite Mask组件,将其的Layer设置为UI相机渲染的UI层, 并将其添加到Canvas子物体中,调整好大小,并选择合适的Spriteÿ…...
【大厂AI实践】OPPO:大规模知识图谱及其在小布助手中的应用
导读:OPPO知识图谱是OPPO数智工程系统小布助手团队主导、多团队协作建设的自研大规模通用知识图谱,目前已达到数亿实体和数十亿三元组的规模,主要落地在小布助手知识问答、电商搜索等场景。 本文主要分享OPPO知识图谱建设过程中算法相关的技…...
C# 添加、替换、提取、或删除Excel中的图片
在Excel中插入与数据相关的图片,能将关键数据或信息以更直观的方式呈现出来,使文档更加美观。此外,对于已有图片,你有事可能需要更新图片以确保信息的准确性,或者将Excel 中的图片单独保存,用于资料归档、备…...
AI大模型开发原理篇-5:循环神经网络RNN
神经概率语言模型NPLM也存在一些明显的不足之处:模型结构简单,窗口大小固定,缺乏长距离依赖捕捉,训练效率低,词汇表固定等。为了解决这些问题,研究人员提出了一些更先进的神经网络语言模型,如循环神经网络、…...
