一、前言
在定义一个变量是使用 private static final 修饰,我们知道,内容就可更改了。这种场景用的最多的是在一些工具类中,对一些参数的设定。
二、比较
/**
* 加密算法
*/
private static final String KEY_ALGORITHM = "DESede";
private static final String CIPHER_ALGORITHM = "DESede/CBC/PKCS5Padding";
如果写成这样
/**
* 加密算法
*/
private static String KEY_ALGORITHM = "DESede";
private static String CIPHER_ALGORITHM = "DESede/CBC/PKCS5Padding";
在web程序在运行第一次时变量是有值的,访问第二次,值就变成了null,
不知道什么原因,下一次在实验研究研究。
---------------------
java 关键字和作用
Java 是一种广泛使用的编程语言,它有许多关键字,这些关键字在编程中扮演着重要的角色。以下是一些 Java 关键字及其作用:
class
: 用于定义一个类。类是 Java 编程的基本构造单元,用于创建对象的模板。public
: 定义一个成员(变量、方法、类等)的访问级别为公共,这意味着任何其他类都可以访问它。private
: 定义一个成员的访问级别为私有,这意味着该成员只能在它所属的类内部被访问。protected
: 定义一个成员的访问级别为保护,允许在同一个包中的其他类或者在其他包中的子类访问它。default
: 如果一个成员没有指定访问级别,那么它的访问级别默认为包级别,这意味着该成员只能在它所属的包内部被访问。void
: 用于声明一个方法不返回任何值。int
: 用于声明一个整型变量。char
: 用于声明一个字符型变量。boolean
: 用于声明一个布尔型变量。float
: 用于声明一个浮点型变量。double
: 用于声明一个双精度浮点型变量。String
: 用于声明一个字符串类型变量。byte
: 用于声明一个字节型变量。short
: 用于声明一个短整型变量。long
: 用于声明一个长整型变量。final
: 用于声明一个常量,其值不能被修改。static
: 用于声明一个静态变量或方法,属于类级别的变量或方法,不依赖于任何对象实例。abstract
: 用于声明一个抽象类或方法,不能直接实例化抽象类,但可以实例化其非抽象子类。synchronized
: 用于实现多线程同步,确保同一时间只有一个线程可以执行某个方法或代码块。volatile
: 用于确保变量的可见性,即当一个线程修改了一个共享变量的值,新值对其他线程来说能够立即看到。transient
: 用于标记某个字段不应该被序列化。native
: 用于声明某个方法为本地方法,即该方法用 C/C++ 等语言实现。strictfp
: 用于声明一个严格浮点环境,确保浮点运算在不同平台上结果一致。assert
: 用于进行断言,判断某个条件是否为真,通常用于调试目的。enum
: 用于声明一个枚举类型,表示一组命名的常量值。interface
: 用于声明一个接口,定义一组方法规范,可以被类实现或继承。break
: 用于跳出当前循环或switch语句。continue
: 用于跳过当前循环的剩余部分,进入下一次循环。return
: 用于从方法中返回一个值或结束方法的执行。if
: 用于条件判断,根据条件执行不同的代码块。else
: 与if一起使用,当if中的条件不满足时执行else中的代码块。switch
: 用于多分支选择,根据不同的值执行不同的代码块。case
: 与switch一起使用,表示不同的分支选项。default
: 与switch一起使用,表示默认分支选项。try
: 与异常处理相关,用于捕获和处理异常。catch
: 与异常处理相关,捕获try块中抛出的异常并处理。finally
: 与异常处理相关,无论是否发生异常都会执行的代码块。throw
: 用于抛出一个异常对象。throws
: 在方法签名中表示该方法可能会抛出某种类型的异常。while
: 用于循环执行一段代码,只要条件满足就会一直执行。do-while
: 与while类似,不同之处在于至少会执行一次代码块,然后再根据条件判断是否继续执行。for
: 用于循环