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

news2024/9/21 20:41:06

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; // 十六进制整数常量,表示十进制255

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

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

相关文章

eMMC规范 - 寻址/信息寄存器/总线协议/时序图/速度模式

存储器寻址 e•MMC 规范的早期实现(至 v4.1 的版本)是采用 32-bit 域实现字节寻址的。这种寻址 机制允许最大 2 GB 的 e•MMC 容量。 为了支持更大的容量,寻址机制升级到支持扇区寻址( 512B 扇区)。对所有容量大于 2 …

在PyQt中为自己开发的软件实现远程文件“一机一码”授权管理实例

在使用PyQt搞软件开发时,开发者往往想要给自己的软件添加一个授权机制,只有当客户提供了授权码并且开发者将授权码放在授权管理系统的时候,客户端才能正常启动。这几天小陶就在捣鼓这个事,发现确实是可行的。 如果没有进行授权&a…

mybatis动态传入参数 pgsql 日期 Interval ,day,minute

mybatis动态传入参数 pgsql 日期 Interval 在navicat中,标准写法 SELECT * FROM test WHERE time > (NOW() - INTERVAL 5 day)在mybatis中,错误写法 SELECT * FROM test WHERE time > (NOW() - INTERVAL#{numbers,jdbcTypeINTEGER} day)报错内…

html5——CSS高级选择器

目录 属性选择器 E[att^"value"] E[att$"http"] E[att*"http"] 关系选择器 子代: 相邻兄弟: 普通兄弟: 结构伪类选择器 链接伪类选择器 伪元素选择器 CSS的继承与层叠 CSS的继承性 CSS的层叠性 …

redis介绍与布署

redis remote dictionary server(远程字典服务器) 是一个开源的,使用c语言编写的非关系型数据库,支持内存运行并持久化,采用key-value的存储形式。 单进程模型意味着可以在一台服务器上启动多个redis进程,…

基于语义的法律问答系统

第一步,准备数据集 第二步,构建索引数据集,问答对数据集,训练数据集,召回评估数据集 第三步,构建dataloader,选择优化器训练模型,之后召回评估 第四步,模型动转静,之后…

改摄像头IQ(目前我知道的功能是看色彩)

1、SrcCode\Dx\580_CARDV_ETHCAM_RX_EVB(每个项目不同找到对应的)\isp.dtsi 将下面路径改成对应镜头的 2、将新的IQ复制到文件夹下code\hdal\vendor\isp\configs\dtsi

Vue3 引入腾讯地图 包含标注简易操作

1. 引入腾讯地图API JavaScript API | 腾讯位置服务 (qq.com) 首先在官网注册账号 并正确获取并配置key后 找到合适的引入方式 本文不涉及版本操作和附加库 据体引入参数参考如下图 具体以链接中官方参数为准标题 在项目根目录 index.html 中 写入如下代码 <!-- 引入腾…

【SQL】如何用SQL写透视表

【背景】 报表中有一大需求是透视表,目前有很多分析类应用也搭载了此类功能,那么我们能不能直接用SQL做透视表呢? 【分析】 BI类软件将透视表功能做在了前端,但是数据本身还是存储在数据库中,所以必然有方法可以用SQL直接实现透视表。 【心法】 透视表是任意选取一个…

【C语言】经典C语言笔试面试题目

01. 请填写bool , float, 指针变量 与“零值”比较的if语句。 提示&#xff1a;这里“零值”可以是0, 0.0 , FALSE 或者“空指针”。 例如 int n 与“零值”比较的 if 语句为&#xff1a; if ( n 0 ) if ( n ! 0 )以此类推。 请写出 bool flag 与“零值”比较的 if 语句&a…

IT运维也有自己的节日 724向日葵IT运维节,三大版本如何选?

“724运维节”&#xff0c;是2016年由开放运维联盟发起倡议&#xff0c;广大运维人员共同投票产生的属于运维人自己的节日。 对于运维人最大的印象&#xff0c;那就是工作都需要7x24小时待命&#xff0c;是名副其实的“日不落骑士”&#xff0c;这也是大家选择724这一天作为运…

2024最新6月泛二级域名秒收泛目录(二级域名泛站群)

5月免费版本无后台 无更新功能不自动引蜘蛛 2024年5月最新泛程序&#xff0c;秒收秒排&#xff01;&#xff08;泛型程序&#xff09; - 虚良SEO博客 新曾功能&#xff1a; 后台管理 蜘蛛统计 域名添加 一键强引蜘蛛 蜘蛛统计 识别真假蜘蛛 全自动引蜘蛛 域名要求 …

viteExternalsPlugin 插件管理外部依赖

viteExternalsPlugin 是一个 Vite 插件&#xff0c;用于将指定的模块或库配置为外部依赖 安装&#xff1a; npm i vite-plugin-externals 1.实战用途 比如从项目 index.html 中引入一些SDK文件&#xff0c;我这个是引入的CHATUI vite.config.js 配置&#xff1a; import {…

OSS存储桶密钥泄露【案例】

OSS存储桶密钥泄露 同样的&#xff0c;在前几天的攻防演练中的经历&#xff0c;本文我们将为OSS存储桶单独做文章 公开配置文件泄露 录屏、截图缺失了。发现这个存储桶密钥是因为我在鹰图对一个能够控制生成类似容器的站点&#xff0c;抓包发现api是另一个子域的站点&#x…

C#变量、常量与运算符

文章目录 变量变量定义命名规则作用域和生命周期 常量特殊字符常量 运算符算术运算符关系运算符逻辑运算符位运算符赋值运算符其他运算符 变量 变量就是一个存储空间的名字&#xff0c;变量是什么类型&#xff0c;这个空间里面存储的就是什么类型的数据。 变量定义 <data_t…

C语言学习记录day3

第三天主要是练习代码编写 一、有序数组元素的查找 顺序法时间复杂度O(n) 二分法时间复杂度O&#xff08;log2n&#xff09; 二、演示多个字符从两端向中间移动汇聚 三、模拟登录密码场景 四、求最大公因数 五、... 剩余更多代码练习已上传至个人github&#xff08;日期1…

SSM学习6:Spring事务

简介 事务作用&#xff1a;在数据层保障一系列的数据库操作同成功同失败Spring事务作用&#xff1a;在数据层或业务层保障一系列的数据库操作同成功同失败 public interface PlatformTransactionManager{void commit(TransactionStatus status) throws TransactionStatus ;vo…

C++第五弹 -- 类与对象(中下) (赋值运算符重载函数 const成员函数 取地址操作符重载函数)

目录 前言一. 赋值运算符重载1. 运算符重载2. 赋值运算符的重载3. 前置 和 后置 重载 二. 日期类的实现三. const成员函数四. 取地址及const取地址操作符重载总结 前言 本文将深入探讨C中的运算符重载&#xff0c;重点讲解赋值运算符、前置/后置运算符、取地址运算符的重载方法…

2024 ACT汽车软件与安全技术周 | 龙智携全方位汽车软件开发解决方案亮相,助力应对汽车软件开发功能安全、合规等挑战

2024年7月18-19日&#xff08;周四-周五&#xff09;&#xff0c;2024第三届ACT汽车软件与安全技术周将在上海佘山翰悦阁酒店举办。 龙智即将携汽车开发及管理解决方案创新亮相&#xff0c;并在汽车信息安全技术峰会主会场上发表主题演讲&#xff0c;分享推动汽车软件开发与功…

RAG实践:ES混合搜索BM25+kNN(cosine)

1 缘起 最近在研究与应用混合搜索&#xff0c; 存储介质为ES&#xff0c;ES作为大佬牌数据库&#xff0c; 非常友好地支持关键词检索和向量检索&#xff0c; 当然&#xff0c;支持混合检索&#xff08;关键词检索向量检索&#xff09;&#xff0c; 是提升LLM响应质量RAG(Retri…