Java语法手册 一开篇Java 程序注释// 单行注释/* 多行注释 *//** DOC注释文档注释(Java特有的文档注释,可以通过JDK Javadoc命令生成一个HTML网页给用户观看 */Java 注释的内容代码编译时候就不会考虑… 但会影响文件大小**使用编辑工具时候,可以根据颜色来观察, 是否注释生效**Java 程序的结构1.编写程序框架:pulicclass类名{//类名要和 程序文件名 相同 class声明类程序框架;//public class 修饰的类名 必须与.java 的文件名相同不然会报错找不到Class}/* 注意: 一个.Java 源文件内可以声明多个 class类,但只可以有一个声明为 public 的,声明public 的类的类名必须和源文件相同! javac 编译时: 会生成一个 或 多个 .class字节码文件,源文件中有几个class类就编译出几个 .class文件!文件名就是类名~) 每一个类, JVM 编译时候都会产生一个 .class 字节码文件*/2.mian()方法程序入口publicstaticvoidmain(String[]args){//main 程序入口开始地方; 它有固定的书写格式;}3.打印语句:System.out.println(打印内容);//去掉 ln print(); 表示打印 不换行内容;总结:pulicclass类名{publicstaticvoidmain(String[]args){System.out.println(hello world);}}/* Java源文件以“java”为扩展名,源文件的基本组成部分是类class Java应用程序的执行入口是main()方法。它有固定的书写格式 public static void main(String[] args) {...} Java语言严格区分大小写。 Java方法由一条条语句构成每个语句以“;”结束。 大括号都是成对出现的缺一不可。 一个源文件中最多只能有一个public类。其它类的个数不限如果源文件包含 一个public类则文件名必须按该类名命名。 */变量与运算符关键字和保留字关键字定义被Java语言赋予了特殊含义用做专门用途的字符串单词程序开发说实话单词并不多但该背还是得背的特点被Java语言赋予了特殊含义用做专门用途的字符串单词用于定义数据类型的关键字classinterfaceenumbyteshortintlongfloatdoublecharbooleanvoid用于定义流程控制的关键字ifelseswitchcasedefaultwhiledoforbreakcontinuereturn用于定义访问权限修饰符的关键字privateprotectedpublicdefault//默认不声明即可用于定义类,函数,变量修饰符的关键字abstractfinalstaticsynchronized用于定义类与类之间关系的关键字extendsimplements用于定义建立实例及引用实例判断实例的关键字newthissuperinstanceof用于异常处理的关键字trycatchfinallythrowthrows用于包的关键字packageimport其他修饰符关键字nativestrictfptransientvolatileassert用于定义数据类型值的字面值truefalsenull保留字(reserved word)现有Java版本尚未使用但以后版本可能会作为关键字使用。自己命名标识符时要避免使用这些保留字gotoconst变量变量:源于数学,是计算机语言中存储计算结果 或 值的抽象概念变量是存储数据的基本单元,不同变量相互独立**变量的声明:**1.变量类型:不同变量类型存储不同的资源,egintdoubleString...//不同编程语言的类型写法也有不同2.变量名:变量是一个存储数据的基本单元,程序为了方便访问给每个变量起名 称为 变量名(so 变量名不可以相同)3.变量值:变量存储的实际资源信息**赋值运算符**1.声明变量的类型2.并给它命名3.将相应的数据放进变量中去 等号 赋值;//Java是一种强语言,声明变量必须指定其类型: 类型 变量名 值;//对于JS(JavaScript)弱语言可以不用指定变量类型: var 变量名 值;赋值:使用 等号,给这个变量赋值这个变量代表这个值...扩可以连续赋值inti1,q2;//同时赋值多个~ int i,q; iq2; //同时符多个对象值;注意1.方法中使用了未赋值的变量运行过程中会报错(程序逐行执行,变量为声明内存中并没有存在,无法找到,编译都不通过)//成员变量在声明时系统会赋默认值...2.变量名不能重复3.等号赋值变量名命名规则(可以中文^^,但别用可以装逼~,后面你会知道中午乱码是有多头疼):规则必须遵守救像法律一样(不然语法爆错)而规则不一定要遵守但是优秀程序员的标配1.变量名只能字母,下划线 _ $ 符号开头2.可以包括数字但不能开头3.除了下划线_$ 不可以包含其他字符4.不能使用Java语言的关键字/保留字 eg:intString...建议:尽量使用有意义的变量名 不然 a,b,c...没有意义 长时间会不容易辨别 使用(见名知议)注意:Java采用unicode字符集,因此标识符可以使用汉字声明,但不建议使用!(在公司规矩得被骂死)Java命名规范在起名字时为了提高阅读性要尽量有意义“见名知意”。Java采用unicode字符集因此标识符也可以使用汉字声明但是不建议使用项目名 首字母大写,多个单词组成其他单词首字母大写;包名 多单词组成时所有字母都小写xxxyyyzzz 类名、接口名 多单词组成时所有单词的首字母大写XxxYyyZzz大驼峰命名法)类名、接口名 多单词组成时第一个单词首字母小写第二个单词开始每个单词首字母大写xxxYyyZzz 小驼峰命名法)常量名 所有字母都大写。多单词时每个单词用下划线连接XXX_YYY_ZZZJava八大基础的数据类型:数据类型基本数据类型之间可以进行程序算术运算~~Boolean(1字节)boolean类型: 布尔类型,只有两种结果,用于表示程序真true 假false 整数类型(1字节)byte 取值: 范围 -128~127;//byte b126;(2字节)short //short s123;(4字节)int 整型: 表示整数1.2.3... //int i1;(8字节)Long 长整型和int 一样存储 长度比 int 更大 //long long12313241L;为防止整数过大加L(可以不加自动类型转换,但数值过大不加L 会报错)浮点数类型(4字节)float 单精度浮点数: 尾数可以精确到7位有小数 //float f12.3f;必须要有小数点,值范围比 long都大(必须要加f double类型比它大!!)(8字节)double 双精度浮点数: 带小数的数字1.22... //double d1.0;要有小数数,且是 float的两倍;字符型(2字节)char 字符型:单子符男,A一个值(必须: 有且必须有一个字符,不能不放!)//char c单;单子符(占用内存2字节1字符)//单子符 A,B 是两个字符, char 表示单字符,char 的单字符都可以使用(int)强转成一个整型的 数值~(ASCll码);char aa;System.out.print((int)a);// 输出97;a字符的 ASCll码, so 也可以这样写 int ia;i97;但不建议哦!char a97;Sysyem.out.print(a);// 输出 a;因为97没有被单引号包起来,是以一种ASCll码进行赋值;表示a;//转义字符除外, char c\n;表示一个换行符,赋值给 c;//使用 Unicode 表示字符型 变量;char c6\u...;//\u后面 特定的 Unicode编码表示字符,没匹配编码则回返回一个问号!;注意: char运算使用时会进行Ascll码转换 char aa;Sysyem.out.print(a1);得98String 引用类型Java 引用数据类型 String String 字符串型: 表示一串字符 如: 员工名... String swsm 最帅;String 与其它8种基本数据类型拼接返回都是String类型;注意: 对象是程序中,的一种存储单位, 所以不同的类型对象,在程序内存中也占用,不同的空间;程序运算符:运算符是一种特殊的符号用以表示数据的运算、赋值和比较等。算术运算符赋值运算符比较运算符关系运算符逻辑运算符位运算符三元运算符算术运算符Java 中算术运算符:Java中用于计算的 预算符; 加 求操作数的和 - 减 求操作数的差 * 乘 求操作数的乘积 / 整除 除法操作 求操作数的 尚5/2 和5÷2 一样结果 是2商 % 除于 除于 两个数相除 于的数5%2 结果1; 加加 指变量 在原有基础上 自行 1 -- 减减 指变量 在原有基础上 自行-1//注意 -- 在前在后 i 和 i 有时用法还不一样:!!代码运行时,在前先加1在执行程序,在后先执行程序在1-- 同理 扩:-*/%:就是一种简介方法~(推荐)算术运算符的注意问题: 如果对负数取模,可以把模数负号忽略不记如5%-21但被模数是 负数则不可忽略.此外,取模运算的结果不一定总是整数 对于除号“/”它的整数除和小数除是有区别的 整数之间做除法时只 保留整数部分而舍弃小数部分 例如int x3510;xx/1000*1000;x的结果是:3000“”除字符串相加功能外还能把非字符串转换成字符串 例如 System.out.println(“55”55);//打印结果是5555? 程序: 从上往下,左往右执行,55字符串 5数值,默认转换成:555字符串在与数值5相加!赋值运算符符号当两侧数据类型不一致时可以使用自动类型转换或使用强制 类型转换原则进行处理。支持连续赋值扩展赋值运算符, -, *, /, %比较运算符关系运算符比较运算符的结果都是boolean型也就是要么是true要么是false比较运算符“”不能误写成“”关系运算符: //JAVA 用于比较大小,长短,多少...运算符 关系运算符 结果boolean类型:大于 用于比较大小 结果 false/true:小于 用于比较大小 结果 false/true:大于等于....:小于等于....:等于....//:与一个赋值 一个用于判断: 左边的值与右边的值比较 是否一致;: 右边的值赋给左边;!:不等于..instanceof 检查是否是类的对象Helloinstanceof Stringtrue逻辑运算符短路用法与 程序判断,(truetrue)两边都为true则返回true,一个不成立则返回false||或: 程序判断,(true||true)两边只要有一个true则返回true,都不成立则返回false 非短路用法与同上|或同上 但,和|||有区别 单时,左边无论真假,右边都进行运算;双时,如果左边为真,右边参与运算,如果左边为假那么右边不参与运算 “|”和“||”的区别同理||表示当左边为真,右边不参与运算!对结果值取反~ ^ 比较两边结果一样则false,不一样则true位运算符了解知道即可不常用看底层时候也许会看见Java 位运算符:适用于数值类型运算左移32:3左移两位 结果就是3*2*212;左移几位就是 *几次2;注意数值移动太多数值会出问题;(二级制~ 最后会出现负数)左移在一定范围内 相当于*2右移31:3右移一位 结果就是3/21;右移几位就是 /几次2;注意数值移动太多数值会出问题;右移在一定范围内 相对于/2 //左右移,程序的底层都是 二级制,0101010... 左移就是数值的 二进制码向左移动两位缺的用0补齐 ,右移就是 二进制的数象右移两位。缺的就以最高位补全表示;无符号右移31:3无符号右移一位等于3/21;(后面讲解)二进制码 最高位无论是0或1 都一0表示成为一个正数;与运算符 二进制码0:true1:false 将两个二级制码逐个位 码进行比较,返回成一个新的二级制码;就是它的结果;|或运算符 二进制码0:true1:false 将两个二级制码逐个位 码进行比较,返回成一个新的二级制码;就是它的结果;^ 异预算符 二进制码0:true1:false 将两个二级制码逐个位 码进行比较,返回成一个新的二级制码;就是它的结果;~ 取反运算 取其 数值 二进制码的 反过来的 二级制码,表示的数;(图:取反位运算)注意:(图与或异位运算符)|^ 是逻辑运算符还是位预算符,取决于,它操作数据的类型,返回 boolean就是逻辑,数值类型就是位运算符;小知识计算机存储单元:字符编码 ASCLL码在计算机内部所有数据都使用二进制表示。每一个二进制位bit位有 0 和 1 两种状态因此1字节等于8bit8 个二进制位就可以组合出 256 种状态;2∧8一个字节一共可以用来表示 256 种不同的状态每一个状态对应一个符号就是 256 个符号从0000000 到 11111111为了方便程序员与计算机更有效的沟通上个世纪60年代美国制定了一套字符编码对英语字符与二进制位之间的关系做了统一规定。这被称为ASCII码ASCII码一共规定了128个字符的编码比如:空格“SPACE”是32二进制00100000大写的字母A是65二进制01000001这128个符号包括32个不能打印出来的控制符号只占用了一个字节的后面7位最前面的1位统一规定为0缺点ASCLL码大大提高了程序与计算机的交互但不同国家有不同的语言…相同的编码表示的字符不一样比如130在法语编码中代表了é在希伯来语编码中却代表了字母Gimel因此出现了乱码的概念~Unicode 编码乱码乱码世界上存在着多种编码方式同一个二进制数字可以被解释成不同的符号。因 此要想打开一个文本文件就必须知道它的编码方式否则用错误的编码方式解读 就会出现乱码。Unicode一种编码将世界上所有的符号都纳入其中。每一个符号都给予一个独一 无二的编码使用 Unicode 没有乱码的问题。Unicode 的缺点:Unicode 只规定了符号的二进制代码却没有规定这个二进制代码 应该如何存储三个字节表示一个字符...计算机无法区别 Unicode 和 ASCII计算机无法区分三个字节表示一个符号 还是分别表示三个符号。另外我们知道英文字母只用一个字节表示就够了如果 unicode统一规定每个符号用三个或四个字节表示那么每个英文字母前都必然有 二到三个字节是0这对于存储空间来说是极大的浪费。UTF-8UTF-8 是在互联网上使用最广的一种 Unicode 的实现方式。UTF-8 是一种变长的编码方式。它可以使用 1-6 个字节表示一个符号根据不同的符号而变化字节长度UTF-8的编码规则:对于单字节的UTF-8编码该字节的最高位第一位为0其余7位用来对字符进行编码等同于 ASCII码对于多字节的UTF-8编码如果编码包含 n 个字节那么第一个字节的前 n 位为1第一个字节的第 n1 位为0该字节的剩余各位用来对字符进行编码。在第一个字节之后的 所有的字节都是最高两位为10其余6位用来对字符进行编码。假设一个三字节编码1字节是8位00000000 00000000 00000000第一个字节的前 n 位为100100000 00000000 00000000第一个字节的第 n1 位为000100000 00000000 00000000在第一个字节之后的 所有的字节都是最高两位为1000100000 10000000 10000000其余6位用来对字符进行编码这样当面对一连串的字节计算机可以区分这个字符是几个字节组成!动态的增减字节节省空间当遇到 第一位是0就当一个字节处理但下一个字节第一位是 1这根据这个字节第一个 10判断出该字节的个数节省空间总结属于字符集的一种,最初为了方便与计算机通信,定义的一个规范字符语言是基于拉丁字母的一套电脑编码系统主要用于显示现代英语和其他西欧语言…ASCII第一次以规范标准的类型发表是在1967年最后一次更新则是在1986年到目前为止共定义了128个字符信息在计算机上是用二进制表示的这种表示法让人理解就很困难。为保证人类和设备设备和计算机之间能进行正确的信息交换人们编制的统一的信息交换代码这就是ASCII码表它最初是美国国家标准供不同计算机在相互通信时用作共同遵守的西文字符编码标准后被ISO及CCITT等国际组织采用。每个数值: 表示一个字母 或 特殊符号发展:ASCLL是针对与美国英语的一种计算机字符集,不同国家为了方便与计算机通信出现了很多种字符集!..但,虽然与计算机之间完成通信了,但是不同国家之间不同字符集有产生了不同的影响为了统一出现了 Unicode —后来又衍生出了— UTF-8!(中文字节的字符集 GBK)
企业数字化 ERP 产品动态
相关推荐
分布式日志处理:ELK+Kafka实现日志收集 分布式日志处理:
Sleuth实现微服务跟踪
ELKKafka实现日志收集系统
背景: 主要针对,分布式项目!对多个模块的日志进行管理… 在传统项目中,如果在生产环境中,有多台不同的服务器集群, 如果生产… · 2026/11/6 1:11:14
@Validated和@Valid区别 Validated和Valid区别
借鉴文章:大佬文章 防止文章链接会过期,就搬运了!
基础参数校验: Validated
就不过多演示了… 分组:
定义接口 ,根据接口 将不同的校验规则分给不同的组,在使用时&… · 2026/11/6 1:11:14
800VDC固态直流断路器两级选择性保护:125A与1250A配合实战 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/6 1:10:14
Linux:虚拟文件系统/proc和self进程 相关阅读
Linuxhttps://blog.csdn.net/weixin_45791458/category_12234591.html?spm1001.2014.3001.5482 目录 /proc目录 self进程 /proc目录 在Linux操作系统中,目录/proc是一个虚拟文件系统,称为procfc,用于访问内核和系统的实时状态信息… · 2026/11/6 1:15:15
10 行代码给噪声 3D 网格做清洗:PyTorch3D 网格预处理笔记 10 行代码给噪声 3D 网格做清洗:PyTorch3D 网格预处理笔记 【免费下载链接】pytorch3d PyTorch3D is FAIRs library of reusable components for deep learning with 3D data 项目地址: https://gitcode.com/gh_mirrors/py/pytorch3d
PyTorch3D 没有内置边折… · 2026/11/6 1:15:15
iloader安装实操:3个平台,从插上iPhone到装好第一个App iloader安装实操:3个平台,从插上iPhone到装好第一个App 【免费下载链接】iloader User friendly sideloader 项目地址: https://gitcode.com/GitHub_Trending/iloa/iloader
iloader 是一款免费开源的 iOS 侧载工具:不走 App Store,用你自己的 Apple ID 当"开发者账… · 2026/11/6 1:15:15
Jellyfin Desktop 完整指南:从安装到连上媒体库,10 分钟一步到位 Jellyfin Desktop 完整指南:从安装到连上媒体库,10 分钟一步到位 【免费下载链接】jellyfin-desktop Jellyfin Desktop Client 项目地址: https://gitcode.com/GitHub_Trending/je/jellyfin-desktop
网页端播放器拖个进度条总要等两秒,… · 2026/11/6 1:15:15
iloader iOS 侧载指南:点一次按钮装好 SideStore 的完整教程 iloader iOS 侧载指南:点一次按钮装好 SideStore 的完整教程 【免费下载链接】iloader User friendly sideloader 项目地址: https://gitcode.com/GitHub_Trending/iloa/iloader
iloader 是一款开源免费的 iOS 侧载(安装 App Store 之外的应用&am… · 2026/11/6 1:15:15
如何批量拿到带时间轴的完整歌词:163MusicLyrics 歌词工具使用指南 如何批量拿到带时间轴的完整歌词:163MusicLyrics 歌词工具使用指南 【免费下载链接】163MusicLyrics 云音乐歌词获取处理工具【网易云、QQ音乐】 项目地址: https://gitcode.com/GitHub_Trending/16/163MusicLyrics
给视频配字幕,歌词却只有网页上… · 2026/11/6 1:14:15
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:27:59
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:28:03
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:28:07
三菱PLC数据采集到数据库的时序设计:Python+MC协议实战 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/6 1:02:11
ASIC主模式RTL设计:状态机与三态驱动的流片级实现 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/6 1:02:11
STM32嵌入式C++开发:GDB调试与Renode仿真实战指南 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/6 1:02:11
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:27:59
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:28:03
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:28:07