文档章节

Learn Java - Chapter 1 变量(Variables)-基本类型

Hassan
 Hassan
发布于 2015/06/01 10:16
字数 840
阅读 72
收藏 0

java语言定义的变量包含一下四种类型

  1. 实例变量(Instance Variables),非静态变量,在Class中声明的field,未使用static声明; 

  2. 类变量(Class Variables ),静态变量,在Class中使用static标识; 

  3. 本地变量(Local Variables),在一个方法中声明的变量; 

  4. 参数(Parameters),方法定义的形参; 

命名 

  1. 大小写敏感; 

  2. 不限长度; 

  3. 以字母、数字、下划线和“$”符号组成,不可以以数字开头; 

  4. 不可以是Java保留字 

保留字参考: 

abstract  continue  for  new  switch 
assert***  default  goto*  package  synchronized 
boolean  do if  private  this 
break  double  implements  protected  throw 
byte  else  import  public  throws 
case  enum****  instanceof  return  transient 
catch  extends  int  short  try 
char  final  interface  static  void 
class  finally  long  strictfp**  volatile 
const*  float  native   super  while

注: * not used 

        ** java 1.2 后添加 

        *** java 1.4 后添加 

        **** java 5.0 后添加 

约定

    变量命名以小写字母开头,单词全拼,多个单词以驼峰形式命名,eg:String currentRatio。如果是常量,全大写,多个单词以“_”下划线分隔。eg:static final double PI = 3.1415926,static final String BAIDU_URL="xxx";

Java基本数据类型表

类型 长度(bit) 范围
byte 8  -128 ~ 127
short 16 -32,768 ~ 32,767
int 32  -231  ~ 231-1
long 64  -263 263-1
float 32 有点复杂,继续往下看...
double 64  同上
boolean -
取值:ture或者false,官方说法占1bit,大小不精确定义
char 16  Unicode:'\u0000'~'\uffff'

float、double的范围和浮点数的定义有关,先参考specification来看看:https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.3

浮点数范围可以用  s · m · 2(e - N + 1) 这个公式来表达

s:+1或-1 

m是小于2N 的正整数

e是个整数,范围 between Emin = -(2K-1-2) and Emax = 2K-1-1

NKE取值参考表:

Parameter   float   float-extended-exponent   double double-extended-exponent
N 24 24 53 53
K 8 ≥ 11 11 ≥ 15
Emax +127 ≥ +1023 +1023 ≥ +16383
Emin -127 ≤ -1022 -1022 ≤ -16382

也就是说通常情况下,浮点的范围是由以上表达式和表格(float列和double列)决定,我暂且叫他float值集和double值集。

这时你可能注意到了 float-extended-exponent double-extended-exponent东西,这个我个人理解成是①float-extended-exponent值集和②double-extended-exponent值集。

①②这两个值集是Java语言有实现的另外两个值集,在一定情况下会使用这类值集(原文“ These extended-exponent value sets may, under certain circumstances, be used instead of the standard value sets to represent the values of expressions of type float or double”,参考:https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.3)。

这就引出了一个问题,在不同JVM环境中,会由于浮点范围导致运算结果有差异。为了解决程序可移植性,在不同平台浮点运算能有相同的结果,官方提供了一个Java关键字“strictfp”,使用这个关键字声明类、接口或方法java编译器已经jvm会按照IEEE-754标准来执行,这样就可以保证浮点运算一致性。(原文“Within an FP-strict expression, all intermediate values must be elements of the float value set or the double value set, implying that the results of all FP-strict expressions must be those predicted by IEEE 754 arithmetic on operands represented using single and double formats.”参考:https://docs.oracle.com/javase/specs/jls/se7/html/jls-15.html#jls-15.4  )



转载请注明出处:http://my.oschina.net/hassan/blog/423247 

© 著作权归作者所有

Hassan
粉丝 1
博文 7
码字总数 5839
作品 0
海淀
程序员
私信 提问
一份关于 Java、Kotlin 与 Android 的学习笔记

JavaKotlinAndroidLearn 这是一份关于 Java 、Kotlin 、Android 的学习笔记,既包含对基础知识点的介绍,也包含对一些重要知识点的源码解析,笔记的大纲如下所示: Java 重拾Java(0)-基础知...

叶应是叶
2018/08/08
0
0
001. 深入JVM学习—Java运行流程

Java运行流程图 2. Java运行时数据区 3. Java虚拟机栈 栈内存是线程私有的,其生命周期和线程相同; 虚拟机栈描述的是Java方法执行的内存模型:执行一个方法时会产生一个栈帧随后将其保存到栈...

影狼
2018/06/22
86
0
《Programming in Scala》读书笔记

不得不感叹一下,这本书真的是神作,不愧是Scala语言作者自己写的书。整个书的内容条理非常清晰,对于有些地方的设计也给出了具体的原因,能让你对整个语言有更好的把握。深入学习Scala必读书...

mj4738
2012/01/03
341
0
java8简短教程(持续更新含部分9,10,11)

声明:一方面提升下英文水平,一方面重温下java各版本新特性,版权归原作者所有 ,除了翻译也会加自己的东西。水平有限,请理性查阅 Modern Java - A Guide to Java 8 时髦的Java -java 8 参...

小小明童鞋
03/12
218
0
《俗人笔记》之《Java基础语法上》

基础前言: 二进制: 十进制转二进制:使用除以2获取余数来算 二进制转十进制:按8421编码 字节: 最小的存储单位是字节,最小的信息单位是位(bit) 1B=8bit 1KB=1024B 依次类推 DOS命令 盘符...

钱无极
2018/12/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Giraph源码分析(八)—— 统计每个SuperStep中参与计算的顶点数目

作者|白松 目的:科研中,需要分析在每次迭代过程中参与计算的顶点数目,来进一步优化系统。比如,在SSSP的compute()方法最后一行,都会把当前顶点voteToHalt,即变为InActive状态。所以每次...

数澜科技
今天
4
0
Xss过滤器(Java)

问题 最近旧的系统,遇到Xss安全问题。这个系统采用用的是spring mvc的maven工程。 解决 maven依赖配置 <properties><easapi.version>2.2.0.0</easapi.version></properties><dependenci......

亚林瓜子
今天
10
0
Navicat 快捷键

操作 结果 ctrl+q 打开查询窗口 ctrl+/ 注释sql语句 ctrl+shift +/ 解除注释 ctrl+r 运行查询窗口的sql语句 ctrl+shift+r 只运行选中的sql语句 F6 打开一个mysql命令行窗口 ctrl+l 删除一行 ...

低至一折起
今天
10
0
Set 和 Map

Set 1:基本概念 类数组对象, 内部元素唯一 let set = new Set([1, 2, 3, 2, 1]); console.log(set); // Set(3){ 1, 2, 3 } [...set]; // [1, 2, 3] 接收数组或迭代器对象 ...

凌兮洛
今天
4
0
PyTorch入门笔记一

张量 引入pytorch,生成一个随机的5x3张量 >>> from __future__ import print_function>>> import torch>>> x = torch.rand(5, 3)>>> print(x)tensor([[0.5555, 0.7301, 0.5655],......

仪山湖
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部