java底层怎么学_java学习----底层原理一

数据类型

java自带8种基本类型,4中整型类型,2种浮点类型,1种用于表示Unicode编码的字符单元的字符类型,和1种用于表示真值的bool类型(这8种基本类型都有自己的隐式初始值)。

long在申请变量时赋值数据后必须加l或L,若不加l且在int的范围内不会报错,但系统默认数据类型为int而在执行时再去转换成long会有一部分性能开销,而且若超出int的取值范围则会报错。(float同理)

各数据类型取值范围,正数取值比负数取值范围少1,这是因为将0算作正数当中。int类型所用4字节-32位,所以可以表示232次方的数据,但有一位需要表示正负,所以实际数据表示范围为-231-------231-1。

Int类型为连续的数据,间隔为1,float的数据为跳跃型的数据,并不连续,且其间隔不相等,所以float的数据表示范围远远大于int,但也造成float数据类型精度失真(但在一般领域并不考虑这种精度丢失)。

float类型,1位符号位,7位阶位,后23位为数值位,表示数据时,因小数除2永远除不尽,所以表示小数的二进制码也是无穷无尽,因此计算机为了能够表示小数,将后续二进制码进行了舍弃,造成了精度丢失。详细请参考float类型转二进制码。

Unicode编码

在编程中,任何字符语言最终都会转换成编码形式,以ascii为例 ’表示为\u0027,可以尝试运行System.out.println(\u0027s’),最终结果为s。(计算机直接识别,即便在编译器中报错也可以强行运行)

“=”的实质

数据类型分基本类型和引用类型,基本数据类型的变量名和数据储存在内存的栈中(java虚拟机开辟的内存空间中),引用类型又分类和字符串,对于字符串来讲,若赋值时没有用new(也就是没有开辟空间,如String a = “123”)那么,数值便会存在字符串常量池中,栈中记录池中对应的字符串地址,如若不存在则建立此字符串(若两个String变量赋值相同,那么指向同一个地址),而如果用了new那么就跟类一样,在堆中先开辟一片空间后存入信息,将空间地址存在栈中,因此“=”对于引用类型来讲便是将堆/字符串常量池中的地址保存到栈中,对于基本类型来讲便是将值一起存入栈中。

static与final

static修饰符会将修饰过的变量或方法放到内存的静态区(静态区在程序运行时便已经存在,与是否创建类对象无关),在静态区中的变量时全工程共有的,所以final通常修饰静态变量,而final也防止内部类在使用变量之前,变量被改掉。

java编译过程

语言分类

托管语言是需要安装环境后翻译成c与汇编的语言,如:java,vb,托管语言包括脚本语言 PS:脚本语言大多是操作系统自带环境,可以直接运行的语言,也就是说脚本语言由操作系统做决定,windows是bat文件,linux中则是sh文件。

非托管语言则是由操作系统直接识别翻译成机器二进制码的语言(也就是说可以不用安装环境直接用记事本写,写完就可以直接运行)

java编译过程

底层语言为汇编与c语言 (c先翻译成汇编,之后转换成二进制代码)

通过c与汇编衍生出各式各样的语言

Eclipse首先会调用java.jdk将编写好的.java文件送到.jre翻译成.class文件(此class文件并非类,文件中的内容为字节码)

后将.class文件再次翻译成汇编与c语言,后由操作系统完成转换机器二进制码,执行等工作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/532326.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java实验报告合肥工业大学_合肥工业大学数据结构上机实验代码与实验报告(全)github地址...

C++实现链队类——合肥工业大学数据结构实验5:链式队列实验5 5.1 实验目的 熟练掌握队列的顺序链式存储结构. 熟练掌握队列的有关算法设计,并在链队列上实现. 根据具体给定的需求,合理设计并实现相关结构和算法. 5.2 实验要求 5.2.1链队列实验要 …

php 类分开写,自己前几天写的无限分类类_PHP教程

自己前几天写的无限分类类_PHP教程前一周写的吧,使用中效果还不错。主要思想来自:http://www.phpobject.net/b...[urlhttp://www.phpobject.net/blog/read.php?49][/url]这里就不多解释原理了,直接发代码。PS:这里代码是不能直接使用的&…

php创建表设置编码,教您在Zend Framework里如何设置数据库编码以及怎样给数据表设定前缀!...

当我们在开发项目时..大家都会遇到一个问题就是:数据库的编码问题.当然我们不用Zend Framework做为项目开发的框架时..我们可以很快,很容易搞定这个小问题..但是当我们要使用Zend Framewok开发项目时..我们可能一时会不知道如何解决这个小问题..比如我就是这样的人..在开发这个…

python 怎么将数组转为列表_怎么将视频转为GIF动态图 表情包怎么制作

说到GIF,大家应该都不陌生了吧!尤其是在聊天中使用较多,似乎一言不合就开启了斗图模式,但是我们平时使用的GIF一般都是软件中自带的,其实自己制作也是很方便的,而且会发现很有趣,不但可以直接录…

curl php 百度,php curl 模拟登录百度主页

php curl 模拟登录百度首页本帖最后由 STONEWP 于 2012-03-29 13:43:04 编辑代码如下:$url "https://passport.baidu.com/?login&tplmn";//$url "http://www.baidu.com/";$cookdir "d:/www/html/mndl/cookie.txt";$ch curl_…

proteus里面没有stm32怎么办_嵌入式单片机之stm32串口你懂了多少!!

stm32作为现在嵌入式物联网单片机行业中经常要用多的技术,相信大家都有所接触,今天这篇就给大家详细的分析下有关于stm32的出口,还不是很清楚的朋友要注意看看了哦,在最后还会为大家分享有些关于stm32的视频资料便于学习参考。点击…

tomcat不能解析php,tomcat不支持php怎么办

tomcat不支持php的解决办法:首先将“PHP/Java Bridge”下的相关文件复制到tomcat的lib目录下;然后修改tomcat安装目录下conf文件夹里的“web.xml”文件;最后重启tomcat即可。java开发者都知道,tomcat是用来部署java web项目的。这…

c++ dicom图像切割_【高训智造】原创专业课堂第225期--定位滑座的线切割加工

原标题:【高训智造】原创专业课堂第225期--定位滑座的线切割加工欢迎来到【高训智造】原创专业课堂第225期,本期由郭沃沛老师给大家带来线切割小课堂。定位滑座的线切割加工郭沃沛1零件图如图1所示为定位滑座零件图,其材料为45钢,…

php.ini配置详解 号,php INI配置文件的解析实现分析

我不知道怎么说才好,因为我在读INI文件的时候,往往都是用现成的函数:parse_ini_file或者是parse_ini_string,但怎么写入,就是另外的方法了(自己实现。。。。)所以看到这篇文章的时候,我也才刚刚知道&#x…

c iostream.源码_通达信指标公式源码精准买卖主图指标公式免费分享

V0:EMA(C,5),COLOR00FF66;V1:EMA(C,10),COLOR00FF66;V2:EMA(C,15),LINETHICK2,COLORFFFFFF;V3:EMA(C,30);V4:EMA(C,60),COLOR3366FF;年线:EMA(C,90),COLORBLUE;M1:1000*V1/V4<1015 AND 1000*V1/V4>975;M2:1000*V2/V4<1020 AND 1000*V2/V4>980;M3:1000*V3/V4<101…

4am永远 鼠标按键设置_4AM称霸PCL和PEL 绝地求生与和平精英的双端冠军 | 电玩巴士...

在《绝地求生》PCL秋季赛&#xff0c;4AM高分碾压全场斩获冠军&#xff1b;在手游和平精英PEL联赛上4AM战队再度重拳出击荣获S3总冠军。在同一时间&#xff0c;4AM战队实现了端游与手游双冠王的神迹&#xff01;要说国内第一大逃杀电竞俱乐部&#xff0c;4am自认第二&#xff0…

checkA.php,php window平台模拟checkdnsrr函数检测_php

在php的系统函数中有一个checkdnsrr函数&#xff0c;该函数的作用是根据一个给定的host name(域名)或者IP地址检查它是否有DNS记录&#xff0c;目的就是检验它是否真实存在。但是该函数仅可以在linux系统下使用&#xff0c;并不支持windows平台。下面是网上搜集到的一个hack的方…

oracle临时表经常被锁_【赵强老师】Oracle数据库的存储结构

Oracle的存储结构分为&#xff1a;物理存储结构和逻辑存储结构。一、物理存储结构&#xff1a;指硬盘上存在的文件数据文件(data file)一个数据库可以由多个数据文件组成的&#xff0c;数据文件是真正存放数据库数据的。一个数据文件就是一个操作系统文件。数据库的对象(表和索…

php页面的循环输出数组,PHP抓取页面上的数组 并循环输出 急

PHP抓取页面上的数组 并循环输出 急 在线等我用file_get_contents()抓取了 这个网址上的内容http://simonfenci.sinaapp.com/index.php?keysimon&wd1314abc看似好像反回的是数组。。但是我不管怎么用foreach循环都报错。。我只想把数组中的word里面的值 取出来。。谁帮帮我…

h5 nan_手把手教你将H5游戏打包成快游戏

H5游戏可以通过快应用的web组件快速打包成快游戏&#xff0c;打包上架后的快游戏&#xff0c;只要原H5游戏的url不发生变动&#xff0c;快游戏就不需要做更新&#xff0c;维护工作量小。使用快应用IDE&#xff0c;打包快游戏的操作很简单。访问官网安装开发工具&#xff0c;在P…

php 构造函数 返回值,php构造函数与析构函数实例分析

本节内容&#xff1a;php构造函数与析构函数例子&#xff1a;复制代码 代码示例:class Person{public $name;public $age;public function __construct($name,$age){$this->name $name;$this->age $age;}function __destruct(){echo $this->name."销毁资源&…

平板电脑有什么用_除了盖泡面,平板电脑没什么用了

平板电脑似乎变成一个鸡肋&#xff0c;逐渐没有多少人买了。就算拥有&#xff0c;抱在怀里把玩的机会少了&#xff0c;躺在角落吃灰的时候多了。曾经&#xff0c;没有人能拒绝平板电脑的诱惑。有了平板&#xff0c;你仿佛跻身上流社会。不经意间拿出时的从容&#xff0c;打开皮…

java程序面向对象show,20165309 实验二 Java面向对象程序设计

2017-2018-2 20165309实验二《Java面向对象程序设计》实验报告一、实验内容1. 初步掌握单元测试和TDD2. 理解并掌握面向对象三要素&#xff1a;封装、继承、多态3. 初步掌握UML建模4. 熟悉S.O.L.I.D原则5. 了解设计模式二、实验步骤(一)单元测试1.三种代码&#xff1a;伪代码、…

php dom 丢失内容,PHP DOMDocument缺失

我在运行$dom new DOMDocument(“1.0”,“utf-8”)时遇到一个奇怪的错误&#xff1a;警告&#xff1a;require_once(classes / DOMDocument.class.php)[function.require-once]&#xff1a;无法打开流&#xff1a;第5行的/var/www/html/cms/bootstrap.php中没有这样的文件或目…

jade软件_TEM衍射斑点标定之DM软件

虽然透射电子显微镜(TEM) 能在纳米尺度上实现对待测样品形貌、 尺寸的分析&#xff1b; 结合选区电子衍射(SAED)&#xff0c;可以更进一步实现对待测样品的晶体结构、 晶相组成的鉴定&#xff0c;从而提高样品分析的准确度和可靠性。可是&#xff0c;每个刚接触TEM的小白&#…