JAVA基础Day02

复习

  1. Java的特点:简单易学,面向对象,跨平台,安全
  1. Java能够跨平台的前提是JVM - Java语言是跨平台的,但是JVM不是跨平台的。针对不同的操作系统提供了不同的JVM,利用JVM来屏蔽不同操作系统之间的差异性、
  2. Java的技术分支:
    1. JAVASE(Java Standard Edition) - Java标准版/基础版。提供了基本的入门和核心类库的支持,同时能够提供小型的桌面应用程序 -GUI
    2. JAVAEE(Java Enterprise Edition) - Java商务版/企业版。为企业中进行大型应用开发来提供支持
    3. JAVAME(Java Micro Edition) - Java微型版。为小型电子设备的嵌入来提供支持
  3. JDK、JRE和JVM
  4. 关键字:Java中定义的有特殊含义的单词
  5. 标识符:自定义的名称 - 命名规则
  6. 注释:单行注释、多行注释、文档注释

基本概念

一、进制

  1. 进制:实际上是一种计数方式。在生活中,最常见的是十进制。计算机中比较常见的进制有四种:二进制、八进制、十进制、十六进制
  2. 进制基本介绍
    1. 二进制(binary):计算机中最基本的进制单位,计算机底层所有的数据都是以二进制形式来存储和计算的。二进制中只包含2个基本元素:0和1。顾名思义,满二进一。基本运算:0+1=1,1+1=10,11+1=100。要求在程序中,二进制数字必须用0b或者0B开头,例如0B00110
    2. 八进制:满八进一。八进制中包含了8个基本元素:0~7。基本运算:0+1=1,6+1=7,7+1=10,17+1=20,57+1=60,77+1=100。要求在程序中,八进制数字必须用0开头,例如05,016
    3. 十进制:满十进一。十进制包含了10个基本元素:0~9。在程序中,数字不作标记,默认就是十进制
    4. 十六进制:满十六进一。十六进制包含了16个基本元素:0-9,A~F。基本运算:0+1=1,8+1=9,9+1=A,A+1=B,B+1=C,C+1=D,D+1=E,E+1=F,F+1=10,19+1=1A,1A+1=1B,1F+1=20,99+1=9A,9F+1=A0,A9+1=AA, AF+1=B0。在程序中,十六进制必须用0X或者0x开头。例如0x5,0X2ee,0XABC
  3. 进制转换
    1. 十进制转换二进制:不断的取余2,然后将获取到的余数进行倒排

 

  1. 二进制转换十进制:从低位次开始,按位次,每一位乘以2的位次次幂,然后将幂求和

0b110011 = 1*2^0 + 1*2^1 + 0*2^2 + 0*2^3 + 1*2^4 + 1*2^5 = 1*1 + 1*2 + 0*4 + 0*8 + 1*16  + 1*32 = 1+2+16+32 = 51

  1. 八进制转换二进制:一变三 - 每一位八进制数字对应产生3位二进制数字。每一个八进制数字在计算的时候按照十进制转二进制来计算。如果计算出来二进制数字不足三位则补0

0746=0B111100110

0512=0b101001010

  1. 二进制转换八进制:三变一 - 从低位次开始,每三位二进制数字转化为1位八进制数字

 

  1. 十六进制转换二进制:一变四 - 每一位十六进制数字对应的产生四位二进制数字。如果不足四位,则补0

0x4279 = 0x0100001001111001

0x2c9de = 0x00101100100111011110

  1. 二进制转换十六进制:四变一 - 从低位次开始,每四位二进制数字转化为1位十六进制数字

 

二、计算机的内存单位

  1. 在计算机中,将每一位二进制数字称之为是一个bit(位),简写为b。1b就能表示2种状态
  2. 在计算机中,规定8bit构成一个1个Byte(字节),简写为B。1B=8b=256。但是数据都是以字节形式来计算的
  3. 1KB(千字节)=1024B=2^10B,1MB(兆字节)=1024KB,1GB(吉字节)=1024MB,1TB(钛字节)=1024GB -> PB(帕字节),EB,ZB,YB, BB,NB,DB
  4. MB和Mb的区别:1000Mb=125MB
  5. 通信领域默认单位之间是千进制:1M=1000K

三、变量

  1. 变量:在程序中自定义的用于临时存储数据的量
  2. 变量定义格式:
  • 数据类型 变量名 = 数据;

例如:int m = 100;

数据类型 变量名;

变量名 = 数据;

int n;

n = 30;

  1. 在程序中,变量需要先定义后使用,先赋值后使用

四、数据类型

  1. 在Java中,一共有2种:基本数据类型和引用数据类型
  2. 引用类型:数组[],类class,接口interface
  3. 基本类型
    1. byte:字节型,占用1个字节,取值范围-2^7~2^7-1,即-128~127。byte类型经常用来表示枚举场景。案例:

byte b1= 10;

  1. short:短整型,占用2个字节,取值范围-2^15~2^15-1,即-32768~32767,实际开发中几乎不用。案例:

short s1 = 100;

  1. int:整型,占用4个字节,取值范围-2^31~2^31-1,即-2.1*10^9~2.1*10^9。案例

int i1 = 5;

int i2 = 0b1;

int i3 = 07;

int i4 = 0x2f;

注意事项:

1)整数默认就是int类型

2)在Java中,如果一个数字比较大,那么从低位次开始,每隔3位数字,允许添加一个_来间隔,例如:int i = 1_254_175;需要注意的是,_在编译之后就会自动消失

  1. long:长整型,占用8个字节,取值范围-2^63~2^63-1,即-9*10^18~9*10^18(-9亿亿~9亿亿)。在程序中,规定long类型的数字结尾必须是L或者l。实际开发中,一般表示时间(计算时间的时候,计算的是毫秒值,从1970年1月1日00:00:00到指定时间的毫秒值)或者是文件大小的时候考虑使用long类型

long l1 = 5L;

  1. float:单精度浮点型。占用4个字节,取值范围-10^38~10^38。在程序中,规定float类型的数字结尾必须是f或者F

float f = 0.5f;

  1. double:双精度浮点型。占用8个字节,取值范围-10^308~10^308。在Java中,小数默认就是double类型

double d1 = 3.57;

注意:

1)在double中,如果出现了aeb但是又没有0x开头的时候,那么这个数字表示a*10^b

2) 在double中,如果出现了0xapb,表示a * 2^b

3) 在早期的JDK中,要求double类型的数字必须以d或者D结尾,现在不强制要求。例如:double d = 5.14D;

4) 在double中,注意几个特殊的值:POSITIVE_INFINITY,NEGATIVE_INFINITY,NaN

5) 在计算机中,小数无法精确存储和计算

  1. char:字符型,可以存储常见语言的常见字符,占用2个字节。char类型在存储的时候,会根据Unicode编码体系来将字符映射为数字,取值范围是0~65535(0~2^16-1)。在定义char类型的时候,要求数据必须用''来标记

char c1 = 'a';

char c2 = '大';

转义字符

符号

解释

\'

单引号

\"

双引号

\\

反斜杠

\t

制表符

\r

回车

\n

换行

  1. boolean:布尔型,只有2个值:true和false,表示真和假。JDK1.8中,boolean占用4个字节

boolean b1 = true;

boolean b2 = false;

  1. 数据类型转换
    1. 隐式转换/自动转换:byte -> short(char) -> int -> long -> float -> double
      1. 小类型可以自动转化为大类型:byte -> short -> int -> long

byte b1 = 5;

int i1 = b1;

long l1 = i1;

long l2 = 7;

  1. char可以自动转int
  2. 整数可以自动转化为小数,但是会存在精度损失:

int i3 = 5;

double d3 = i3;

  1. 显式转换/强制转换:数据类型 变量 = (数据类型)值
    1. 大类型转化为小类型

int i1 = 5;

byte b1 = (byte)i1;

  1. 小数转化为整数,在转换的时候只保留整数位,会舍弃掉小数位

double d1 = 3.98;

int i1 = (int)d1; // i1->3

  1. 整数可以转化为字符

int i = 98;

char c = (char)i; // c -> 'b'

扩展:数据的存储形式 - 原反补三码

  1. 任何数据的二进制的首位表示的是符号位。0表示正数,1表示负数
  2. 数据在计算机中是以补码形式来存储和计算的。
  3. 正数的原反补三码一致

 

  1. 负数的反码是在原码的基础上,最高位保持不变,其余位0变1,1变0;补码是在反码的基础上+1

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值