花几千上万学习Java,真没必要!(二)

1、注释:

java代码注释分3种:
单行注释://注释信息
多行注释: /*注释信息*/
文档注释:/**注释信息*/

public class TestComments {// 这是单行注释,用于注释单行代码或解释代码功能/* 这是多行注释,用于注释多行代码或详细说明代码功能这里可以包含多行文字*//*** 这是文档注释,用于生成文档,包括类、方法、参数和返回值的描述*/public static void main(String[] args) {// 单行注释示例int x = 5; // 定义并初始化变量x为5/* 多行注释示例定义并初始化变量y为10*/int y = 10;// 输出变量x和y的值System.out.println("x = " + x);System.out.println("y = " + y);}
}

2、关键字:

Java关键字是预先定义的有特别意义的单词,它们对Java的编译器有特殊的意义,用于表示数据类型、程序结构等。Java一共有53个关键字,包括48个关键字和2个保留字(未来可能用作关键字),以及3个特殊直接量。
以下是Java中的关键字及其简要说明:

关键字       说明
abstract    表明类或者成员方法具有抽象属性
assert    断言,用来进行程序调试
boolean    基本数据类型之一,声明布尔类型的关键字
break    提前跳出一个块
byte    基本数据类型之一,字节类型
case    用在switch语句之中,表示其中的一个分支
catch    用在异常处理中,用来捕捉异常
char    基本数据类型之一,字符类型
class    声明一个类
continue    回到一个块的开始处
default    默认,例如用在switch语句中,表明一个默认的分支
do    用在do-while循环结构中
double    基本数据类型之一,双精度浮点数类型
else    用在条件语句中,表明当条件不成立时的分支
enum    枚举
extends    表明一个类型是另一个类型的子类型
final    表示不可变,最终的
finally    用于处理异常情况,用来声明一个基本肯定会被执行到的语句块
float    基本数据类型之一,单精度浮点数类型
for    一种循环结构的引导词
if    条件语句的引导词
implements    表明一个类实现了给定的接口
import    表明要访问指定的类或包
int    基本数据类型之一,整数类型
interface    接口
instanceof    用来测试一个对象是否是指定类型的实例对象
long    基本数据类型之一,长整数类型
native    用来声明一个方法是由与计算机相关的语言(如C/C++语言)实现的
new    用来创建新实例对象
package    包
private    私用模式,访问控制修饰符
protected    保护模式,访问控制修饰符
public    公用模式,访问控制修饰符
return    从成员方法中返回数据
short    基本数据类型之一,短整数类型
static    表明具有静态属性
strictfp    用来声明FP_strict(单精度或双精度浮点数)表达式遵循IEEE 754算术规范
super    表明当前对象的父类型的引用或者父类型的构造方法
switch    分支语句结构的引导词
synchronized    表明一段代码需要同步执行
this    指向当前实例对象的引用
throw    抛出一个异常对象
throws    声明在当前定义的成员方法中所有需要抛出的异常
transient    声明不用序列化的成员域
try    尝试一个可能抛出异常的程序块
void    声明当前成员方法没有返回值
volatile    表明两个或者多个变量必须同步地发生变化
while    用在循环结构中2个保留字
Java中有两个保留字,它们目前不是关键字,但未来可能用作关键字:const:保留关键字,没有具体含义,是一个类型修饰符,使用const声明的对象不能更新。
goto:保留关键字,没有具体含义,指定跳转到标签。
3个特殊直接量
虽然它们不是关键字,但在Java中有特殊含义:true:布尔类型的真值
false:布尔类型的假值
null:空值

3、数据类型:

Java数据类型主要分为两大类:基本数据类型和引用数据类型。

一、基本数据类型
基本数据类型是Java中不可变的值类型,它们直接包含数据值,并且存储在栈内存中。Java共有八种基本数据类型,具体可以分为以下三类:

数值类型:
byte:字节型,占用1个字节(8位),取值范围为-128到127。
short:短整型,占用2个字节(16位),取值范围为-32768到32767。
int:整型,占用4个字节(32位),取值范围为-2147483648到2147483647。这是最常用的整数类型。
long:长整型,占用8个字节(64位),取值范围为-9223372036854775808到9223372036854775807。当数值很大或很小,超出一个int的范围时,可以使用long。
float:单精度浮点型,占用4个字节(32位),用于存储带小数点的数字。
double:双精度浮点型,占用8个字节(64位),用于存储带有小数点的数字。这是最常用的浮点数类型。
字符类型:
char:字符型,占用2个字节(16位),用于存储单个字符。在Java中,char类型的字面量必须使用半角的单引号括起来。
布尔类型:
boolean:布尔型,占用1个字节,只有两个值:true和false。用于判断真或假。
二、引用数据类型
引用数据类型不是直接包含数据值,而是存储了对象的引用(即对象的内存地址)。Java中的引用类型主要有三种:

类(Class):类是一种用户定义的数据类型,它可以包含属性(变量)和方法。类可以用来创建对象的实例,并存储有关该对象的信息。
接口(Interface):接口是一种特殊的类,它定义了一组方法但没有实现这些方法。接口可以用来定义一组相关的方法和常量,并可以在其他类中实现这些方法。
数组(Array):数组是一种特殊的数据结构,可以存储多个相同类型的元素。数组可以是基本数据类型或引用数据类型的数组。
三、其他数据类型
Java中还有一些特殊的数据类型,如字符串(String)。字符串是由字符组成的序列,用于存储和操作文本数据。字符串在Java中是不可变的,即一旦创建了一个字符串对象,就不能修改它的内容。

4、数据类型转换:

自动数据类型转换:

package test.com;
public class AutoTypeConversionDemo {  public static void main(String[] args) {  //当一个byte、short或char类型的值赋给一个更大范围的整型(如int、long)变量时,会发生自动类型转换.// 声明一个byte类型的变量  byte b = 100;  // 自动数据类型转换:byte到short,short到int,int到long,long到float,float到double  // 注意:byte -> int的转换是自动的,尽管这里直接将其赋值给了一个short类型的变量  // 但实际上,byte首先被提升为int,然后再被赋值给short(因为short类型的变量可以接受int类型的值,只要这个值在short的范围内)  // 这里直接演示byte到int的自动转换,并通过显式转换到short以避免编译器警告  short s = (short) b; // 显式转换,直接赋值给short通常不需要(但会有警告)  // byte到int的自动转换  int i = b;  // int到long的自动转换  long l = i;  // long到float的自动转换(注意:这可能会导致精度丢失)  float f = l;  // float到double的自动转换  double d = f;  // 打印结果,以验证转换  System.out.println("byte to int: " + i);  System.out.println("int to long: " + l);  System.out.println("long to float: " + f);  System.out.println("float to double: " + d);  // 演示char到int的自动转换(因为char在内部是以Unicode值存储的,即一个整数)  char c = 'A';  int charAsInt = c;  System.out.println("char to int (Unicode value): " + charAsInt); // 输出65,因为'A'的Unicode值是65  }  
}

 强制数据类型转换:

package test.com;
public class ExplicitTypeConversionDemo {  //强制数据类型转换(也称为显式类型转换)是当尝试将一个大范围数据类型的值赋给一个小范围数据类型的变量时,需要明确告诉编译器我们想要进行这种转换的方式。//这种转换可能会导致数据丢失或溢出,因为小范围的数据类型可能无法容纳大范围数据类型中的所有值。public static void main(String[] args) {  // 声明一个double类型的变量  double doubleValue = 123.456;  // 尝试将double类型的值赋给int类型的变量,这会导致编译错误  // int intValue = doubleValue; // 编译错误  // 使用强制类型转换将double类型的值赋给int类型的变量  // 注意:这会丢失小数部分,只保留整数部分  int intValue = (int) doubleValue;  // 打印结果,以验证转换  System.out.println("After casting double to int: " + intValue); // 输出:After casting double to int: 123  // 另一个示例:将float类型的值强制转换为byte类型  // 注意:这可能会导致溢出,因为byte的范围是-128到127  float floatValue = 255.0f; // float类型,f或F后缀表示这是一个float字面量  byte byteValue = (byte) floatValue; // 强制转换  // 打印结果,注意可能的溢出  System.out.println("After casting float to byte: " + byteValue); // 输出可能是-1,因为255超出了byte的范围  }  
}

5、常量:

a、字符串常量 

字符串常量直接在代码中使用
String greeting = "Hello, World";通过变量存储字符串常量的值
String message1 = "Welcome";
String message2 = "to Java";
String fullMessage = message1 + " " + message2; // fullMessage 的值为 "Welcome to Java"

 b、整数常量

整数常量默认为int类型,如果希望表示长整型常量,需要在数字后加上L或l来表示。例如:int number1 = 100; // 十进制整数常量
int number2 = 012; // 八进制整数常量,表示十进制10
int number3 = 0xFF; // 十六进制整数常量,表示十进制255long bigNumber = 123456789012345L; // 长整型常量整数常量在编程中经常用于表示具体的数值,例如计数器、索引等,可以直接在代码中使用整数常量来表示固定的整数值。

c、小数常量

小数常量默认为double类型,如果希望表示单精度浮点型常量,需要在数字后加上f或F来表示。例如:double pi = 3.14159; // 双精度浮点型常量
float height = 1.72f; // 单精度浮点型常量小数常量在编程中经常用于表示需要精确的小数值,如计算圆周率、表示身高等,可以直接在代码中使用小数常量来表示固定的小数值。

d、字符常量 

字符常量是在程序中直接表示一个字符的固定值。在 Java 中,字符常量使用单引号 ' ' 包围。例如,'A'、'b'、'7' 等都是字符常量。字符常量可以是一个普通的可打印字符(如字母、数字、标点符号)或者是一些特殊的控制字符(如换行符、制表符等)。特殊的字符在字符常量中使用转义字符来表示,如 '\n' 表示换行符,'\t' 表示制表符。字符常量是基于 Unicode 编码的,每个字符常量实际上代表一个 Unicode 字符。下面是一些字符常量的示例:char letter = 'A'; // 表示字母'A'
char number = '5'; // 表示数字'5'
char space = ' '; // 表示空格字符
char newline = '\n'; // 表示换行符
char tab = '\t'; // 表示制表符字符常量在编程中经常用于表示单个字符,比如在处理字符串、输入输出操作等场景下。在Java中,可以直接在代码中使用字符常量来表示一个特定的字符。

 e、布尔常量

布尔常量的类型是 boolean,只有两个取值:true(真)和false(假),布尔常量用来表示逻辑状态或条件的真假。布尔常量主要用于控制流程、判断条件以及逻辑运算。布尔常量的示例:boolean isTrue = true;
boolean isFalse = false;布尔常量在编程中经常用于条件判断语句(如 if 语句、while 循环等)以及逻辑运算(如与、或、非等),帮助程序根据不同的条件来执行不同的代码段。

f、 null

空常量指的是一个特殊的常量值,表示没有指向任何对象的引用,空常量对应的是 null 值。
null 也是一个关键字,用于表示一个变量没有引用任何对象。当一个对象被赋予 null 值时,表示这个对象不指向任何内存位置,即为空。null通常用于初始化变量,表示该变量目前没有指向任何实际的对象。在对应使用这个变量时,需要注意判断是否为空,以避免空指针异常。
例如:
String str = null;
str 变量被初始化为 null,表示没有指向任何字符串对象。当尝试访问 str 变量所引用的对象时,需要先进行空指针检查,以确保不会出现空指针异常。

6、变量

变量的声明:

package test.com;
public class VariableDemo {  public static void main(String[] args) {  // 声明整型变量  int number = 10;  // 声明浮点型变量  double pi = 3.14;  // 声明字符型变量  char letter = 'A';  // 声明布尔型变量  boolean isTrue = true;  // 声明并初始化字符串变量  //字符串不是基本数据类型,而是String类的对象。String greeting = "Hello, World!";  // 打印变量值  System.out.println("Number: " + number);  System.out.println("PI: " + pi);  System.out.println("Letter: " + letter);  System.out.println("Is True: " + isTrue);  // 打印字符串  System.out.println(greeting); }  
}

 变量的作用域:

package test.com;
//变量的作用域是指变量在程序中可以被访问的区域。
//在Java中,变量的作用域取决于声明它的位置。
//局部变量:在方法、构造函数或代码块中声明的变量。它们的作用域是从声明点开始到包含它的代码块结束。
//实例变量(也称为字段):在类的方法外部但在类内部声明的变量。它们的作用域是整个类,但只能被该类的实例访问。
//类变量(也称为静态变量):使用static关键字声明的变量。它们的作用域是整个类,但可以通过类名直接访问,而不需要创建类的实例。
public class ScopeDemo {  // 类变量  static int classVar = 100;  public static void main(String[] args) {  // 方法变量  int methodVar = 200;  // 局部变量  {  int blockVar = 300;  System.out.println("Block Variable: " + blockVar); // blockVar 只能在当前块中访问  }  // 类变量和方法变量都可以在这里访问  System.out.println("Class Variable: " + classVar);  System.out.println("Method Variable: " + methodVar);  // blockVar 在这里不能访问,因为它只在定义它的块中可见  }  
}

 7、标识符

标识符是用来给变量、方法、类、接口等命名的字符串。
标识符的命名规则遵循以下基本原则:

首字符:标识符的首字符可以是字母(A-Z 或 a-z)、美元符号($)或下划线(_)。注意,首字符不能是数字(0-9)。
后续字符:除了首字符外的后续字符可以是字母、数字、美元符号($)或下划线(_)。
关键字:Java中的关键字(如class、int、return等)不能用作标识符。
大小写敏感:Java是大小写敏感的语言,因此MyClass和myclass会被视为两个不同的标识符。
长度:理论上,标识符的长度没有限制,但出于可读性和实用性的考虑,应避免使用过长的标识符。
命名约定:虽然Java没有强制的命名约定,但遵循一定的命名习惯(如驼峰命名法)可以使代码更易于阅读和维护。例如,变量名和方法名通常以小写字母开头,随后的单词首字母大写(小驼峰命名法),而类名则以大写字母开头,随后的单词首字母也大写(大驼峰命名法)。
Unicode字符:从Java 1.0.2版本开始,Java标识符可以使用Unicode字符集中的字符,但不建议使用非ASCII字符,因为它们可能会降低代码的可读性。
特殊字符:虽然$和_可以在标识符中使用,但它们通常被保留给特定的命名习惯或库/框架中的特定用途(例如,内部类或变量命名)。
以下是一些有效的Java标识符示例:

age
userName
_myVariable
$salary
EmployeeID
而以下是一些无效的Java标识符示例:

1stClass(以数字开头)
class(关键字)
my-variable(包含非法字符-)
Hello World(包含空格)
选择清晰、描述性强且遵循Java命名约定的标识符,可以使代码更加易于理解和维护。

常用的命名规则:

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

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

相关文章

Kotlin runCatching try-catch耗时比较

Kotlin runCatching try-catch耗时比较 fun main(args: Array<String>) {val lists arrayListOf("z")val idx 10/***纳秒统计** ns&#xff08;nanosecond&#xff09;&#xff1a;纳秒。一秒的10亿分之一&#xff0c;10的-9次方秒。*   1纳秒0.000001 毫秒…

2024年,搞AI就别卷模型了

你好&#xff0c;我是三桥君 2022年11月30日&#xff0c;OpenAI发布了一款全新的对话式通用人工智能工具——ChatGPT。 该工具发布后&#xff0c;仅用5天时间就吸引了100万活跃用户&#xff0c;而在短短2个月内&#xff0c;其活跃用户数更是飙升至1亿&#xff0c;成为历史上增…

ARP协议介绍与ARP协议的攻击手法

ARP是什么&#xff1f; ARP是通过网络地址&#xff08;IP&#xff09;来定位机器MAC地址的协议&#xff0c;它通过解析网络层地址&#xff08;IP&#xff09;来找寻数据链路层地址&#xff08;MAC&#xff09;的网络传输协议。 对个定义不能理解的话&#xff0c;可以结合 TCP/I…

《恋与深空》2.0上线肉鸽模式,乙游玩家会买账吗?

乙游和肉鸽&#xff0c;看似八竿子打不着的两个赛道&#xff0c;被叠纸给融合起来了。 根据《恋与深空》官方消息&#xff0c;即将在7月15日更新的2.0交错视界版本中&#xff0c;会上线全新常驻玩法“混沌深网”&#xff0c;配置高随机性Roguelike模式&#xff0c;并搭载了管理…

理想文档发布了~一个集合了多个优秀开源项目的在线云文档

两年前我做了一个简单的在线云文档项目&#xff0c;选择了开源的思维导图、白板、流程图、幻灯片等项目&#xff0c;在它们基础上添加了云存储的功能&#xff0c;然后写了一个简单的工作台管理文件夹和文件&#xff1a; 放在了自己的个人网站上使用&#xff0c;同时写了一篇水文…

[web]-代码审计-运维失误

打开页面可以看到如下&#xff1a; 1、查看源代码&#xff0c;发现验证码功能是正常生成的随机的&#xff0c;输入也没有过滤&#xff0c;无法采用爆破。 2、根据题目提示运维失误&#xff0c;使用dirsearch扫描&#xff0c;发现提交的地址check.php, 使用php5、.bak可以打开&…

2.The DispatcherServlet

The DispatcherServlet Spring的Web MVC框架与许多其他Web MVC框架一样&#xff0c;是请求驱动的&#xff0c;围绕一个中央Servlet&#xff08;即DispatcherServlet&#xff09;设计&#xff0c;该Servlet将请求分派给控制器&#xff0c;并提供其他功能以促进Web应用程序的开发…

程序的控制结构——if-else语句(双分支结构)【互三互三】

目录 &#x1f341; 引言 &#x1f341;if-else语句&#xff08;双分支结构&#xff09; &#x1f449;格式1&#xff1a; &#x1f449;功能&#xff1a; &#x1f449;程序设计风格提示&#xff1a; &#x1f449;例题 &#x1f449;格式2&#xff1a; &#x1f449;…

Monaco 使用 ColorProvider

Manco 中可以使用调色板对色值进行修改&#xff0c;首先看一下调色版效果。 调色板是 Monaco-Editor 中一个特别的组件&#xff0c;通过两个方法实现呼出调色板&#xff0c;provideColorPresentations 显示调色窗口&#xff0c;provideDocumentColors 监听页面的变更&#xff0…

如何将libwebsockets库编译为x86架构

在之前的文章中&#xff0c;我们已经详细介绍了如何交叉编译libwebsockets并将其部署到ELF 1开发板上。然而在调试阶段&#xff0c;发现将libwebsockets在Ubuntu环境下编译为x86架构可能更为方便和高效。 通过在主机环境中编译运用x86架构下的libwebsockets库&#xff0c;可以…

阿里ChatSDK使用,开箱即用聊天框

介绍&#xff1a; 效果&#xff1a;智能助理 ChatSDK&#xff0c;是在ChatUI的基础上&#xff0c;结合阿里云智能客服的最佳实践&#xff0c;沉淀和总结出来的一个开箱即用的&#xff0c;可快速搭建智能对话机器人的框架。它简单易上手&#xff0c;通过简单的配置就能搭建出对…

公益快报 | 中科亿海微以企业奖学金为纽带,深化校企合作

近日&#xff0c;为回报母校、激励湖南大学机器人视觉感知与控制技术国家工程研究中心广大学生&#xff0c;中科亿海微电子科技&#xff08;苏州&#xff09;有限公司&#xff08;简称“中科亿海微”&#xff09;捐赠设立企业奖学金。此项奖学金的设立标志着校企合作迈向全方位…

实现组件存储 WinSxS 文件夹解析

目录 背景 目录名的组成 解析目录结构 更新&总结 文章出处链接&#xff1a;[https://blog.csdn.net/qq_59075481/article/details/140385969]. 背景 WinSxS 文件夹位于 Windows 文件夹中&#xff0c;例如 C: \Windows\WinSxS。它是 Windows 组件存储文件的位置。 Wind…

idea启动vue项目一直卡死在51%,问题分析及其如何解决

如果你的项目也一直卡在百分之几十&#xff0c;你可以参考下面的方法&#xff0c;试一试能否解决 问题描述&#xff1a; 通过在idea终端中输入命令 npm run serve 启动vue项目&#xff0c;启动进程一直卡在51% 如何解决&#xff1a; 检查 < template > 标签中的html内容…

深度学习中的超参管理方法:argparse模块

在深度学习方法中我们不可避免地会遇到大量超参数如&#xff08;batch_size、learning_rate等&#xff09;。不同的超参数组合可以得到不同的训练/测试结果。所以在训练和测试过程中我们需要不断调整超参数获得理想的结果&#xff08;炼丹&#xff09;&#xff0c;如果每一次去…

【Windows】硬链接和软链接(OneDrive同步指定目录?)

文章目录 一、场景带入二、Windows下的硬链接和软链接2.1 硬链接&#xff08;Hard Link&#xff09;2.2 软链接&#xff08;符号链接&#xff0c;Symbolic Link&#xff09;2.3 软链接和快捷方式2.4 应用场景 三、OneDrive中的应用3.1 错误姿势3.2 好像可行的尝试3.3 合理的解决…

智能猫砂盆两种类型怎么选?深度剖析热门前三的品牌!

应该也有很多铲屎官像我一样&#xff0c;第一个入手的通常都是封闭式的智能猫砂盆&#xff0c;自动清洁是很好用&#xff0c;但问题也随之而来。有时候滚筒式的智能猫砂盆会在清洁过程中将砂团摔碎&#xff0c;导致粪便暴露出来产生臭味&#xff0c;这样我们回来不得不又再次进…

LangChain框架详解

LangChain框架详解 LangChain是一个基于语言模型开发应用程序的强大框架&#xff0c;旨在帮助开发人员简化与大模型交互、数据检索以及将不同功能模块串联起来以完成复杂任务的过程。它提供了一套丰富的工具、组件和接口&#xff0c;使开发人员能够轻松构建上下文感知和具备逻…

基于stm32+小程序开发智能家居门禁系统-硬件-软件实现

视频演示&#xff1a; 基于stm32智能家居门禁系统小程序开发项目 视频还有添加删除卡号&#xff0c;添加删除指纹&#xff0c;关闭继电器电源等没有演示。 代码Git&#xff1a; https://github.com/Abear6666/stm32lock 总体功能&#xff1a; 本门禁系统主要解锁功能分别为卡…

冲积图(alluvial plot)展示竞争性内源RNA(ceRNA)网络

导读&#xff1a; 用冲积图展示ceRNA网络可以更好地查看竞争和吸附关系&#xff0c;让静态的图&#xff0c;“流动”起来。 冲积图简介 Alluvial plot&#xff08;冲积图&#xff09;是一种流程图&#xff0c;最初设计用于展示网络结构随时间的变化。这种图表特别适用于展示…