博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java基础-运行原理及变量(01)
阅读量:6957 次
发布时间:2019-06-27

本文共 1946 字,大约阅读时间需要 6 分钟。

java运行原理

手动编写java文件由编译器编译成.class文件,再由解释器翻译class文件成机器语言运行.

Java中注释分类

单行注释

格式: //注释文字
多行注释
格式: /* 注释文字 */
文档注释
格式:/** 注释文字 */

注释的作用

解释说明程序,提高程序的阅读性

常量分类

字符串常量 用双引号括起来的内容(“HelloWorld”)

整数常量 所有整数(12,-23)
小数常量 所有小数(12.34)
字符常量 用单引号括起来的内容(‘a’,’A’,’0’)
布尔常量 较为特有,只有true和false
空常量 null(数组部分讲解)

变量概述

在程序执行的过程中,在某个范围内其值可以发生改变的量

从本质上讲,变量其实是内存中的一小块区域
变量定义格式

数据类型 变量名 = 初始化值;     //定义变量就是在内存中分配一块区域用来存放值,数据类型就是规定这块内存区域只能存放指定类型的值

数据类型

基本数据类型(四类八种)

引用数据类型(类,接口,数组)

基本数据类型(四类八种)

浮点类型原理:

float和double的范围是由指数的位数来决定的。

float的指数位有8位,而double的指数位有11位,分布如下:

 float:

float类型的存储方式

                              1bit(符号位) 8bits(指数位) 23bits(尾数位)                     

double:       

            double类型数据的存储方式

                              1bit(符号位) 11bits(指数位) 52bits(尾数位)

V=(-1)^符号位 * 尾数位 * 2^指数位

所以,float的指数范围为-128~+127(-2^7~2^7-1),而double的指数范围为-1024~+1023(-2^10~2^10-1),并且指数位是按补码的形式来划分的。

其中负指数决定了浮点数所能表达的绝对值最小的非零数;而正指数决定了浮点数所能表达的绝对值最大的数,也即决定了浮点数的取值范围。
float的范围为-2^128 ~ +2^127,也即-3.40E+38 ~ +3.40E+38;double的范围为-2^1024 ~ +2^1023,也即-1.79E+308 ~ +1.79E+308。

float和double的精度是由尾数的位数来决定的。尾数的取值范围为取值范围为[1,2)或[0,1)。浮点数在内存中是按科学计数法来存储的,其整数部分始终是一个隐含着的“1”,由于它是不变的,故不能对精度造成影响。

float:2^23 = 8388608,一共七位,由于最左为1的一位省略了,这意味着最多能表示8位数: 2*8388608 = 16777216 。有8位有效数字,但绝对能保证的为7位,也即float的精度为7~8位有效数字
double:2^52 = 4503599627370496,一共16位,同理,double的精度为16~17位之所以不能用f1==f2来判断两个数相等,是因为虽然f1和f2在可能是两个不同的数字,但是受到浮点数表示精度的限制,有可能会错误的判断两个数相等!

注意事项:

整数默认是int类型,浮点数默认是double类型.

定义long数据类型的时候,要加l或者L,建议加L.    long i = 10000000000;  会报超出整数过大,因为没加L默认为int类型的值

定义float数据类型的时候,要加f或者F,建议加F    float j = 12.34;    会报可能损失精度,因为12.34默认为double类型,把double类型的值放入float中会损失精度

标识符

作用:给包,类,方法,变量等起名字

组成规则:由字符,下划线_,美元符$组成
    这里的字符采用的是unicode字符集,所以包括英文大小写字母,中文字符(不推荐使用),数字字符等。
注意事项:不能以数字开头;不能是Java中的关键字

 命名规则

a.包(本质是文件夹,用于对类的管理)

   全部小写,多级用.隔开

b.类

    每个单词首字母大写

c.方法和变量

    一个单词首字母小写

    多个单词组成从第二个单词开始每个单词的首字母大写

变量定义的注意事项

a.变量未赋值,不能直接使用(就是内存块中要先存值才能取,不然会报变量未初始化错误)

b.变量只在它的所属的范围内有效(所属的一对大括号)

c.一行上可以定义多个变量,但是不建议(因为不直观,建议一行定义一个变量并且赋初值)

类型转换

a.强制转换(目标类型 变量名 = (目标类型)(被转换的数据);)

b.隐式转换(byte,short,char -- int -- long -- float -- double)

 

 

转载于:https://www.cnblogs.com/aeolian/p/7696264.html

你可能感兴趣的文章
SpringBoot(九)-- SpringBoot JDBC
查看>>
Spring + Mybatis - 原始dao开发整合 与 Mapper代理整合
查看>>
基于Centos搭建nginx+uwsgi运行django环境
查看>>
context switch
查看>>
Oracle awr报告生成操作步骤
查看>>
【DB2】DB2使用IMPORT命令导入含有自增长列的表报错处理
查看>>
微服务之springCloud-docker-comsumer(三)
查看>>
dhcpcd守护进程分析【转】
查看>>
Linux - 理不清的权限chmod与chown区别
查看>>
TCP协议疑难杂症全景解析
查看>>
redis 1
查看>>
Python安装pycurl失败,及解决办法
查看>>
cocos2d的常用动作及效果总结之四:Special Actions
查看>>
[ lucene扩展 ] MoreLikeThis 相似检索
查看>>
如果返回结构体类型变量(named return value optimisation,NRVO)
查看>>
C# 多线程详解 Part.02(UI 线程和子线程的互动、ProgressBar 的异步调用)
查看>>
基于shiro授权过程
查看>>
JQuery对象和DOM对象的区别与转换
查看>>
使用 Toad 实现 SQL 优化
查看>>
.NET开发技巧——从Winform穿越到WPF
查看>>