Java学习记录day03(java基础语法:基础数据类型)

java(02)

java基础语法

进制

常见的进制
十进制

满10进一 例如:1010,99,20(每位最大数字为9)

二进制

满2进一 在Java中可以一‘0b’开头定义二进制数(jkd1.6之后才支持)例如:0b1010

八进制

​ 满8进一 最大数字7 在数字前加一个前导零表示数字为八进制 例如:077

十六进制

满16进一 范围 0 - 9 A(10) B(11) C(12) D(13) E(14) F(15) 可以用0x开头表示数字为16进制,例如 0x12345,0xAABB,0xFFFF

进制转换
十进制转二进制

除二取余法:

不停对数字除二,记录余数,直到除数为0。将余数倒写为转换二进制的结果

例:

6 -> 0x110

8 -> 0x1000

21 -> 0x10101

其他进制与十进制的转换

可以参考二进制和十进制的转换

二进制转十六进制

四位二进制数转换为一位十六进制数。转换时可遵循8421原则。

例如:

1000 1010 1101 1001

8 A D 9

0x8AD9

二进制转八进制

三位二进制数转换为一位八进制数,转换时同样你可以遵循8421原则

例如

100 010 101 101

4 2 5 5

04255

十六进制八进制转二进制

为上面提到的两种抓换的逆过程,仅需将一位十六进制数、八进制数转换为4、3位二进制数

计算机内存存储方式

在计算机中,一个二进制位叫一个比特位,八个二进制位就会构成一个字节,字节是计算机中最小的数据存储单位
(2^10)1024个字节是1k
1024k 1M
1024M 1G
1024G 1T
1024T 1P

在内存中负数的存储为正数的补码

补码为源码逐位变反再加一

例如:

byte a = -3;
3   0000 0011
    1111 1100
 +          1
 ---------------
    1111 1101

在计算机中,正数的最高位(符号位)永远是0,负数永远是1

扩展

小数转二进制,乘二去整法

例如:

0.8125

0.8125x2=1.625 1
0.625x2=1.25 1
0.25x2=0.5 0

0.5x2=1.0 1

0.8125 ->0.1101

标识符

标识符就是用来定义自定义命名的规则 比如 类名 函数名 变量名…
规则:
由字母(A-Z a-z),数字 下划线_ 或 $ 组成,数字不能放在第一位
不能和关键字相同(class public static void …)
严格区分大小写,汉字也可以

关键字表
abstractassertbooleanbreakbyte
casecatchcharclassconst
continuedefaultdodoubleelse
enumextendsfinalfinallyfloat
forgotoifimplementsimport
instanceofintinterfacelongnative
newpackageprivateprotectedpublic
returnstrictfpshortstaticsuper
switchsynchronizedthisthrowthrows
transienttryvoidvolatilewhile

正确的标识符:name、Name、user_name、$name、_name、publicName、name999、L9、中国

错误的标识符:9username、public、user name、#name

对于命名还有一定的原则,可遵守可不遵守,是业内约定俗成的事
原则一:尽量见名之意
原则二:尽量符合驼峰标识
比如:类名 CatDog (大驼峰)
函数名 catDog (小驼峰)
变量名 小驼峰
byte dog=-3;

变量

变量就是为了用来存储数据的
在java中,变量一共分为两种类型(基本数据类型 引用数据类型)

基本数据类型
整数型
byte 1个字节 存储有符号整数(有符号就是有正负之分) -128~127
    比如:
    byte a;  //变量的声明,没给值叫声明
	a=127;	 //ok  赋值

	byte a=127;  //定义  给了值就是定义

	byte a=128;  //error
				
short 2个字节 存储有符号整数 -32768 32767
    short a=-32767;  //ok
	short a=-32769;  //error
						
int   4个字节 有符号整数  2147483647-2147483648 之间
    int a=127;
						
long  8个字节 有符号整数  9223372036854775807-9223372036854775808 之间
    long a=9;
	long a=9L; //L大小写不区分,代表这是一个long类型的数
					  
	//这两种写法有什么区别?
	首先我们得先知道,在java中,编译器在编译期认识常量
    认为所有的整数默认都是int类型,
    所以 long a=9; 意思是把一个int类型的9赋值给 long类型的a
		long a=9L;代表把一个long类型的9赋值给long 类型的 a
浮点型
float 4个字节 ,又称为单精度  ,有效位 8float a=3.14;  //所有的小数,默认都是double类型
	float a=3.14f;
	float a=34;  //ok 隐含变成 34.0f;
						
double 8个字节  又称为双精度 ,有效位 16double a=3.14;
	double a=3.14d;
	double a=1;  //ok 隐含变成 1.0;
字符型
char  2个字节
    特点:1.可以存一个字符,一个字符是两个字节
    2.可以存储无符号整数并且可以参与运算 
								   
    char a='f';  //ok
	char a='浮';  //ok
	char a='特点';  //error
	char a=' ';
    char a='';  //空字符这么表示 不行编译报错
    char a='\u0000';  //应该这么表示,\u 开头的是unicode编码  \u0020
    附:\u0000打印的时候,发现是一个空格,是因为java对win7以上系统做了手脚,把空字符用空格显示了,实际还是空字符

        char a=90;   //ok
    char a=-90;  //无符号只可以是正数

    问:char 类型最大能装的数字是多少?65536 ,因为是两个字节的,而且还无符号,所以最大是65535
        char a=65536; //error


    char a=65;
    int b=5;
    System.out.prinlnt(a+b);//70

    char a='A';
    int b=5;
    System.out.println(a+b);  //70  所有字符在参与运算时,都会变成对应的码表值才进行
    char a='A';
    char b='B';
    System.out.println(a+b);  //65+66

布尔型

布尔型
    boolean 1个字节/4个字节  //因为虚拟机的不同,底层字节数可能就不同,所以不重要
    只可以有两个值  false  true
    boolean a=false;
	boolean a=true;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值