10.13

JDK包含JRE,JRE包含JVM

JDK:Java程序开发工具包,除了必备的Java运行时环境(JRE)之外,还有开发Java所需要的一些工具(就是java开发需要的工具

JVM:Java语言跨平台的关键,java.exe运行其实就是启动JVM,具体解释执行Java程序的(解释的就是编译后的class文件)-解释器,—一行行翻译执行,边解释class字节码文件边执行

Java半编译半解释性语言,先使用javac将*.java源文件编译为具体操作系统无关的字节码文件*.class(给JVM来解释执行);解释阶段,运行具体操作系统上的JVM来讲class文件解释为具体平台上的机器码并执行

标识符:只能有数字 字母 下划线组成,$合法但不推荐 数字不能开头

驼峰命名法 

类的名称:大驼峰,所有单词的首字母大写class Test,源文件名称和主类名称保持一致(public class)

变量,方法名称:小驼峰,从第二个单词开始首字母大写,int age = 10;int myAge = 20;

数据类型与变量

Java、C++是一门强类型语言,定义一个变量时,必须要明确该变量的类型。int age = 10;

//age这个变量只能保存整型数值,age就无法保存小数,也无法保存字符串等等

什么是内存?

内存:

CPU直接和内存打交道,CPU所有运行的数据都存储在内存中

内存的读写速度要比硬盘(外存)快的多的多,10^3-10^5

读写速度快,容量较低,一旦断电,内存中的所有数据就清空了

 外存:

 读写速度慢,容量较大,断电数据仍然保留

 

计算机存储数据的基本单位

bit:二进制位10=>1010,使用四个比特位存储

byte:字节,计算机保存的数据,以字节为基本单位

1byte=8bit

在程序中有两种类型的数值

变量:定义之后,数值可以改变的内容,称之为变量。能变得只有数值内容,数据类型无法改变

基本语法:数据类型 变量名称 = 初始值。

int a = 10;//定义了一个整型变量,变量名称(标识符)为a,能变的是a保存的数值,不能改变的是a变量的类型

在一行中,可以定义多个相同数据类型的变量

int a = 10,b = 20,c;      abc这三个变量都是int类型

数值型变量

整型变量    int - 无论什么操作系统,什么版本的JVM,int一律都4字节

在Java任意的方法内部声明的变量都属于局部变量,局部变量没有默认值,当方法调用结束,方法中的所有局部变量都会被销毁,内存释放。(局部变量必须在使用前赋值

观察数据类型的默认值:数据类型的默认值必须要在类中定义变量才具备默认值

 变量溢出问题

int a = 10;

Integer

整型的包装类

包装类:在Java中一切皆为对象,认为一切事物都可以用类来进行描述,8大基本类型不属于类 因此在Java中,将8大基本类型都有对应的类进行包装 这种类称之为包装类

当给整型最大值+1

10 0000000000000000......0 =>变成了最小值

int只能表示32bit,无法再给上进位,只能进位到符号位

这时就需要更换大数据类型

int < long

长整型变量long 一律都是8字节 包装类位Long(为了区分10到底是整型还是长整型,定义长整型时,一般加l或L表示是长整型,推荐声明长整型时使用L

long b = a +1;//先计算a+1的值,然后将计算后的值赋值给b

假设一个数比长整型的最大值还大,采用BigInteger类来存储,也可以使用字符串String类型来存储大整数

"232366121089712353123435"->数字型字符串

短整型和字节类型变量使用

short声明短整型,在Java中很少使用

byte < short < int < long    一般场景下用int就够,int放不下了用long

进行网络编程或IO编程时,基本操作单位都是byte

计算机中存储的都是二进制010101010101 小数在计算机中存储时是使用整数来模拟小数的,有一些精度问题。双精度double保证小数点后12位之内的数字一定是准确的

若在某些精度要求特别严格的场景,更换使用BigDecimal类来存储小数

单精度浮点数float4字节,表示的精度较小,保证6位小数之内有效数字,工程中很少使用

float a = 1.0F;

(用f或F表示定义的是单精度浮点数)

字符型变量char对应的包装类为Character2字节

编码规则:即将不同的语言转为数字(一般英文字母采用ASCII编码)

C语言的字符使用ASCII编码存储字符

Java语言字符采用Unicode编码,16位编码(2字节)支持地球上所有语言

布尔型变量(boolean)

只有两个数值,不是ture就是false

表示真就是true 

表示假就是false

字面量

直接写出来的数值就称之为字面量,字面量也存在数据类型(字面量属于常量

10-> 整型字面量,默认为int类型

10.1-> 浮点数字面量,默认为double类型

'a'-> 字符字面量,char类型

false-> 布尔值字面量,boolean类型

"abc"-> 字符串字面量,String类型

常量:10->只能表示10,不可能指代别的数字

 类型转换与类型提升

小类型转换为大类型自动转换,大类型转换为小类型需要强制类型转换,有精度丢失问题

int,byte,char之间的转换问题

计算机存储数据时默认采用4字节存储,所有小于4字节的数据类型(byte short char)

隐式提升为int之后进行存储(boolean除外)

 

 当把整型字面量赋值给byte变量时,若在byte保存范围之内直接赋值byte a = 120;若超出了byte的保存范围,必须进行强转,有精度丢失问题 byte b = (byte) 130;

byte赋值时,若是整型字面量,在byte范围内的可以直接赋值,若是byte变量(存储实际上是int),无论变量是多少,都需要强转

 char(2字节)和int(4字节)的转换

int / int = int

类型提升:当不同数据类型进行运算时,自动会将小类型提升为大类型然后参与运算

int + long => long + long = long

 

int和double参与运算

对于基本类型来说,所有类型之间都可以进行转换(

能相互转换的数据类型之间才能强转或者自动提升

boolean与任何类型毫无关系,无法强转也无法提升

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值