㈠ java语言中,什么是变量,如何定义一个变量什么是常量
变量:
变量的定义必须严格按照标识符的命名规则,即0~9数字、字母、下滑线、$等组成,且首字母不能是数字、不能是java关键字。
·首字母必须小写,当有多个单词组成时,后面的单词首字母要大写。
·变量名一般由名词组成。
·变量定义:[访问修饰符][修饰符]数据类型 变量名[=初始值]。
eg:public static int a=0;
byte b=2;
常量:
常量的定义也要严格按照标识符的定义规则。
·常量需要有final修饰符修饰。
·常量声明时必须初始化。
·常量的值是不可改变的量、一次赋值,永不改变。
·常量标识符必须大写,且多个单词时用下滑线连接。
注意:有时候常量也可以不用在声明时就初始化。
eg:做局部变量
public class Test
{
public static void main(String[] args)
{
final int Y;
Y=9;
}
}
做静态全局变量时,若声明时不服初值,必须在静态代码块中赋初值。
static final int Y;
static
{
Y=9;
}
做非静态全局变量时,若声明时不服初值,则必须在非静态代码块中赋值。
(1)java命名一个常量扩展阅读:
1.常量:在程序执行的过程中其值不可以发生改变。
常量分为:字面值常量和自定义常量
这就是一个值,这个值本身,我们可以叫它常量。
整型常量:123
实型常量:3.14
字符型常量:’a’
逻辑常量:true、false
字符串常量:”helloworld”
另一个说法是;表示不可变的变量,这也叫做常量,在语法上讲,加上final关键字来修饰某个变量, 只要赋值后,就不能改变了,也就不能在对其进行赋值了,例如;
final int i=1;
那么这个i的值是不能再改变了的,只能是1,所以是不可变的变量。(i是一个int类型的变量,变量值本身是可以重新赋值被改变的,但是现在加上了final,它就是一个最终的了,所以是一个不可变的变量。)
2.变量:在程序执行的过程中,在某个范围内其值可以发生改变的量。
int a=10;
a=”briup”;
变量定义格式:数据类型 变量名=初始化值。
变量值是内存中的一块地址,初始化值代表的是在这个地址中的一小块区域。所以,使用变量名来访问这块区域,因此访问每一个变量名之前都应先声明该变量,然后在对其进行赋值。
3.变量和常量只有先声明后才能使用。
转换规则:从存储范围小的类型到存储范围大的类型。
具体规则为:byte→short(char)→int→long→float→double
也就是说 byte 类型的变量可以自动转换为 short 类型,示例代码:
byte b=10;
short sh=b;
这里在给sh赋值时,JVM首先将b的值转换成short类型然后再赋值给sh。
当然,在类型转换的时候也可以跳跃,就是byte也可以自动转换为int类型的。
强制类型转换
强制类型转换,也称显式类型转换,是指必须书写代码才能完成的类型转换。该类类型转换很可能存在精度的损失,所以必须书写相应的代码,并且能够忍受该种
损失时才进行该类型的转换。
转换规则:从存储范围大的类型到存储范围小的类型。
具体规则为:double→float→long→int→short(char)→byte
语法格式为:(转换到的类型)需要转换的值
double d=3.14;
int i=(int) d;
注意问题:强制类型转换通常都会存储精度的损失,所以使用时需要谨慎。
浮点型默认为双精度double
整型默认为int
㈡ 4. 在Java中如何定义一个常量
pubilc static final int A_VALUE=10;
一般将常量定义为static,final修饰的,并且常量名一般会大写,各个单词之间用下划线分开.
㈢ Java定义常量的方式有什么
String a= "a";
public static String a = "a"
public static final String a = "a"
读取配置文件中常量 通过@value("")获取对应的值
枚举回 ,编写枚答举类
㈣ 如何在Java中定义常量
大多都是这样的!这样更容易维护,因为大公司的项目人员可能有大的变动,如果在各个类都存有自己的常量,到时候多了就不容易维护了! 介意在常量类里面写接口,在不同的业务类用不同的接口,这样同样是在一个类,但是维护性和操作性都大大的提高了!
例如我们额一个常量类!你可以看看!
// 缓存相关常量
public final class Constant
{
public static interface CacheKey
{
// 银行信息缓存key
public static final String BANKCREDITLIST = "BankcreditList";
// 业务品种
public static final String BUSSTYPELIST = "BussTypeList";
// 系统业务品种
public static final String SYSBUSSTYPE = "SysBussType";
}
//项目查询角色
public static interface PROJ_QUERY
{
public static final String QUERY_PROJECT_ALL = "queryProjectAll";
public static final String QUERY_PROJECT_DEPT = "queryProjectDept";
}
/**
* 附件类型
*/
public interface ATTACHMENT_TYPE
{
public static final String PACTTMP = "01"; // 合同模版文件',
public static final String PACTFILE = "02"; // 保函合同文件',
public static final String BREPORTFILE = "03"; // 初审报告文件',
public static final String PROJ_WORSRCIPT = "04"; // 项目工作底稿文件',
public static final String PROCESSFILE = "05"; // 流程流转文件',
public static final String REPORTFLASH = "06"; // 初审报告快照文件',
public static final String PROJCHECK = "07"; // 后期检查报告',
public static final String RISK = "08"; // 风险项目移交文件', 0,
public static final String PROJRELEASE = "09"; // 项目解除文件',
public static final String CORPWORKSCRIPT = "10"; // 企业工作底稿文件',
public static final String IVSTGN = "11"; // 投资签署协议文件
public static final String IVSTPAYMENT = "12"; // 投资付款文件
public static final String CORP_LOCAL = "13"; // 初审报告生产场地附件
public static final String CORP_MAKETECH = "14"; // 初审报告产品生产制造方式附件
public static final String CORP_PRODUCT_OTHER = "15"; // 初审报告产品其他附件
public static final String CORP_OTHER = "16"; // 初审报告其他附件
public static final String REVE_HISTORY = "18";// 保证措施的历史版本文件
public static final String INVOICE = "19";// 开发票的附件
public static final String REVIEW_SUPPLY = "20";// 评审补充流程
public static final String WORK_PAPER = "21";// 公司工作底稿
public static final String FILE_APPLY = "22";// 文件呈批
public static final String LEGAL_DOC_TEMPLATE = "23";// 保函合同文件
public static final String LEGAL_RELEASE = "24";// 保函解除文件
public static final String PROJ_JUYI_FILE = "25";// 项目通知书或者决议之类文件
public static final String PROJ_TUIJIAN_FILE="26";//科技型项目推荐文件
public static final String PROJ_ANALYSIS_FILE= "27";//项目可行性分析文件
public static final String LEGAL_JUYI_FILE="28";// 保函通知书或者决议之类文件
public static final String HAND_PACT="29";// 手工合同
public static final String LEGAL_COMPENSATORY_FILE="30";//保函代偿解除流程文件
public static final String PROJ_MANAGER_FILE="31";//企业管理分析附件
public static final String PROJ_MORTGAGE_FILE="32";//反担保抵押附件
/*补贴附件*/
public static final String SUBSIDIES_Businesslicense="33";//营业执照
public static final String SUBSIDIES_certificate="34";//税务登记证
public static final String SUBSIDIES_HTI="35";//高新技术认证
public static final String SUBSIDIES_HTIRZ="36";//高新企业认证
public static final String SUBSIDIES_IOU="37";//项目借据附件
public static final String SUBSIDIES_DBSoft="39";//双软认证Add
public static final String SUBSIDIES_Intell="40";//质押知识产权证Add
public static final String LEGAL_IOU="38";//保函借据附件
}
}
追问:
怎么理解难维护,我觉得各自的类维护各自的东西,本来就是自己类里面的东西。我倒是觉得简单,不知道怎么理解难维护
回答:
首先,你设置的常量分开类存放,你和别人都不知道是否已经设置了这个常量,也就代表你们的值可能不一样,这是最重要的!放在一起就是为了规范,其次,即使你们能同一的命名,统一的规范化,但是一旦这个常量有所改变,你还得把所有涉及的类的变量全部改一遍!
放一起,最原始,分开写也不好,我上面写的接口方式就很明了!
追问:
好吧,最后了解个问题,为什么要定义成接口,而不是普通类,有什么好处
回答:
是普通的类啊!public final class Constant{
里面放接口!
}
这是面向接口编程!好处就自己网络了!呵呵
面向接口编程:在传统的项目开发过程中,由于客户的需求经常变化,如果不采用面向接口编程,那么我们必须不停改写现有的业务代码。
追问:
我知道接口。。但是单纯这里看的话,似乎定义成接口和普通类没区别,不涉及到实现的问题
回答:
对!忘记解释了!这里的确没有任何区别,这块代码存在的工程是面向接口编程的!
追问:
你这样写我还是认可,有点像我开始的想法和公司的想法的结合体,我公司是没有区别各个接口,全部把所有的常量丢进来
回答:
嗯嗯!那样用的时候,找个变量也行都要很近,而还有可能用处呢!呵呵,希望帮助你解决你的疑惑。
㈤ java中如何定义常量
Java 常量抄,有2种意思:
第1种意思,就是一个值,这个值本身,我们可以叫它常量,举几个例子:
整型常量: 123
实型常量:3.14
字符常量: 'a'
逻辑常量:true、false
字符串常量:"helloworld"
这只是说法的问题,比如7这个数,我们就可以说“一个int类型的常量7 ”
还有另一种:
第2种意思,表示不可变的变量,这种也叫常量,从语法上来讲也就是,加上final,使用final关键字来修饰某个变量,然后只要赋值之后,就不能改变了,就不能再次被赋值了,据个例子:
final int i = 0;
那么这个i的值是绝对不能再被更改了,只能是0,所以说是 不可变的变量,这句话看似矛盾,其实不矛盾,这句话这样理解:
i就是一个int类型的变量,变量本身是可变的(可被更改值),但是现在加了final,所以不可变了,所以是不可变的变量。