java运行原理

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

Java中注释分类

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

注释的作用

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

常量分类

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

变量概述

在程序执行的过程中,在某个范围内其值可以发生改变的量
从本质上讲,变量其实是内存中的一小块区域
变量定义格式

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

数据类型

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

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

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

浮点类型原理:

float和double的范围是由指数的位数来决定的。
float的指数位有8位,而double的指数位有11位,分布如下:

float:

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

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)

Java基础-运行原理及变量(01)的更多相关文章

  1. Java基础知识强化之多线程笔记05:Java程序运行原理 和 JVM的启动是多线程的吗

    1. Java程序运行原理:     Java 命令会启动Java 虚拟机,启动 JVM,等于启动了一个应用程序,也就是启动了一个进程.该进程会自动启动一个 “主线程” ,然后主线程去调用某个类的 m ...

  2. [零] Java 语言运行原理 JVM原理浅析 入门了解简介 Java语言组成部分 javap命令使用

    Java Virtual Machine  官方介绍 Java虚拟机规范官方文档 https://docs.oracle.com/javase/specs/index.html 其中以java8的为 ...

  3. Java基础-hashMap原理剖析

    Java基础-hashMap原理剖析 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.   一.什么是哈希(Hash) 答:Hash就是散列,即把对象打散.举个例子,有100000条数 ...

  4. JAVA基础篇NO1--环境变量的配置及命名规则

    标签(空格分隔): java基础 一:计算机概述 计算机:硬件和软件 硬件:控制器 运算器 存储器 输入和输出设备       存储器:外存(硬盘) 内存 软件:系统软件 应用软件   系统软件:wi ...

  5. Java基础(1)--JDK,变量

    Scanner的next()方法和nextLine()方法 1.next()一定要读取到有效字符后才可以结束输入,对输入有效字符之前遇到的空格键.Tab键或Enter键等结束符,next()方法会自动 ...

  6. Java基础(3)——变量

    从这篇文章起开始正式进入正题啦,本文将较为简单的介绍一下变量以及常量.变量,顾名思义,就是可以变的量,常量那么久相反了,常常不变的量就叫常量._(¦3」∠) 变量 在 Java 中,任何一个变量都得有 ...

  7. java基础之常量与变量

    概要:通过这段时间的工作,发现自己的基础还是很薄弱的,so,you know 常量 一种特殊的变量,程序运行过程中不能改变的值 语法格式:final 数据类型 常量名称 = 常量值 例子:fina i ...

  8. JAVA基础针对自己薄弱环节总结01(循环之前的知识)

    java中的标识符 组成:数字.字母.下划线.美元$符号组成.  规则:不能由数字开头.  类名:每一个单词的首字母大写  包名:所有小写  变量名.方法名:第一个单词首字母小写.后面首字母大写  常 ...

  9. Java程序运行原理分析

    class文件内容 class文件包含Java程序执行的字节码 数据严格按照格式紧凑排列在class文件的二进制流,中间无分割符 文件开头有一个0xcafebabe(16进制)特殊的标志 JVM运行时 ...

随机推荐

  1. python之并发编程之多进程

    一.共享数据 进程间通信应该尽量避免使用本节所讲的共享数据方式 from multiprocessing import Manager,Process,Lock def work(dic,mutex) ...

  2. mysql水平分表和垂直分表的优缺点

    表分割有两种方式: 1.水平分割:根据一列或多列数据的值把数据行放到两个独立的表中. 水平分割通常在下面的情况下使用. •表很大,分割后可以降低在查询时需要读的数据和索引的页数,同时也降低了索引的层数 ...

  3. New Features and changes of Ninject 3.3

    Ninject 3.3 beta1 has gone live. This release mainly focus on bug fix and platform update. Support . ...

  4. Angular JS的正确打开姿势——简单实用(上)

        前  言 絮叨絮叨 在分享了JS和JQuery之后,今天再给大家分享一个好玩并且特别好用JS框架--AngularJS. 一. AngularJS简介 AngularJS 诞生于2009年,由 ...

  5. 『诡异的』VL10B创建外向交货单出错解决全过程

    一直觉得SAP STO的业务模式配置起来还是挺简单的,无非就是关联一下采购单与交货单的关系,以及相应工厂的装运数据,其他像主数据的设置也没有什么特别的.相比ICS模式,它少了IDOC的配置,所以还是很 ...

  6. Java伪代码描述《大道至简》第一章

    第一节 Begin //原始需求 惩山北之塞,出入之迂 //项目沟通的基本方式 聚室而谋曰 //项目目标 毕力平险,指通豫南,达于汉阴 //技术方案 扣石垦壤,箕畚运于渤海之尾 //技术人员和工程管理 ...

  7. java 虚拟机与并发处理几个问题简要(二)

    六.两个重要的概念性问题: 1.同步:要保持数据的一致性,就需要一种保证并发进程正确执行顺序的机制.这种机制就是 进程同步(Process Synchronization). 竞争资源的多个进程按着特 ...

  8. web前端面试官挖的那些坑(js)

    题目1: function Foo() { getName = function () { alert (1); }; return this; } Foo.getName = function () ...

  9. HDU2066 一个人的旅行 最短路基础

    新手熟悉一下迪杰斯特拉... 一个人的旅行 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Ot ...

  10. JDownload: 一款可以从网络上下载文件的小程序第四篇(整体架构描述)

    一 前言 时间过得真快,距离本系列博客第一篇的发布已经过去9个月了,本文是该系列的第四篇博客,将对JDownload做一个整体的描述与介绍.恩,先让笔者把记忆拉回到2017年年初,那会笔者在看Unix ...