详解Java变量与常量
一、常量
用final修饰(也称最终变量)
常量在声明时必须赋初值,赋值后不能再修改值
常量名通常用全大写字母表示
声明时需要添加final或static final类型修饰符,例如:
private final int PI=3.141596; //常量,类加载时确定或者更靠后确定值 private static final int PI=3.14159;//静态常量(编译期常量),编译时就确定值(编译为class文件)
二、变量
1、变量类型不同,分配的内存类型也不同
2、无初始化成员变量的默认值
3、变量的自动算术运算转换
两个数据类型不同的变量做算术运算时,需要先进行数据类型转换
系统的自动类型转换按由低到高的精度进行
数据类型自动转换规则:
数据转换示例
//两个byte型数据相加 public class Add_two_byte{ public static void main(String args[]){ byte a = 5; byte b = 3; //byte c = a+b; 错误,两个操作数都转成int型 int c = a+b; //正确操作 System.out.println(a+"+"+b+"="+c); } }
以上所述是小编给大家介绍的Java变量与常量详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!
相关推荐
-
Java中Connection timed out和Connection refused的区别讲解
前言:这两个异常报出的时候,说明客户端没法正常连接到服务端,但是两者还是有区别的. 1:Connection timed out 在实际开发中经常会碰到Connection timed out的问题 java.net.ConnectException: Connection timed out (Connection timed out) at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.AbstractPl
-
Java中数组在内存中存放原理的讲解
Java中数组被实现为对象,它们一般都会因为记录长度而需要额外的内存.对于一个原始数据类型的数组,一般需要24字节的头信息再加上保存值所需的内存,其中24字节的头信息分别包含以下几个部分. 下面分别分析一维.二维.三维的数组存储情况. 下面首先对一维数组进行分析,以int[]型数组为例,假设数组长度为N,那么需要的内存占用(24+4N)个字节,原因分析比较简单,图解示例如下:即占用内存总量=头信息内存+数组N个int值占用内存. 对于二维数组进行分析,首先对于多维数组的概念,大家可以参考这篇文章
-
java集合与数组的相同点和不同点
数组: 数组可以用来保存多个基本数据类型的数据,也可以用来保存多个对象. 数组的长度是不可改变的,一旦初始化数组时就指定了数组的长度(无论是静态初始化还是动态初始化). 数组无法保存具有映射关系的数据. 集合: 集合是只用于存储数量不等的对象. 集合的长度是可变的. 集合可以保存具有映射关系的数据. 相同点: 数组和集合类同是容器. 不同点: 数组的长度是固定的,集合的长度是可变的. 数组只能存储同类型的对象,集合可以存储不同类型的对象. 集合只能存储对象不能存储基本类型 总结 以上就是这篇文章
-
关于JAVA_HOME路径修改之后JDK的版本依然不更改的解决办法
今天重新配置Java的时候出现了一点问题,下面主要讲一下自己的解决方案: 问题描述: 今天想更改一下本机JDK的版本,发现更改之后使用 java -version命令,出现的JDK版本并没有变换. 查找原因: 系统目录里面可能有java.exe,导致优先调用了系统目录中的java.exe:刚安装的jdk自动增加了path内容,所增加的内容(指向的路径)下存在java.exe,且在path内容中该路径的顺序位于你自己配置java的路径前面(笔者的坑在这). 解决办法: 将%JAVA_HOME%/b
-
浅谈Java中的参数传递问题
/* 思考题1:看程序写结果,然后分析为什么是这个样子的.并画图讲解.最后总结Java中参数传递规律. Java中的参数传递问题: 基本类型:形式参数的改变对实际参数没有影响. 引用类型:形式参数的改变直接影响实际参数. */ class ArgsDemo { public static void main(String[] args) { int a = 10; int b = 20; System.out.println("a:"+a+",b:"+b); //a
-
Java中转换器设计模式深入讲解
前言 在这篇文章中,我们将讨论 Java / J2EE项目中最常用的 Converter Design Pattern.由于Java8 功能不仅提供了相应类型之间的通用双向转换方式,而且还提供了转换相同类型对象集合的常用方法,从而将样板代码减少到绝对最小值.我们使用Java8 功能编写了此模式的源代码. 目的 转换器设计模式的目的是为相应类型之间的双向转换提供一种通用的方式,允许类型无需彼此了解的简洁的实现.此外,转换器设计模式引入了双向收集映射,将样板代码减少到最小. 源代码 转换器设计模式
-
Java网络通信中ServerSocket的设计优化方案
前言:在java的网络通信中,两个不同节点的主机想要进行通信则可以通过建立Socket对象(相当于客户端主机,向服务端请求发送信息)和ServerSocket对象(相当于服务端主机,接收客户端的连接请求并回复信息)实现. 1:创建一个Socket对象 Socket socket = new Socket("IP",port); 指定将要连接的服务端的ip地址和端口号来创建一个Socket对象,在创建结束之后便可对其进行输出.输入操作. 2:创建一个ServerSocket对象 Serv
-
Java的外部类为什么不能使用private和protected进行修饰的讲解
Java的外部类为什么不能使用private和protected进行修饰 对于这个问题,一直没有仔细思考,今天整理一下: 对于顶级类(外部类)来说,只有两种修饰符:public和默认(default).因为外部类的上一单元是包,所以外部类只有两个作用域:同包,任何位置.因此,只需要两种控制权限:包控制权限和公开访问权限,也就对应两种控制修饰符:public和默认(default). 如果类使用了private修饰符,说明是个内部类.内部类的上一级是外部类,那么对应的有四种访问控制修饰符:本类(p
-
详解java_ 集合综合案例:斗地主
案例介绍 按照斗地主的规则,完成洗牌发牌的动作. 具体规则: 使用54张牌打乱顺序,三个玩家参与游戏,三人交替摸牌,每人17张牌,最后三张留作底牌. 案例分析 1.准备牌: 牌可以设计为一个ArrayList,每个字符串为一张牌. 每张牌由花色数字两部分组成,我们可以使用花色 集合与数字集合嵌套迭代完成每张牌的组装. 牌由Collections类的shuffle方法进行随机排序. 2.发牌 将每个人以及底牌设计为ArrayList,将最后3张牌直接存放于底牌,剩余牌通过对3取模依次发牌. 3.看
-
编写Java代码对HDFS进行增删改查操作代码实例
本文实例为大家分享了Java代码对HDFS进行增删改查操作的具体代码,供大家参考,具体内容如下 import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.net.URI; import org.apache.commons.compress.utils.IOUtils; import org.apache.hadoop.conf.Configuration; impo
随机推荐
- php遍历数组的4种方法总结
- PHP微信开发之根据用户回复关键词\位置返回附近信息
- 调用WordPress函数统计文章访问量及PHP原生计数器的实现
- 关于MySql链接url参数的设置
- mac上node.js环境的安装测试
- 浅谈JavaScript之事件绑定
- 多浏览器支持CSS 容器内容超出(溢出)支持自动换行
- JS+CSS实现仿雅虎另类滑动门切换效果
- java实现日历(某年的日历,某月的日历)用户完全自定义
- C语言获取Shell返回结果的实现方法
- 安装LINUX的详细过程图解
- 深入了解Android中的AsyncTask
- jQuery 打造动态渐变按钮 详细图文教程
- JavaScript的jQuery库中ready方法的学习教程
- 微信开发准备第二步 springmvc mybatis项目结构搭建
- PHP中上传大体积文件时需要的设置
- PHP 实现explort() 功能的详解
- Spring mvc实现Restful返回xml格式数据实例详解
- React diff算法的实现示例
- vbscript网页模拟登录效果代码